Bash skript som sender mail?

Kategori overført fra Linux1

Bash skript som sender mail?

Innleggav Palken » man 22.01.2007 12:33

Heisann! Har begynt å lære meg en del bash skripting og har skrevet en del enkle skripts. Tenkte nå å prøve meg på ett litt mer avansert og nyttig.

Det jeg har lyst at skriptet skal gjøre er å ta backup av en mappe (gjerne tar og bzip2 også) og deretter sende dette som en mail til gmail kontoen min (bruker gmail som backup pga økonomi :-)). Jeg skal nok fint klare å få skriptet til å hente mappen(e) og komprimere dem. Problemet ligger i mailen, finnes det noe cli mail program som er enkelt å sette opp mot gmail? eventuelt kan bruke kmail siden jeg bruker den for å laste ned og sende mail.

PS: Ikke kom med ett ferdig bash eller perl skript siden halve poenget er å lære meg dette selv. :-) Hint derimot kan dere komme med.
medlem i 213 måneder
 

Innleggav linux » man 22.01.2007 12:41

...........................
Sist endret av linux den lør 10.11.2007 14:36, endret 1 gang

Erfaren
medlem i 216 måneder
 

Innleggav gab » man 22.01.2007 12:44

siden du skal sende mail med vedlegg kan du se på mutt
Kode: Merk alt
man mutt
medlem i 235 måneder
 

Innleggav ak » man 22.01.2007 17:06

mailx er det jeg bruker for å sende og motta mail. For sending gjør det mye det samme som sendmail

mailx bruker@server < fil

Administrator
Brukerens avatar
medlem i 236 måneder
 

Innleggav TommyT » man 22.01.2007 18:04

Kode: Merk alt
#!/bin/bash
echo
echo "Email til: $1"
echo "Pause  : $2 sekunder mellom hver mail"
if [ $3 -eq 1 ];
then 
        echo "Slette   : ja"
else
        echo "Slette  : nei"
fi

echo

for File in *.tar.gz
do
        echo "Sender : --- $File"
        mutt -a "$File" -s "$File" $1 < .gmsig -i gmbody
        sleep $2
        if [ $3 -eq 1 ];
        then
                echo "Sletter  : --- $File"
                rm -f "$File"
        fi
done


Her er et lite eksempel på hvordan du kan bruke mutt.
Legg dette scriptet i et directory, lag en fil .gmsig som inneholder en mail signatur ... en fil ved navn gmbody kan man da ha en fast mail tekst.

./mailer til@epost.com 30 1

denne vil nå sende en mail for hver av *tar.gz filene i dette directoryet til til@epost.com, ta en pause på 30 sekunder før den sender neste mail, og så slette (dersom 1 i treje parameter) fila.
medlem i 202 måneder
 

Innleggav Palken » man 22.01.2007 18:39

Takker for alle svar. Skal se nærmere på samtlige av forslagene :-)

Bare en liten ting til. Er det en enkel måte å få skript til å utføres f.eks daglig til ett visst klokkeslett og lett endre dette til ukentlig osv?

Jeg skal dessverre inn i militæret imorgen og rekker ikke gjøre ferdig skriptet. Kan sikkert poste det her når jeg engang i framtiden får tid til å skrive skriptet. Uansett, takker for forslagene
medlem i 213 måneder
 

Innleggav ak » man 22.01.2007 19:27

Legg scriptet i /etc/cron.daily, pass på at det er eksekverbart.

Alternativt rediger /etc/crontab , der står det også når cron.daily blir kjørt. Cron-jobber definert på denne måten utføres som root.

Administrator
Brukerens avatar
medlem i 236 måneder
 


Returner til Utvikling i Linux



Hvem er i Forumene

Registrerte brukere: Ingen registrerte brukere