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

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


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

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

server:резервное_копирование_сайта_shell_скрипт [2016/11/21 11:23] (текущий)
administrator создано
Строка 1: Строка 1:
 +Резервное копирование ,три пункта.
 +
 +  * Копирование базы данных сайта
 +  * Копирование файлов сайта
 +  * Автоматизация резервного копирования сайта
 +
 +==== Копирование базы данных сайта ====
 +
 +Все самые распространённые cms используют для хранения своих данных бд. Самым распространённый у хостеров сервером баз данных является MySQL. Так что при написании кода будем ориентироваться на него. У MySQL есть очень интересная утилита - ''​mysqldump''​. Эта утилита создаёт дамп заданой базы данных. Потом из этого дампа если что можно восстановить все таблицы бд. Синтаксис вызова утилиты mysqldump.
 +
 +''​mysqldump -u[логин к бд] -p[пасворд к бд] [название копируемой бд] >'' ​ \\ ''​[название файла дампа].sql''​
 +
 +Для хранения резервных копий я создал через файловый менеджер в корне каталога на хостинге папку backup. Туда мой скрипт делает копии. Потом я их по ftp переношу на свой компьютер. В notepad++ я создал файл mybackup.sh и перенёс его в корневой каталог на хостинг. Ниже я выложил листинг mybackup.sh,​ который делает дамб бд и переносит его в папку backup.
 +
 +<​code>#​получаем текущую дату
 +BACKDATE=`date +%Y-%m-%d`;
 +#​задаём имя копир. сайта
 +SITENAME='​aweb34';​
 +#​создаём дамп бд и переносим его в backup
 +mysqldump -u[ваш логин к бд] -p[ваш пасс к бд] [название копир. бд] > backup/​$SITENAME-$BACKDATE.sql;​
 +</​code>​
 +
 +Если вы хотите потестить работу скрипта в реальном времени,​ то код можно запустить в командной строке.
 +
 +==== Копирование файлов сайта ====
 +
 +Для копирования и архивации я использую команду ''​tar''​. Синтаксис.
 +
 +''​tar [-ключи] [путь и название содаваемого архива].tar.gz''​ \\ ''​[путь к папке или файлу, который архивируем]''​
 +
 +Обычно все файлы сайта хранятся в папке public_html,​ её и будем архивировать и переносить в папку backup. Допишем наш скрипт mybackup.sh.
 +
 +<​code>#​получаем текущую дату
 +BACKDATE=`date +%Y-%m-%d`;
 +#​задаём имя копир. сайта
 +SITENAME='​aweb34';​
 +#​создаём дамп бд и переносим его в backup
 +mysqldump -u[ваш логин к бд] -p[ваш пасс к бд] [название копир. бд] > backup/​$SITENAME-$BACKDATE.sql;​
 +#​архивируем файлы сайта
 +tar cvfz backup/​$SITENAME-$BACKDATE.tar.gz public_html;​
 +</​code>​
 +
 +Теперь осталось настроить запуск скрипта автоматически по заданному нами графику.
 +
 +==== Автоматизация резервного копирования ====
 +
 +Есть такой демон (программа работающая в фоновом режиме) в юникс системах,​ 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