2016-03-09 1 views
1

Мне нужно создать tar и отправить его в мою локальную папку. Если я могу создать tar-файл, я могу легко получить его в локальной папке с помощью scp. Здесь проблема на первом шаге: создание TAR на удаленном сервере. Сервер доступен только через другой удаленный сервер (сервер bastion).TAR over two hops

Вот команда, я использую в настоящее время:

timestamp="20160226-085856" 
ssh bastion_server -t ssh remote_server "sudo su -c \"cp -r /etc/nginx /home/ubuntu/backup/nginx_26Feb && cd /home/ubuntu/backup && tar -C /home/ubuntu/backup -cf backup_nginx-$timestamp.tar ./nginx_26Feb\" " 

Здесь ошибка я получаю:

su: invalid option -- 'r' 
Usage: su [options] [LOGIN] 

Любая помощь здесь было бы здорово.

+0

еще несколько ошибок: '' ' дегтя: ./nginx_20160310-231329: Не может стат: Нет такого файла или каталога дегтя: Выход с состоянием отказа из-за предыдущих ошибок ' '' – sahilsk

ответ

0

Попробуйте без фантазии sudo su -c. Использование sudo -s должно быть достаточно:

ssh bastion_server -t ssh remote_server "sudo -s cp -r /etc/nginx \ 
    /home/ubuntu/backup/nginx_26Feb && cd /home/ubuntu/backup && \ 
    tar -C /home/ubuntu/backup -cf backup_nginx-$timestamp.tar ./nginx_26Feb" 

Или скорее установить правильный два-хмель ~/.ssh/config:

Host bastion 
    Hostname bastion_server 
Host remote 
    Hostname remote_server 
    ProxyCommand ssh -W %h:%p bastion 

, а затем просто запустить

ssh remote sudo su -c "cp -r /etc/nginx /home/ubuntu/backup/nginx_26Feb \ 
&& cd /home/ubuntu/backup && tar -C /home/ubuntu/backup -cf \ 
backup_nginx-$timestamp.tar ./nginx_26Feb" 

Без фантазии отводящей и прочее.

+0

Неа. Не работал для меня. Снова та же ошибка: -------- tar: ./nginx_20160310-231329: Не могу stat: Нет такого файла или каталога tar: Выход из состояния отказа из-за предыдущих ошибок – sahilsk

+0

Это другая ошибка, чем в вопрос. Таким образом, либо код, который вы запускаете, отличается, либо у вас есть другая версия «tar» на сервере. Пожалуйста, обновите свой вопрос с информацией о том, что вы выполнили, и какой точной ошибкой вы получили. В комментариях это не видно ясно. – Jakuje