Резервное копирование файлов сайта по ssh
Всем добра, уважаемые читатели и гости. Сегодня публикую маленькую заметку о том, как сделать резервную копию файлов сайта по SSH. В интернете куча статей на данную тему, но чем я хочу выделить данную заметку? Тем, что при создании резервной копии на Windows машине с Linux\UNIX хостинга я столкнулся с множеством неудобств и проблем, которые я избежал, используя plink и putty.
Исходные данные для backup
Итак, имеем:
- Linux\UNIX хостинг с доступом по SSH, адрес хоста: ssh.host.example
- Компьютер с Windows, с помощью которого производим администрирование сайта.
- командный интерфейс plink, который поставляется с ssh клиентом PuTTY
- доступ в интернет для связи 1го и 2го.
- имя пользователя на хостинге: user
- пароль: P@sswOrd
- каталог, где размещены файлы сайта: /var/www/host.example
Проблема backup
- Очень часто, размещая сайт на хостинге, хостер предъявляет высокие требования и лимиты к операциям ввода-вывода на диск. В результате, при создании резервной копии в ssh консоли хостинга, процесс зашкаливающий по лимитам хостинга может быть убит и архив получится битый.
- Так же, типичная ситуация, когда у тебя файлы сайта занимают 70-80% дискового пространства, предоставленного хостингом, и при создании архива из ssh консоли хостинга – для полного архива не хватает места.
- Дополнительно, хостер может убивать процессы, которые создают большую нагрузку на CPU. Это тоже приведет к некорректно созданному архиву.
- Для создания архива с 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 [email protected] tar czf - /var/www/host.example > c:\backup_by_plink\backup_of_my_site.tar.gz
Здесь:
- plink – собственно, сам exe’шник
- -pw P@sswOrd – пароль к учетной записи user
- [email protected] – имя пользователи и хост, на котором буде выполнены программа
- 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!
Другие материалы в категории Linux
- Репликация Mysql (master-slave, master-master)
- Ошибка 0x80004005 0x80070035 на Windows 10 при доступе к сетевой папке
- Текстовый редактор VIM, основы работы
- Спринт Lingoda (ex Марафон Lingoda) + промокод.
- ddrescue или спасаем данные с HDD
- Бесплатный SLES для Vmware – ВСЁ…
- Резервное копирование файлов сайта по ssh
- SQUID настройка ACL и http_access
- squid, использование опции debug_options или диагностика компонентов squid
- Седьмой релиз Debian
Спасибо очень интересное решение
Здравствуйте, я бы посоветовал использовать не putty а kutty тоже самое только конфиг и папку сессий она хранит не в реестре как putty а рядышком с собой.
Да, я знаком с kitty. Спасибо.
Какого рода проблемы и неудобства? Чем данное решение лучше других решений, которые породили определенные неудобства?
Тема не раскрыта.
Добрый день, Александр.
Я совсем не претендовал на лучшее решение.
Это просто один из способов сделать бэкап, который я решил зафиксировать в истории.
Проблемы, перечисленные в статье, я могу считать решенными для себя. Но я готов подискутировать на данную тему, если у Вас есть аргументы )
Рад, что вы вернулись. Замечательный блог)
Благодарю за заметку, всегда с инетерсом читаю ваш блог. Нашел в нем для себя много интресного и познавательного.
Пожалуйста.
Приходите еще.
Спасибо, хорошее решение, попробую применить на практике.
Давно читаю ваш блог, всегда нахожу что-то полезное для себя
Благодарствую за гайд по копированию, весьма пригодился
Странно, но архив получается битый…
Да, у меня такое тоже было.
Я могу предположить, что это может быть связано с неверной кодировкой, которая установлена в putty.
Сейчас нужно еще добавить -no-antispoof иначе не заработает