opened image

Создание резервной копии из консоли через планировщик cron

Создание резервной копии с помощью cron из командной строки.

Если вам нужно настроить резервное копирование вашего сайта, чтобы автоматически создавать резервные копии данных сайта на вашем VPS, вы можете использовать ssh или SFTP для подключения к VPS от имени пользователя root. Вам нужно будет создать несколько папок в корневой директории (/), чтобы разместить резервные копии. Создайте следующие папки:

/backup/
/backup/www/
/backup/sql/

Теперь в папке /backup создайте скрипт, который будет запускать планировщик cron для создания резервных копий. Создайте новый файл и назовите его, например, www-backup.sh или mysql-backup.sh. Можете использовать скрипты для выполнения резервного копирования описанные ране в статьях. Обратите внимание, что вам необходимо заменить "yoursqlpassword" на свой root-пароль для доступа к базам данных или пользовательский пароль у нужной БД.

Создание двух разных скриптов для резервного копирования сайта и базы данных позволяет нам запускать их в разные промежутки времени. Например, если обычно достаточно создавать резервные копии сайта раз в неделю, то базу данных желательно архивировать ежедневно.

Добавление скриптов в планировщик cron.

После создания скриптов для резервного копирования базы данных и файлов сайта (например, www-backup.sh и mysql-backup.sh) добавьте задания в crontab-файл. Откройте файл /etc/crontab и добавьте следующие строки:

nano /etc/crontab

Или для другого пользователя, кроме root:

crontab -e

00 2 * * 1 root sh /backup/www-backup.sh
00 3 * * * root sh /backup/mysql-backup.sh

В этом примере архивирование файлов сайта будет выполняться каждый понедельник в 2:00, а резервное копирование базы данных будет выполняться каждый день в 3:00. Вы можете изменить эти интервалы согласно своим потребностям. После добавления заданий перезапустите демон cron, чтобы изменения вступили в силу. Для этого используйте команду:

service cron restart

Обратите внимание, что скрипты сохраняют только последние версии резервных копий, согласно параметрам и настройкам самого скрипта.

Создание резервной копии по расписанию для LAML/LEMP без скрипта.
Если В этом примере будет создана новая резервная копия с именем "backup.new.tar.gz", а старая копия будет переименована в "backup.old.tar.gz". При выполнении задания старая копия будет удалена, а затем создастся новая копия.

Вот два задания в crontab для архивации только сайта.  Можно использовать для разных сайтов, разделяя выполнение архивирования на разное время.

00 02 0 * * cd /backup/; rm -f /backup/backup.old.tar.gz; mv /backup/backup.new.tar.gz backup.old.tar.gz; tar -czvf backup.new.tar.gz /home/admin/web
00 03 0 * * cd /backup/; rm -f /backup/backup.old.tar.gz; mv /backup/backup.new.tar.gz backup.old.tar.gz; tar -czvf backup.new.tar.gz /home/admin/web

Автоматизированное резервное копирование с помощью cron и скрипта
Еще один вариант резервного копирования сайта и базы данных с использованием cron. В этом случае задание будет запускаться каждый вторник в 21:00 в соответствии со скриптом.

Откройте файл nano /etc/crontab и добавьте следующую строку:

nano /etc/crontab

00 21 * * 2 root sh /home/admin/backup.sh