Бэкап (от англ. backup — «резервная копия») — это резервная копия данных, которая содержит всю информацию о сайте\проекте и хранится на компьютере, сервере или в облачном хранилище. Эти данные нужны на случай, если что-то случится с основной версией.
Достаточно простой и удобный скрипт, позволит Вам создавать резервные копии файлов сайтов и баз данных из командной строки Linux.
nano /home/backup.sh
#!/bin/bash
tar -czvf /backup/www.$(date +%Y%m%d-%H%M%S).tar.gz /path/to/document_root
find /backup/www/www* -mtime +14 -exec rm {} \;
mysqldump -u root --opt -R my_database > /backup/my_database-$(date +%Y%m%d-%H%M%S).sql
find /backup/my_database* -mtime +14 -exec rm {} \;
exit 0
Вторая строка скрипта использует в качестве параметра путь к директории сайта, в данном примере «/path/to/document_root», после чего создает архивный файл, имя которого будет содержать текущую дату. Например, для архивирования другой директории, Вам необходимо будет изменить ее в скрипте. Также обратите внимание, что директория /backup должна существовать на сервере, крайне рекомендуется чтобы в неё было смонтировано внешнее, не зависящее от сервера, хранилище.
Третья и пятая строка скрипта отвечает за ротацию резервных копий, в данном примере копии старше 14 дней будут удаляться при запуске скрипта. Четвертая строка скрипта создает дамп базы данных, в данном примере «my_database» нужно будет изменить на имя Вашей базы данных.
Резервное копирование данных должно производиться тогда, когда эти данные не изменяются. Ставим ежесуточное выполнение скрипта на cron:
crontab -e
0 2 * * * bash /home/backup.sh > /dev/null 2>&1