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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×