Бекап на удаленный сервер FTP через командную строку шелл ssh

Если Вы самостоятельно администрируете сервер, то наверняка, рано или поздно, должен встать вопрос удаленного резервного копирования.
Хранить все данные в одном месте небезопасно, особенно самые важные, будь-то базы данных MySQL или постоянно обновляемые профайлы Ваших пользователей.
Любой сервер может дать сбой, в результате которого данные восстановить бывает проблематично.
Для этого отлично подходит регулярная закачка важных, обновленных файлов или баз на удаленный, отдельно стоящий сервер.

Рассмотрим ситуацию, когда у нас имеется удаленный сервер по IP адресу 123.45.67.89, на данной сервер есть пользователь с логином user и паролем password.

Первое что нужно сделать на главном сервере с важными данными – это сохранить все нужные файлы в архив.
Вы наверняка должны знать путь до такой директории.
Начинам архивировать данные, используя архиватор TAR (для начала командой cd переходим в директорию, где, после работы TAR, будет находится архив с файлами):

cd /home/
tar -cvjf archive.tar.bz2 /полный_путь/до_папки/все_файлы_в_которой/нужно_сохранить/

Архиватор закончил работу и у нас в директории /home/ (где мы сейчас находимся) лежит архив archive.tar.bz2
Далее нам необходимо войти на удаленный ФТП через , всё тот же SSH (так называемый: баш, шелл или командную строку).
Набираем команду:

ftp 123.45.67.89

Сервер, в случае если Вы не перепутали адрес, должен предложить ввести вначале имя пользователя, затем пароль  (пароль не отображается при наборе):
user
password

Отлично, если Вы правильно указали параметры удаленного сервера, а также правильно представились и ввели свой пароль для удаленного FTP, можно начать закачивать созданный на главном сервере бекап архив с нужными файлами:

ftp>put /home/archive.tar.bz2 archive.tar.bz2

команда ftp put отвечает за закачку на удаленный сервер; /home/archive.tar.bz2 – путь до закачиваемого архива на локальном основном сервере; archive.tar.bz2 – как будет называется архив когда попадёт на удаленный сервер (он может совпадать или, если Вам так удобней, назовите его по-другому, добавьте дату например).
После выполнения всех вышеперечисленных команд, на удаленном сервере должен лежать наш архив с резервной копией.

Какие ещё команды в режиме ftp командной строки полезно знать:

ftp>dir
(показывает какие файлы – директории находятся на фтп)

ftp> delete archive.tar
удалить файл с удаленного FTP

ftp> get archive.tar.bz2 /home/www/archive.tar.bz2
(скачать архив archive.tar.bz2 с удаленного фтп на локальный сервер в папку /home/www/archive.tar.bz2)

Кстати, Вы можете вначале войти в режим FTP командной строки, и одновременно создавать архив и закачивать его одной строкой.
Делается это так:

ftp> put |"tar -cvjf /home/archive.tar /home/www/backup-dir/" archiveRemote.tar

Как видите: вначале идёт команда put, затем вертикальная черта, затем -  в скобках указывается команда локальному архиватору TAR сделать архив из всех файлов в директории /home/www/backup-dir/; этот архив будет создаваться в /home/archive.tar; после того как архив создаётся он сразу же закачивается на удаленный сервер в файл archiveRemote.tar

А в следующий раз, мы рассмотрим как поручить всё это делать bash скрипту и поставить расписание на backup с помощью cron а.

archive.tar.bz2

Опубликовано 16.08.2013 в 13:09 · Автор Вебдизайнеру, сисадмину, вебмастеру · Ссылка
Рубрики: Debian, FreeBSD, Настройки хостинга, Системное администрирование · Теги: , , , , , , , , , , , , , , , , , , ,