Vultr предлагает автоматическое резервное копирование в качестве опции для любого VPS Performance Series. В этой статье, в дополнение к этой функции, есть возможность автоматически создавать ежедневные резервные копии базы данных на сервере, а также отправлять их по FTP на сервер резервного копирования или даже на файловые хосты.
обзор
- Автоматическое резервное копирование выполняется ежедневно. Время создания резервной копии настраивается.
- Многие файловые хосты предлагают передачу файлов по FTP, поэтому вы можете автоматически отправлять базу данных в личный кабинет.
- Он отправляет электронное письмо после завершения резервного копирования.
Описание
Сначала создайте и перейдите в /backups
каталог.
mkdir /backups
cd /backups
Затем, используя nano
или ваш любимый редактор, создайте файл скрипта:
nano backupdb.sh
Теперь скопируйте и вставьте этот скрипт и отредактируйте переменные вверху в соответствии с вашими настройками:
#!/bin/bash
############### Infos - Edit them accordingly ########################
DATE=`date +%Y-%m-%d_%H%M`
LOCAL_BACKUP_DIR="/backups"
DB_NAME="database_name"
DB_USER="root"
DB_PASSWORD="root_password"
FTP_SERVER="111.111.111.111"
FTP_USERNAME="ftp-user"
FTP_PASSWORD="ftp-pass"
FTP_UPLOAD_DIR="/upload"
LOG_FILE=/backups/backup-DATE.log
############### Local Backup ########################
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $LOCAL_BACKUP_DIR/$DATE-$DB_NAME.sql.gz
############### UPLOAD to FTP Server ################
ftp -nv $FTP_SERVER << EndFTP
user "$FTP_USERNAME" "$FTP_PASSWORD"
binary
cd $FTP_UPLOAD_DIR
lcd $LOCAL_BACKUP_DIR
put "$DATE-$DB_NAME.sql.gz"
bye
EndFTP
############### Check and save log, also send an email ################
if test $? = 0
then
echo "Database Successfully Uploaded to the Ftp Server!"
echo -e "Database Successfully created and uploaded to the FTP Server!" | mail -s "Backup from $DATE" [email protected]
else
echo "Error in database Upload to Ftp Server" > $LOG_FILE
fi
После того, как вы закончили редактирование скрипта и сохранили файл, мы делаем файл исполняемым с помощью следующей команды:
chmod +x backupdb.sh
Вы можете проверить это сейчас, набрав в терминале.
/backups/backupdb.sh
... и после того, как он завершит выполнение, введите, ls -a
чтобы убедиться, что резервная копия базы данных была создана. Также подтвердите, был ли он отправлен на ваш FTP-сервер.
Если до сих пор все работало хорошо, мы можем запустить его ежедневно, используя Crontab.
Разделы Crontab
Вы можете отредактировать ваш crontab с помощью следующей команды:
crontab -e
Это вызовет текстовый редактор, где вы можете вводить свое расписание с каждой работой в новой строке.
Каждый из разделов разделен пробелом, а последний раздел содержит один или несколько пробелов. Вот как устроена работа cron:
минута (0-59), час (0-23, 0 = полночь), день (1-31), месяц (1-12), день недели (0-6, 0 = воскресенье), команда
Итак, в редакторе введите или вставьте эту строку:
30 02 * * * /backups/backupdb.sh
Приведенный выше пример будет выполняться /backups/backupdb.sh
в 02:30 каждый день каждого месяца. Конечно, вы можете изменить время по своему усмотрению.
Теперь просто сохраните и закройте файл. В назначенное время будет выполнено резервное копирование.