Скрипт резервного копирования веб сервера

Задача:
---------------------------------------------------------------Организовать при помощи скрипта, резервное копирование веб-сервера и баз данных с циклом 5 дней и с последующим копирование на удалённый FTP сервер.
Небольшой скрипт, с помощью которого делаю бекапы (резервные копии) сайтов и базы дынных веб-сервера. Алгоритм работы скрипта примерно следующий:
- Получаем список баз данных и делаем бекап всех баз, по отдельности в каждый файл. Поэтому нам потребуется root пользователь баз данных.
- Архивируем директории с данными сайтов
- Закачиваем бекап на FTP-сервер
- Удаляем бекапы старше 5 дней
Конечно, для правильной работы скрипта необходимо изменить параметры в разделе “settings”
#!/bin/sh # Autor: osBSD # date: 2019-03-10 # web: https://osbsd.com # Settings DB_USER="user" DB_PASS="pass" FTP_USER="ftp_user" FTP_PASS="ftp_pass" FTP_ADDR="ftp.osbsd.com" FTP_DIR=`date +%F_%H-%M-%S` SITES_DIR="/usr/local/www" BACKUP_PATH="/tmp/backup/$FTP_DIR" mkdir -p $BACKUP_PATH/$FTP_DIR; # Backup mysql ALL_DB_NAME="$(mysql -u$DB_USER -p$DB_PASS -Bse 'show databases' | grep -v performance_schema | grep -v information_schema)" for db in $ALL_DB_NAME; do echo dump base - $db mysqldump --force --opt --lock-all-tables -u$DB_USER -p$DB_PASS --databases $db | bzip2 > $BACKUP_PATH/base_$db.bz2 mysqldump --force --opt --lock-all-tables -u$DB_USER -p$DB_PASS --databases $db > $BACKUP_PATH/base_$db.sql done # Backup web for DIR in `ls $SITES_DIR | awk '{print $1}'`; do echo archive site - $DIR cd $SITES_DIR tar -czf $BACKUP_PATH/web_${DIR}.tgz ${DIR} done # FTP server upload cd $BACKUP_PATH ftp -n -i $FTP_ADDR <<END_SCRIPT quote USER $FTP_USER quote PASS $FTP_PASS cd websait mkdir $FTP_DIR cd $FTP_DIR binary mput * quit END_SCRIPT # Remove old backups find $BACKUP_PATH/ -mtime +5 | xargs rm -f
Свежие комментарии