Skocz do zawartości
Zenk

Skrypt directadmin (cron) mysql backup

Polecane posty

Witam,

Poszukuję skryptu, który stworzył by mi kopię zapasową baz danych mysql (odpalany przez cronjobs). Obowiązkowo z:

  • kompresją plików .sql (np. gzip)
  • kasacją poprzednich plików (np. przed tworzeniem nowej kopii/po określonym czasie żywotu pliku)

Byłoby super gdyby ten, bądź oddzielny skrypt także:

  • Uploadował wszystko z folderu backup na zewnętrzny serwer FTP.

Mam nadzieję że mi pomożecie, dzisiaj już z 11 skryptów próbowałem, w każdym było coś nie tak.

Znalazłem fajny, prosty skrypt z gzipem + kasacją plików. Już się ucieszyłem bo działał mi na testowym serwerze, a gdy chciałem go wgrać na prawidłowy serwer to wywalało mi error:

 

/home/NAZWA_USERA/cron/wiki_bp_log.sh: line 10: /usr/bin/nice: No such file or directory

 

Skrypt:

#!/bin/bash

DAYS="8" # Jak stare pliki kasowac (w tym przypadku starsze niz 14 dni)
USER="uzytkownik"
PASSWORD="haslo"
DATABASE="Nazwa"
SAVEDIR="/home/NAZWA_USERA/backup" # Sciezka do katalogu skladowania backupów

find $SAVEDIR -mtime +$DAYS -delete
/usr/bin/nice -n 19 /usr/local/mysql/bin/mysqldump --skip-add-locks --user=$USER --password=$PASSWORD $DATABASE -c | /usr/bin/nice -n 19 /bin/gzip -9 > $SAVEDIR/$DATABASE-$(date '+%Y-%m-%d_%H:%M:%S').sql.gz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja sobie napisałem coś takiego:

 

 

#!/bin/bash

# Zrzut baz danych
mysqldump -uroot -pPASS --all-databases > /home/backup/all_databases.sql
# Pakowanie zrzutu baz z aktualną datą
DATE=`date '+%d%m%y'`
tar -czf /home/backup/all_databases_$DATE.tar.gz /home/backup/all_databases.sql
# Przerzucanie spakowanego zrzutu baz do folderu, z którego będzie przerzucany na serwer backupowy
# i usuwanie pliku .sql ze zrzutem.
mv /home/backup/all_databases_$DATE.tar.gz /var/www/mysql_backup
rm -rf /home/backup/all_databases.sql
exit;

 

i dodatkowo w cronie parę godzin później odpalany jest rsync wrzucający to na zewnętrzny serwer (wzięty stąd: http://www.scrounge....inux/rsync.html )

Edytowano przez d.v (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Miłosz:

DIRS="/home /etc /var/www"

W katalogu /home/Nazwa/ nie mam żadnych plików do mysql. Nie wiem za bardzo na co to zmienić.

 

@d.v.: Dzięki zaraz przetestuję.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość nrm

automysqlbackup zrobi to wszystko za ciebie i bedzie rotował wg ustawień.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przepraszam za odkop ale czy zrobiłby ktoś skrypt/y który w cronie robiłby backup na następny dzień wysłał go w emailu ponieważ nie mam możliwości zainstalowania rsync ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys

Nie wysyłałem nigdy backupu pocztą, aczkolwiek mutt poradzi sobie z wysłaniem w załączniku takowej kopi.

Spróbuj coś ala:

mysqldump -uUSER -pPASS --opt DB | gzip >~/sql.gz
echo | mutt -a ~/sql.gz  -s "Backup SQL $(date)" MAIL

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zaloguj się, aby skomentować

Będziesz mógł dodać komentarz po zalogowaniu się



Zaloguj się

×