Резервное копирование файлов сайта по ssh

Декабрь 18th, 2014 Рубрики: Linux, Web, основы Linux

как делать резервную копию сайта plinkВсем добра, уважаемые читатели и гости. Сегодня публикую маленькую заметку о том, как сделать резервную копию файлов сайта по SSH. В интернете куча статей на данную тему, но чем я хочу выделить данную заметку? Тем, что при создании резервной копии на Windows машине с Linux\UNIX хостинга я столкнулся с множеством неудобств и проблем, которые я избежал, используя plink и putty.

Исходные данные для backup

Итак, имеем:

  1. Linux\UNIX хостинг с доступом по SSH, адрес хоста: ssh.host.example
  2. Компьютер с Windows, с помощью которого производим администрирование сайта.
  3. командный интерфейс plink, который поставляется с ssh клиентом PuTTY
  4. доступ в интернет для связи 1го и 2го.
  5. имя пользователя на хостинге: user
  6. пароль: P@sswOrd
  7. каталог, где размещены файлы сайта: /var/www/host.example

Проблема backup

  1. Очень часто, размещая сайт на хостинге, хостер предъявляет высокие требования и лимиты к операциям ввода-вывода на диск. В результате, при создании резервной копии в ssh консоли хостинга, процесс зашкаливающий по лимитам хостинга может быть убит и архив получится битый.
  2. Так же, типичная ситуация, когда у тебя файлы сайта занимают 70-80% дискового пространства, предоставленного хостингом, и при создании архива из ssh консоли хостинга - для полного архива не хватает места.
  3. Дополнительно, хостер может убивать процессы, которые создают большую нагрузку на CPU. Это тоже приведет к некорректно созданному архиву.
  4. Для создания архива с Windows машины необходимо проделать кучу действий: 1. подключиться к консоли по ssh, 2. создать архив, 3. подключиться SCP/SFTP клиентом, 4. скопировать файл архива, 5. удалить архив. Тут же мы выполняем все это одной командой.

Решение проблемы backup через plink

В общем, ранее меня эти проблемы не напрягали, т.к. бэкап нужно было делать не часто, а когда я стал дорабатывать блог, то оперативные архивы стали очень необходимы и я стал искать решения. Я знал, что подключаясь из Linux - это делается элементарно, через pipe. Поэтому я стал искать аналогию на Windows. В конечном счете, необходимо было выполнить команду на удаленном сервере, которая создаст архив и сложит его в локальную папку на клиенте. Долго искать не пришлось - мне помог plink. Как говориться, все гениальное - просто: качаем putty и plink. Выполняем следующие действия, открыв cmd в каталоге с plink.exe:

 c:\PuTTY_folder>plink -pw P@sswOrd user@ssh.host.example tar czf - /var/www/host.example > c:\backup_by_plink\backup_of_my_site.tar.gz

Здесь:

  • plink - собственно, сам exe'шник
  • -pw P@sswOrd - пароль к учетной записи user
  • user@ssh.host.example - имя пользователи и хост, на котором буде выполнены программа
  • tar czf - /var/www/host.example - собственно, исполняемая программа (читаем основные команды linux). Указывая "-" мы говорим tar'y выводить архив на консоль (вернее stdout).
  • > - символ командной строки Windows, осуществляющий перенаправление вывода команды в файл (аналог pipe в Linux)
  • c:\backup_by_plink\backup_of_my_site.tar.gz - место сохранения архива.

Т.о. мы решаем все 4 проблемы. При этом, если отключим компрессию (ключ z), то практически снизим нагрузку на CPU на хостинге.

Ссылки

Plink и Putty - http://www.chiark.greenend.org.uk/~sgtatham/putty/
документация - http://www.chiark.greenend.org.uk/~sgtatham/putty/docs.html
документация на русском - http://putty.org.ru/docs.html

P.S. 

Надеюсь, что кроме меня данная заметка будет кому-то полезна. Так же, хочу отметить, что кроме tar, тут никто не мешает использовать mysqldump, например. ;-)  До новых встреч!

С Уважением, Mc.Sim!




Теги:

8 комментариев к “Резервное копирование файлов сайта по ssh”

  1. Декабрь 18th, 2014 at 22:34
    1

    Спасибо очень интересное решение

  2. Игорь
    Декабрь 18th, 2014 at 22:49
    2

    Здравствуйте, я бы посоветовал использовать не putty а kutty тоже самое только конфиг и папку сессий она хранит не в реестре как putty а рядышком с собой.

    • Декабрь 18th, 2014 at 23:05
      3

      Да, я знаком с kitty. Спасибо.

  3. Александр
    Декабрь 19th, 2014 at 10:50
    4

    Какого рода проблемы и неудобства? Чем данное решение лучше других решений, которые породили определенные неудобства?

    Тема не раскрыта.

    • Декабрь 19th, 2014 at 11:46
      5

      Добрый день, Александр.
      Я совсем не претендовал на лучшее решение.
      Это просто один из способов сделать бэкап, который я решил зафиксировать в истории.
      Проблемы, перечисленные в статье, я могу считать решенными для себя. Но я готов подискутировать на данную тему, если у Вас есть аргументы )

  4. Stoner
    Декабрь 19th, 2014 at 23:26
    6

    Рад, что вы вернулись. Замечательный блог)

  5. MiF
    Декабрь 25th, 2014 at 10:48
    7

    Благодарю за заметку, всегда с инетерсом читаю ваш блог. Нашел в нем для себя много интресного и познавательного.

    • Апрель 8th, 2015 at 20:31
      8

      Пожалуйста.
      Приходите еще.

Написать комментарий