Wczoraj postanowiłem zająć się małym problemem, który trochę mnie męczył. Na moim serwerze bez x’ow mam codziennie robiony backup bazy danych, jednak jest on przechowywany na dysku serwera. No i sobie pomyślałem, że jak padnie mi dysk w moim leciwym hp, dane się zniszczą, co to za backup w takim razie. Zrodził się więc pomysł wysyłania codziennie maila ze świeżym backupem bazy na skrzynkę, którą mam na gmailu. Moja baza danych jest malutka więc z rozmiarem chwilowo nie ma problemu, jak zacznie rosnąć to będę się martwił.
A więc do dzieła, będziemy potrzebowali SSMTP, który jest prostym i lekkim przekaźnikiem poczty, oraz MUTT – niewielki klient poczty elektronicznej.
Inastalujemy SSMTP i MUTT:
aptitude install ssmtp mutt
Teraz przyszła pora na konfiguracje ssmpt, poniżej wklejam tylko odkomentowane linijki pliku konfiguracyjnego
nano /etc/ssmtp/ssmtp.conf
dla gmaila oczywiście
root=adre@email
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=nazwa@localhosta
FromLineOverride=YES
AuthUser=nazwa.uzytkownika@gmail.com
AuthPass=twojehaslo
UseTLS=YES
UseSTARTTLS=YES
AuthMethod=LOGIN
Chyba nie trzeba nikomu tłumaczyć, że ważne są odpowiednie uprawnienia do pliku z racji wpisanego w nim hasła.
W pliku konfiguracyjnym polecają nadać następujące uprawnienia
chown root:mail /etc/ssmtp/ssmtp.conf
chmod 640 /etc/ssmtp/ssmtp.conf
Gdy mamy już skonfigurowany ssmtp możemy wykonać sobie szybki test czy aby na pewno działa
ssmtp "testing ssmtp setup" twojmail@gmail.com
Jeżeli test przebiegł pomyślnie bierzemy się za szybkie ustawienie nadawcy w MUTT:
set realname="Backup server"
Oczywiście możecie ustawić sobie inną nazwę.
Teraz nadszedł czas na prosty skrypcik, który będzie wysyłał nasze maile. Spokojnie można dodać treść skryptu do naszego skryptu tworzącego backup’y bazy, jednak ja trochę eksperymentowałem i postanowiłem zrobić to osobnym skryptem
touch mail.sh
Wybrałem taki sam format daty jak mam w skrypcie do tworzenia zrzutu bazy
#!/bin/bash
DATT="`date +%Y-%m-%d`"
mutt twoj.mail.@gmail.com -a /sciezka/do/pliku/backup-bazy-"$DATT".sql.gz -s "Backup $DATT < /dev/null
I skrypcik gotowy, teraz tylko dodajemy go do crontab’a żeby wykonywał się o określonej porze. W moim przypadku codziennie o godz 5 rano.
crontab -e
0 5 * * * /sciezka/do/skryptu/mail.sh
Jakby ktoś chciał przepis na skrypt tworzący backup bazy danych to polecam wpis na www.blog.sloniupl.eu
5 thoughts on “Backup bazy danych wysyłany na maila.”
Masz błąd w linijce:
aptitude install ssmpt mutt
a dokładnie literki ci sie pomieszały w ssmtp
oraz w linku do mojego bloga brakuje ci dwukropka i dlatego niedziała 😀
Poprawione, dzięki.
SSMTP nie jest już dostępny, teraz zamiennikiem może być MSMTP
https://wiki.debian.org/msmtp
na arch wiki dobry poradnik konfiguracji:
https://wiki.archlinux.org/index.php/Msmtp