![使用 SSH 发送时的 Tar 目录](https://linux22.com/image/747582/%E4%BD%BF%E7%94%A8%20SSH%20%E5%8F%91%E9%80%81%E6%97%B6%E7%9A%84%20Tar%20%E7%9B%AE%E5%BD%95.png)
现在,当我想备份我的服务器时,我会登录到它,然后执行下面的命令,该命令将本地目录“/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
,这样您就不需要在命令行中转义所有内容。
但是,如果目录名不包含任何特殊字符,则第一个命令就可以了。