Инструменты пользователя

Инструменты сайта


server:резервное_копирование_сайта_shell_скрипт

Резервное копирование ,три пункта.

  • Копирование базы данных сайта
  • Копирование файлов сайта
  • Автоматизация резервного копирования сайта

Копирование базы данных сайта

Все самые распространённые cms используют для хранения своих данных бд. Самым распространённый у хостеров сервером баз данных является MySQL. Так что при написании кода будем ориентироваться на него. У MySQL есть очень интересная утилита - mysqldump. Эта утилита создаёт дамп заданой базы данных. Потом из этого дампа если что можно восстановить все таблицы бд. Синтаксис вызова утилиты mysqldump.

mysqldump -u[логин к бд] -p[пасворд к бд] [название копируемой бд] >
[название файла дампа].sql

Для хранения резервных копий я создал через файловый менеджер в корне каталога на хостинге папку backup. Туда мой скрипт делает копии. Потом я их по ftp переношу на свой компьютер. В notepad++ я создал файл mybackup.sh и перенёс его в корневой каталог на хостинг. Ниже я выложил листинг mybackup.sh, который делает дамб бд и переносит его в папку backup.

#получаем текущую дату
BACKDATE=`date +%Y-%m-%d`;
#задаём имя копир. сайта
SITENAME='aweb34';
#создаём дамп бд и переносим его в backup
mysqldump -u[ваш логин к бд] -p[ваш пасс к бд] [название копир. бд] > backup/$SITENAME-$BACKDATE.sql;

Если вы хотите потестить работу скрипта в реальном времени, то код можно запустить в командной строке.

Копирование файлов сайта

Для копирования и архивации я использую команду tar. Синтаксис.

tar [-ключи] [путь и название содаваемого архива].tar.gz
[путь к папке или файлу, который архивируем]

Обычно все файлы сайта хранятся в папке public_html, её и будем архивировать и переносить в папку backup. Допишем наш скрипт mybackup.sh.

#получаем текущую дату
BACKDATE=`date +%Y-%m-%d`;
#задаём имя копир. сайта
SITENAME='aweb34';
#создаём дамп бд и переносим его в backup
mysqldump -u[ваш логин к бд] -p[ваш пасс к бд] [название копир. бд] > backup/$SITENAME-$BACKDATE.sql;
#архивируем файлы сайта
tar cvfz backup/$SITENAME-$BACKDATE.tar.gz public_html;

Теперь осталось настроить запуск скрипта автоматически по заданному нами графику.

Автоматизация резервного копирования

Есть такой демон (программа работающая в фоновом режиме) в юникс системах, cron. Cron это планировщик задач. Он даёт возможность запускать скрипты по определённому графику. Файл в котором расписано время выполнение задач называется crontab. Небольшая справка по синтаксису crontab.

* любой, день, месяц, год, час, минута
*/2 При применении к полю минута обозначает каждые 2 минуты
день недели День недели считается с 0 - воскресенье и заканчивается 7 - суббота
месяц считается с 1 до 12
день считается с 1 до 31
час считается с 0 до 23
минута считается с 0 до 59
0,4 при применении к полю дни недели событие происходит в воскресенье и четверг
server/резервное_копирование_сайта_shell_скрипт.txt · Последние изменения: 2016/11/21 11:23 — administrator