Вы находитесь тут

Резервное копирование через SSH .

Тэги: 
Категории: 

Задача: Резервное копирование сайта с минимумом ручной работы. Сайты используют MySQL. 1. Для начала вам нужно иметь SSH доступ на ваш хостинг. Для этого нужно обратиться в техподержку, чтобы его включили. 2. Затем вам нужно настроить вход по SSH без пароля. Иначе у вас будут спрашивать пароль при выполнении каждой команды. Для этого необходим файл ключей-сертификатов, так что это достаточно безопасно. Не помню подробностей, но общая схема следующая:

  • входим руками на хосотинг по SSH
  • запускаем ssh-keygen и получаем на хостинге папку .ssh с ключами
  • заходим по FTP копируем папку себе в домашнюю директорию
  • присваиваем содержимому папки права r--_--_-- . Если файлы будут открыты для других пользователей то SSH может бунтовать и спрашивать пароль.
  • Помнится что-то делал с содержимым authorized_keys добавляешь ключ в файл authorized_keys (если нет папки .ssh - создать): cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

В любом случае это надо все уточнить. Первоначально скрипт создавал сжатый архив файлов. Но выяснилась, что это дает к повышенной нагрузке на сервер. В результате создание архива прерывается сервером. Тем более , что сжатие давала выигрыш в 10-30 %. Такой малый выигрыш объясняется тем, что основной объем дают файлы изображений, которые уже сжаты. 3.Скрипт запускается командой вида ./run_host < host.txt , где run_host сам скрипт, host.txt - файл с настройками входа на хостинг. В этом файле должны быть строки, каждый параметр в отдельной строке. Порядок строк можно узнать просмотрев скрипт. Скрипт также можно использовать и для переноса сайта. Правда разворачивать базу и прочее придется в ручную. Зависимости:

  • ssh-client
  • aria2c

Сам скрипт прикреплен к этому посту.