Копирование сайта с тестового сервера на удаленный сервер

Захотел заказчик видеть как продвигается его проект.
Настраиваем разворачивание бекапов с рабочего сервера на удаленный.

  • user - это имя Вашего пользователя в системе
  • dbsupersait - имя базы данных сайта

Удаляем старые бэкапы
nano /home/user/cron/delbackup.sh

 #!/bin/bash
 rm /home/user/Yandex.Disk/*.tar.*
 rm /var/www/supersait/bitrix/backup/*.tar.*
 echo "Старые бэкапу удалены"

Добавляем скрипт в cron на тестовом серваке
crontab -eu user
0 20 * * * /home/user/cron/delbackup.sh >> /var/log/watchdog-backup.log

Создаем новый бэкап средствами Bitrix Для этого добавляем еще одно задание в cron на тестовом серваке
crontab -eu user
0 21 * * * php /var/www/supersait/bitrix/modules/main/tools/backup.php  >> /var/log/watchdog-backup.log

Копируем бэкапы в Yandex.Disk
nano /home/user/cron/copyBackup.sh

 #!/bin/bash
 cp /var/www/supersait/bitrix/backup/*.tar.* /home/user/Yandex.Disk/
 chmod 777 /home/user/Yandex.Disk/*.tar.*
 yandex-disk sync
 yandex-disk status
 echo "Копирование бэкапов в облако завершено"
 echo "bacup copy to yandex.disk" | mail -s "copy backup supersait" pochta@gmail.com

Добавляем скрипт в cron на тестовом серваке
crontab -eu user
0 22 * * * /home/user/cron/copyBackup.sh >> /var/log/watchdog-backup.log

И так. На тестовом серваке у нас три задания.
crontab -lu user

 0 21 * * * php /var/www/supersait/bitrix/modules/main/tools/backup.php >>  /var/log/watchdog-backup.log
 0 20 * * * /home/user/cron/delbackup.sh >> /var/log/watchdog-backup.log
 0 22 * * * /home/user/cron/copyBackup.sh >> /var/log/watchdog-backup.log

Теперь на удаленном сервере добавляем скрипт разворачивания сайта в крон
nano /home/user/cron/restorebitrix.sh

 #!/bin/bash
 FILE=$(date +"%Y%d%m_%H%M")
 yandex-disk sync >> /var/log/siterestore/$FILE.log
 yandex-disk status >> /var/log/siterestore/$FILE.log
 chmod 777 /home/user/Yandex.Disk/*.tar.* >> /var/log/siterestore/$FILE.log
 echo "Копирование бэкапов в облако завершено" >> /var/log/siterestore/$FILE.log
 echo "bacup copy to yandex.disk" | mail -s "copy backup supersait" pochta@gmail.com

 rm -rf /var/www/supersait >> /var/log/siterestore/$FILE.log
 echo "Удален корневой каталог сайта" >> /var/log/siterestore/$FILE.log

 mysql -u root -pпароль -e "show databases" >> /var/log/siterestore/$FILE.log
 echo "Удаление Базы MySQL" >> /var/log/siterestore/$FILE.log
 mysql -u root -pпароль -e "drop database dbsupersait" >> /var/log/siterestore/$FILE.log
 mysql -u root -pпароль -e "show databases" >> /var/log/siterestore/$FILE.log
 echo "Создаем новую базу MySQL" >> /var/log/siterestore/$FILE.log
 mysql -u root -pпароль -e "create database dbsupersait" >> /var/log/siterestore/$FILE.log

 mkdir /var/www/supersait >> /var/log/siterestore/$FILE.log
 echo "Создан каталог кореня сайта с владелбцем www-data:www-data и правами 7777" >> /var/log/siterestore/$FILE.log
 echo "Копируем бекап в корень сайта" >> /var/log/siterestore/$FILE.log

 cp /home/user/Yandex.Disk/*.tar.* /var/www/supersait >> /var/log/siterestore/$FILE.log
 chown -hR www-data:www-data /var/www/supersait >> /var/log/siterestore/$FILE.log
 chmod -R 777 /var/www/supersait >> /var/log/siterestore/$FILE.log
 cd /var/www/supersait >> /var/log/siterestore/$FILE.log
 echo "Извлечение из архива" >> /var/log/siterestore/$FILE.log
 cat *.* | tar xzv >> /var/log/siterestore/$FILE.log
 echo "восстановление дампа базы данных" >> /var/log/siterestore/$FILE.log
 mysql -u root -pпароль dbsupersait < /var/www/supersait/bitrix/backup/*full_????????.sql

 sed 's/'"'"'database.*/'"'"'database'"'"' => '"'"'dbsupersait'"'"',/g' /var/www/supersait/bitrix/.settings.php > .settings.php
 mv .settings.php /var/www/supersait/bitrix/.settings.php
 sed 's/'"'"'login.*/'"'"'login'"'"' => '"'"'root'"'"',/g' /var/www/supersait/bitrix/.settings.php > .settings.php
 mv .settings.php /var/www/supersait/bitrix/.settings.php
 sed 's/'"'"'password.*/'"'"'password'"'"' => '"'"'пароль'"'"',/g' /var/www/supersait/bitrix/.settings.php > .settings.php
 mv .settings.php /var/www/supersait/bitrix/.settings.php

 sed 's/$DBLogin.*/$DBLogin = "root";/g' /var/www/supersait/bitrix/php_interface/dbconn.php > dbconn.php
 mv dbconn.php /var/www/supersait/bitrix/php_interface/dbconn.php >> /var/log/siterestore/$FILE.log
 sed 's/$DBName.*/$DBName = "dbsupersait";/g' /var/www/supersait/bitrix/php_interface/dbconn.php > dbconn.php
 mv dbconn.php /var/www/supersait/bitrix/php_interface/dbconn.php >> /var/log/siterestore/$FILE.log
 sed 's/$DBPassword.*/$DBPassword = "пароль";/g' /var/www/supersait/bitrix/php_interface/dbconn.php > dbconn.php
 mv dbconn.php /var/www/supersait/bitrix/php_interface/dbconn.php >> /var/log/siterestore/$FILE.log

 echo "Удаление служебной информации" >> /var/log/siterestore/$FILE.log
 rm /var/www/supersait/*.tar.* >> /var/log/siterestore/$FILE.log
crontab -eu user

На удаленном серваке у нас одно задание.
crontab -lu user
0 23 * * * /home/user/cron/restorebitrix.sh >> /var/log/wathcdog-backup.log

Комментариев нет :

Отправить комментарий

Поиск по этому блогу