Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

С помощью этой инструкции вы узнаете как настроить резервное копирование баз данных и прочих файлов по FTP на хостинг Timeweb с помощью программ MS SQL Server, WinRAR, WinSCP и планировщика заданий Windows.

Итак, у нас имеется локальный сервер, на котором хранятся базы данных и фтп сервер, куда мы хотим эти базы данных отправлять. Ftp сервером у нас будет хостинг для сайтов Timeweb, так как у организации имеется сайт на этом хостинге, там есть немного свободного места и мы используем его для хранения копий баз данных. Кроме этого у вас на локальном сервере должны быть установлены WinRAR и WinSCP. Если у вас нет необходимости сжимать архиватором базу данных,как в моём случае, вы можете отправлять на фтп сервер базу без архивации. Пример с архивацией может пригодиться, если вы отправляете произвольные файлы, и их надо предварительно запаковать, либо хотите установить пароль на архив, так как передача по ftp протоколу небезопасна. Общая схема описываемых действий выглядит так:

Содержание

  1. Подготовка каталогов на сервере;
  2. Настройка резервного копирования в Microsoft SQL Server;
  3. Настройка архивации базы данных с помощью консольных команд WinRAR;
  4. Настройка передачи файлов с сервера на фтп сервер Timeweb с помощью скрипта WinSCP.

Подготовка каталогов на сервере

Предварительно создаём каталог для сохранения выгрузки из MS SQL Server, к примеру "F:\backup\bd1".

Далее создаём папку,в которую будет запаковываться архиватором winrar база данных, к примеру "F:\backup\bd1rar".

Настройка резервного копирования в Microsoft SQL Server

 На сервере заходим в среду Microsoft SQL Server Management Studio. Далее Управление => Планы обслуживания => Создать план обслуживания. В плане создаём задачу резервного копирования базы данных:

Создание плана обслуживания для резервного копирования базы данных на MS SQL Server

Теперь нужно изменить настройки задачи. Указываем:

  • Тип резервной копии - Полное;
  • Базы данных - выбираем нужную базу, в моём случае bd1;
  • Компонент резервного копирования - база данных;
  • Создать резервную копию на - диске;
  • Создать резервную копию баз данных в одном или нескольких файлах - Добавить и указываем путь к папке для сохранения выгрузки из MS SQL Server, в моём случае "F:\backup\bd1;
  • Если файлы резервной копии существуют - Перезаписать;
  • Сжимать резервные копии - Сжимать.

Настройка задачи резервного копирования в плане обслуживания MS SQL Server

Сохраняем и проверяем создаётся ли резервная копия:

Выполнение плана обслуживания MS SQL Server

Создаём расписание резервного копирования. Указываем, что задача будет выполняться ежедневно в 0:00 каждый день и сохраняем изменения:

Расписание выполнения задачи резервного копирования в MS SQL Server

На этом настройка на стороне MS SQL Server окончена.

Настройка архивации базы данных с помощью консольных команд WinRAR

 Эту задачу мы будем прописывать сразу в планировщик задач Windows. Открываем планировщик и создаём простую задачу:

Создание простой задачи архивации базы данных в планировщике задач

Указываем удобное для понимания название:

Создание простой задачи архивации базы данных в планировщике задач - название задачи

Указываем, что задачу надо запускать ежедневно:

Создание простой задачи архивации базы данных в планировщике задач - ежедневно

 Ставим время выполнения так, чтобы задача резервного копирования MS SQL Server успела выполниться. В моём случае поставил на 5 минут позже:

Создание простой задачи архивации базы данных в планировщике задач - время выполнения

Действие выбираем "Запустить программу":

Создание простой задачи архивации базы данных в планировщике задач - действие - запустить программу

 Выбираем программу WinRAR, а именно исполняемый файл Rar.exe и прописываем необходимые аргументы:

Создание простой задачи архивации базы данных в планировщике задач - выбор программы WinRAR и написание аргументов

Аргументами в моём случае были: a -r -m5 -ep -u F:\backup\bd1rar\bd1.rar F:\backup\bd1\bd1.bak. 

  • a - добавить файлы в архив;
  • -r - с вложенными папками (в моём случае это не нужно, но вам может пригодиться);
  • -m5 - указываем максимальную степень сжатия;
  • -ep - исключает путь от корня к папке назначения. Если не прописать, то внутри архива будет структура папок с файлом backup\bd1\bd1.bak, а не просто сам файл;
  • -u - указывает, что нужно обновить файлы в архиве. WinRAR смотрит на дату создания файла, и если она отличается, перезаписывает файлы в архиве;
  • -p - устанавливаем пароль на архив (необязательно).

С установкой пароля будет выглядеть так: a -r -m5 -ep -u -pPaRoLLLLL2020xxx F:\backup\bd1rar\bd1.rar F:\backup\bd1\bd1.bak, где PaRoLLLLL2020xxx - пароль.

Кроме этого нужно обратить внимание на пути, если в пути есть пробел, к примеру F:\back up, то путь надо заключать в кавычки - "F:\back up".

описание параметров WinRAR для командной строки

Далее проверяем настройки задачи и жмём Готово:

Создание задачи архивации базы данных в планировщике задач - проверяем настройки задачи

Запускаем созданную задачу в планировщике:

WinRAR через командную строку

На этом архивация резервной копии завершена.

Настройка передачи файлов с сервера на FTP сервер Timeweb с помощью скрипта WinSCP

В моём случае база данных передаётся по FTP протоколу на хостинг Timeweb, где находится сайт организации. И, кстати говоря, когда словили вирус шифровальщик, эта резервная копия очень спасла, так как она передалась ночью, а после этого в 5 утра началась атака и в результате сетевые хранилища резервных копий тоже были заражены.

Настройка хостинга для сайтов Timeweb для хранения резервных копий

 В панели управления хостинга Timeweb переходим в файловый менеджер и создаём папку для бекапов backupbd1:

Создание папки для бекапов на хостинге Timeweb

Переходим в "Пользователи ПУ/FTP" и создаём нового пользователя - специально для задачи резервного копирования нашей базы. Придумываем логин и пароль, включаем доступ к файлам по FTP и переходим в раздел "Доступ к файлам по FTP":

Создание пользователя FTP на хсотинге Timeweb

Включаем "Ограничить доступ директорией" и указываем нашу созданную папку /backupbd1:

Ограничение доступа к директориям пользователя FTP хостинга Timeweb

На этом настройка на стороне хостинга Timeweb закончена.

Хочу обратить внимание, что в такой настройке передачи безопасность передаваемых данных будет осуществлять только пароль на архив. Злоумышленники при этом могут попытаться перехватить архив при передаче. Максимальная длина пароля в программе WinRAR 127 символов. Вам нужно ставить сложный пароль в виде набора букв,цифр и специальных символов не менее 8 символов в пароле. Если поставите пароль длиной 127 символов, на его расшифровку и взлом архива потребуется время, сопоставимое с временем существования вселенной.

Для более безопасной передаче данных, при которой злоумышленники не смогут перехватить архив, можно использовать соединение SFTP по протоколу SSH. О том как это настроить будет написано в другой статье.

И если даже ваш сервер и все локальные резервные копии зашифрует вирус шифровальщик, на хостинге Timeweb делаются свои резервные копии в течении трех дней по дной копии в день, и вы сможете восстановить данные там. Шифровальщик зашифрует ваш файл базы данных и создает его пустую копию, которая при следующей передаче файлов на фтп заменит файл на хостинге, но вы сможете откатить файлы на хостинге и восстановить бекап. 

Создание файла скрипта и задачи в планировщике

Итак, создаём текстовый файл scriptbd1scp.txt (указывайте своё название) со скриптом, который будем далее запускать из планировщика, положим его, к примеру, в папку F:\backup, чтобы всё в одной куче было. Общий вид содержимого скрипта будет таким:

 

option batch on

option confirm off

# open ftp connection

open ftp://user:password@server

# synchronize files from server

synchronize -criteria=size -transfer=binary remote local-path remote-path

exit

Где

  • user и password - подставляете данные созданного пользователя FTP Timeweb;
  • local-path - путь к папке локального сервера;
  • remote-path - путь к папке на фтп сервере, ставите "/", то есть в корень папки backupbd1;
  • server - имя или адрес вашего сервера. В Timeweb его посмотреть можно тут:

Где посмотреть адрес сервера на хостинге Timeweb

В итоге в моём случае получилось так:

option batch on
option confirm off

# open ftp connection
open ftp://*****_backup:HRkQeRL8SOBAKAvh50.timeweb.ru

# synchronize files from server
synchronize -criteria=size -transfer=binary remote F:\backup\bd1rar /

exit

*В коде вместо SOBAKA - @, движок сайта думает что это почтовый адрес иначе :)

***** - скрыт основной логин хостинга.

Итак, создаём ещё одну простую задачу в планировщике по аналогии c задачей архивации. Укажем время выполнения через 15 минут после задачи архивации. Выбираем программу WinSCP в папке её установки и указываем аргументы /console /script=F:\backup\scriptbd1scp.txt:

Задача передачи файлов по фтп в планировщике задач Windows с помощью WinSCP

Запускаем созданную задачу и видим, процесс передачи на фтп сервер Timeweb:

Передача бекапа базы данных на фтп сервер Timeweb с помощью консоли Timeweb

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

На этом настройка резервного копирования завершена!