В настоящее время, когда я хочу сделать резервную копию своего сервера, я вхожу на него, а затем выполняю команду ниже, которая архивирует локальный каталог «/ebs1» и отправляет его на другой сервер по IP xxx.xxx.xxx.xxx и сохраняет его на этом сервере резервного копирования под именем «/ebs1_2019-06-02.tar».
tar -cvf - "/ebs1" | ssh -p 22 [email protected] "cat > /ebs1_2019-06-02.tar"
Работает просто отлично. Но вы заметили, что я вошел на сервер, который резервируется, чтобы выполнить команду выше? Но что, если я хочу войти на резервный сервер, как мне изменить команду выше?
решение1
Сюда:
ssh [email protected] tar cf - /ebs1 >/ebs1_2019-06-02.tar
Это не сработает, если каталог, резервная копия которого создается, содержит пробелы или какие-либо специальные символы. В этом случае вам нужно использовать такую команду:
ssh [email protected] tar cf - "'/directory name'" >/ebs1_2019-06-02.tar
...и это может быстро стать неудобным. Вы можете написать скрипт на целевом компьютере, содержащий команду tar
, и запустить его через ssh
, так что вам не нужно будет экранировать все в командной строке.
Однако если имя каталога не содержит специальных символов, то подойдет первая команда.