backupalka
Це стара версія документу!
Резервное копирование
Надеемся, что все в курсе, что администраторы делятся на тех кто делает бекапы и безработных тех кто уже делает? Также напоминаем, что локальное хранение резервных копий зачастую эквивалентно их отсутствию.
Если у вас нету времени или возможности настраивать нормальную систему резервного копирования, можете воспользоваться следующим скриптом.
- backupalka.sh
#!/bin/sh # directory to store local backups BACKUP_DIR="/home/backups/" # max backups store age in days MAX_AGE=30 # dirs which will be packed during backup SYSTEM_DIRS="/etc /usr/local/etc /usr/local/www/apache24/data /var/log/stargazer.log /var/cron/tabs/root" # mysqldump path MYSQLDUMP="/usr/local/bin/mysqldump" # mysql user login MYSQL_USER="root" # mysql password MYSQL_PASSWORD="newpassword" # mysql database host MYSQL_HOST="localhost" # ftp upload of backup archive, using ncftp # you can install it with following command: fetch ftp://ftp.ncftp.com/ncftp/ncftp-3.2.6-src.tar.gz && tar zxvf ncftp-3.2.6-src.tar.gz && cd ncftp-3.2.6 && ./configure && make && make install FTP_UPLOAD="NO" # ftp backup remote host FTP_HOST="backups.isp" # ftp user login FTP_LOGIN="myftplogin" # ftp user password FTP_PASSWORD="myftppassword" #remote directory to upload backups (must exists) FTP_REMOTE_PATH="/home/backups/billingserver/" ############################################################## DATE=`date +%Y%m%d` cd $BACKUP_DIR; mkdir $DATE; chmod 777 $DATE; cd $DATE; tar cf - $SYSTEM_DIRS | gzip > system.tar.gz mkdir sql; chmod 777 sql; cd sql; ${MYSQLDUMP} --opt --skip-lock-tables --single-transaction -h ${MYSQL_HOST} -p${MYSQL_PASSWORD} -u ${MYSQL_USER} --all-databases | gzip > mysql.sql.gz ############################################################## cd $BACKUP_DIR for i in *; do AGE=`echo $DATE-$i|bc` if [ $AGE -gt 69 ]; then AGE=`echo $AGE-69|bc` fi if [ $AGE -gt $MAX_AGE ]; then rm -rf $i fi done case $FTP_UPLOAD in YES) /usr/local/bin/ncftpput -R -v -u ${FTP_LOGIN} -p ${FTP_PASSWORD} ${FTP_HOST} ${FTP_REMOTE_PATH} ${BACKUP_DIR}${DATE} echo "FTP upload finished";; NO) echo "No FTP upload enabled";; esac
Да, для заливки бекапов по ftp используется ncftp. Можете установить его как-то так:
# pkg install ncftp
или так
# fetch ftp://ftp.ncftp.com/ncftp/ncftp-3.2.6-src.tar.gz && tar zxvf ncftp-3.2.6-src.tar.gz && cd ncftp-3.2.6 && ./configure && make && make install
либо любым другим удобным вам способом
ну да, и в crontab -e ее так вжух!
2 2 * * * /bin/backupalka.sh
ну и естественно не забываем сделать
# chmod a+x /bin/backupalka.sh
backupalka.1664019551.txt.gz · Востаннє змінено: повз 127.0.0.1
