我已连接ssh
并且我想从我的当地的给我们的偏僻的服务器;我怎样才能做到这一点?我读过几篇使用scp
但对我不起作用的帖子。有些帖子建议使用rsync
,但就我而言,我只想复制一个目录。
答案1
如果您想在登录 a 的情况下将目录从机器 a 复制到 b:
scp -r /path/to/directory user@machine_b_ipaddress:/path/to/destination
如果您想在登录到 b 的情况下将目录从计算机 a 复制到 b:
scp -r user@machine_a_ipaddress:/path/to/directory /path/to/destination
答案2
您可以使用cpio
或tar
创建存档作为标准输出上的流,将其通过管道传输到 ssh 并在远程主机上提取流。例如,使用 tar:
tar cf - dir | ssh remotehost 'tar xf -'
要将存档解压到远程主机上的不同目录中,请使用
tar cf - dir | ssh remotehost 'tar xfC - /path/on/remote'
如果您tar
支持该C
选项或:
tar cf - dir | ssh remotehost '
cd /path/on/remote && tar xf -'
如果不。
如果在低带宽连接上,您可能需要压缩流:
tar cf - dir | gzip -3 | ssh remotehost '
cd /path/on/remote && gunzip | tar xf -'
(将gzip
/替换gunzip
为您选择的流压缩器,如果您发现 CPU 是瓶颈,lzop
/可能是更好的选择)。lzop -d
答案3
认为这可能对你有用:
scp file user@host:/location_to_save_file
scp
- 安全复制 - 您想要 scp 到远程节点的文件 - 有权 scp 文件的用户,即 sysadmin 等
@
- 用户和主机分隔符 host - 您所在的节点 scp 文件
:/location_to_save_file
- 绝对路径保存文件