Резервне копіювання

Сподіваємося, що всі в курсі, що адміністратори діляться на тих, хто робить бекапи, і безробітних тих, хто вже робить? Також нагадуємо, що локальне зберігання резервних копій часто еквівалентно їх відсутності. Якщо у вас немає часу або можливості налаштувати нормальну систему резервного копіювання, можете скористатися таким скриптом.

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: pkg install ncftp
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