8
GRUDZIEń
Backup za pomocą lftp
Wpisane przez Michał Kowalski w kategoriach Bash, Debian, OS, OpenBSD, Programowanie, lftp
Poniższy skrypt bash’owy tworzy backup plików i baz MySQL w katalogu /home/backup, następnie za pomocą lftp kopiuje spakowane pliki backupu na zdalny serwer FTP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #!/bin/bash set -x DATE=`date +%Y%m%d` #dzisiejsza data # katalog w którym lokalnie przechowujemy backup, mozemy tutaj # takze podac jakikolwiek udzial w sieci lokalnej np. //nas/BACKUP BACKUP_DIR=/home/BACKUP #backupy z ilu dni poprzednich maja byc tworzone DNI_WSTECZ=`date --date '5 day ago' +%Y%m%d` FTP_HOST='ftp.host.com' FTP_LOGIN='user' FTP_PASS='password' #kasowanie katalogu starszego niz DNI_WSTECZ rm -rf $BACKUP_DIR/$DNI_WSTECZ echo "Skasowano $BACKUP_DIR/$DNI_WSTECZ" mkdir $BACKUP_DIR/$DATE #echo "/root" tar cfz $BACKUP_DIR/$DATE/root-$DATE.tar.gz --exclude /proc/kcore --exclude /tmp --exclude /home --exclude /usr --exclude /var / #echo "/usr" tar cfz $BACKUP_DIR/$DATE/usr-$DATE.tar.gz /usr #echo "/var" tar cfz $BACKUP_DIR/$DATE/var-$DATE.tar.gz /var #echo "/home" tar cfz $BACKUP_DIR/$DATE/home-$DATE.tar.gz --exclude virtual --exclude BACKUP /home #backup MySQLa /usr/bin/mysqldump --password=haslo_do_mysql --user=root --opt --all-databases > $BACKUP_DIR/$DATE/mysql-$DATE.sql lftp -u ${FTP_LOGIN},${FTP_PASS} ${FTP_HOST} < <EOF cd backup mrm -r ${DNI_WSTECZ} mirror --reverse --verbose --only-newer ${BACKUP_DIR} /backup quit EOF |
Na końcu lini 37 nie powinno być spacji pomiędzy znakami <
Reader's Comments
Leave a Reply
Meta Wpisu
-
8 grudnia, 2008 -
Bash, Debian, OS, OpenBSD, Programowanie, lftp -
2 Komentarzy
-
RSS Komentarzy
Nie wiem który serwer pociągnie root, usr, var i home razem ale dobra. Nie lepiej było by zrobić kompaktowo do archiwum? :)
Backupy nie są robione jednocześnie tylko jeden po drugim ;)
Kończy się root, to zaczyna się usr itd.
Co rozumiesz pisząc “kompaktowo do archiwum”?