TAR超过两个跃点

时间:2016-03-09 08:54:15

标签: ssh tar scp remote-server

我需要创建一个tar并将其发送到我的本地文件夹。 如果我可以创建tar文件,我可以使用scp轻松地在本地文件夹中获取它。 这里的问题是第一步:在远程服务器上创建TAR。服务器只能通过另一个远程服务器(堡垒服务器)访问。

以下是我目前使用的命令:

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]

这里的任何帮助都会很棒。

1 个答案:

答案 0 :(得分: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"

没有花哨的逃避和东西。