В этой статье приведён самописный bash-скрипт, с помощью которого вы сможете автоматизировать создание бэкапов сайтов на вашем VDS/VPS, если вы используете MySQL сервер версии выше версии 5.5 или же сервер MariaDB. Сам скрипт можно вызывать как планировщиком задач, так и напрямую. Скрипт написан с условиями, что в корне файловой системы имеется каталог /backup, а ваши сайты находятся в каталоге /var/www. Предупреждение: хотя скрипт полностью рабочий, он написан в ознакомительных целях и предназначен только для специалистов. Если вы испытываете затруднения с интерпретацией этих несложных команд, не пытайтесь вносить изменения на вашем сервере самостоятельно — лучше воспользуйтесь помощью профессионалов в области администрирования.
Начиная с версии 5.5, MySQL сервер поддерживает утилиту mysqldump, с помощью которой из консоли можно сделать дамп базы данных одной командой. Логика приведённого ниже баш-скрипта заключается в том, что сначала выполняется экспорт баз данных, а потом с помощью tar сжимаются файлы сайтов. В конце формируется архив tar.gzip, в который помещаются дампы БД и файлы сайтов по отдельности.
#!/bin/bash # Переходим в предварительно созданный каталог для резервных копий cd /backup # Измените user на логин, password на пароль доступа к БД отдельных сайтов, # Измените site1 на имя БД, site1.sql на имя файла дампа SQL, который будет создан. mysqldump -u user -p"password" -h localhost site1 > site1.sql mysqldump -u user -p"password" -h localhost site2 > site2.sql mysqldump -u user -p"password" -h localhost site3 > site3.sql mysqldump -u user -p"password" -h localhost site4 > site4.sql mysqldump -u user -p"password" -h localhost site5 > site5.sql # Это переменная названия архива с префиксом даты и времени TARNAME=webcopy.full__$(date +%d-%m-%y__%H-%M-%S).tar # Создаём архив, упаковываем дамп первой БД tar -cpf $TARNAME site1.sql # Добавляем в существующий архив дампы остальных БД tar -rpf $TARNAME site2.sql tar -rpf $TARNAME site3.sql tar -rpf $TARNAME site4.sql tar -rpf $TARNAME site5.sql # Удаляем дампы после их архивации rm *.sql # Переходим в директорию, где находятся ваши сайты cd /var/www # Добавляем в существующий архив каталоги сайтов по отдельности tar -rpf /backup/$TARNAME site1 tar -rpf /backup/$TARNAME site2 tar -rpf /backup/$TARNAME site3 tar -rpf /backup/$TARNAME site4 tar -rpf /backup/$TARNAME site5 # Переходим обратно в каталог резервных копий cd /backup # Сжимаем tar архив с помощью gzip gzip $TARNAME
После выполнения данного скрипта в каталог /backup запишется архив в формате tar.gz с префиксом даты, в котором будут содержаться файлы всех сайтов и дампы их баз данных по отдельности.