Удалённое и локальное резервное копирование файлов и баз данных сайта
- Подробности
- Категория: Для сайта
- Опубликовано 04.08.2013 10:17
Дорогие читатели, сегодня мы с вами поговорим о создании хорошего способа резервного копирования для вашего сайта, при чём копирования как удалённого, так и локального.
Эту статью лично меня мотивировало написать то что совсем недавно, пару недель назад, я не мог найти довольно простого и рабочего способа создания резервных копий, а в интернете находилось всё однообразное и приводились премеры создания инкрементальных резервных копий, а я хотел архив.
Немного поковыряв функционал скриптинга и поговорив с саппортом хостинга, нашёл очень простое и эффективное решение для резервного копирования файлов и баз данных сайта.
Для работы нам понадобиться Cron, прямые руки и доступ к SSH.
Для начала создаём файл, который назовём backup.sh. Файл крайне не рекомендуется создавать в зоне www, а лучше в самом корне файловой системы хостинга до которого вы можете добраться. Затем создаём папку там же в корне, куда будут копироваться резервные копии, назовём её archive и присвоим права 777.
Теперь желательно определиться будет ли ещё копирование резервных копий на удалённый сервер по FTP или нет. Если да, то настройте на удалённом сервере FTP к необходимой вам папке, куда будут копироваться архивы файлов и БД.
Теперь наполняем файл backup.sh написанным мною скриптом:
mysqldump -u USER_DB -pPASSWORD_DB NAME_DB > archive/mysite_db-`/bin/date +%Y-%m-%d`.sql #Записываем в файл дамп БД
tar -zcf archive/mysite.ru-`/bin/date +%Y-%m-%d`.tar.gz www/mysite.ru #Сохраняем в архив файлы сайта
#Всё что ниже - связано с копирование по FTP, можете удалить если вам это не нужно
ftp -n HOST_FTP <<END_SCRIPT
quote USER USER_FTP
quote PASS PASSWORD_FTP
dir
ascii
put archive/mysite_db-`/bin/date +%Y-%m-%d`.sql db/mysite_db-`/bin/date +%Y-%m-%d`.sql
put archive/mysite.ru-`/bin/date +%Y-%m-%d`.tar.gz files/mysite.ru-`/bin/date +%Y-%m-%d`.tar.gz
dir
quit
END_SCRIPT
exit 0