Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації до оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Допомога проекту
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

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 · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1