Linux 主机间传输文件马上想到的是 scp. 但当要传送文件较大,过程中如果网络中断了,就比较悲剧了. 这时候可以考虑使用 rsync 命令替代 scp, 可实现断点续传.

需求 : 本地文件夹 PwdDB 传输到 192.168.50.50 指定 SSH 端口为 22300

# rsync -rP --rsh=ssh /mnt/mysql/PwdDB linzhanyu@192.168.50.50:22300/mnt/mysql/PwdDB
rsync -auz -e 'ssh -p 27506' /mnt/mysql/PwdDB root@192.168.50.50:/mnt/mysql/PwdDB

如果您反复复制相同的目标路径,例如更新备份副本,则最佳选择是使用压缩进行rsync。

$ rsync -az -e ssh /path/to/src/dir/ user@server:/path/to/dest/dir/

请注意,src和dest路径都以/结尾。同样,不要故意使用 -v 和 -P 标志,如果需要详细输出,请添加它们。

大量小文件通过 ssh 复制到远程(一次性复制,经常复制同一目标应使用 rsync)

tar czf -  | ssh user@host "cd /wherever && tar xvzf -"

使用bzip2压缩的tar应该从网络和cpu上获得尽可能多的负载。

$ tar -C /path/to/src/dir -jcf - ./ | ssh user@server 'tar -C /path/to/dest/dir -jxf -'

不使用 -v ,因为屏幕输出可能会减慢进程。但是如果你想要一个详细的输出在tar的本地端( -jcvf )使用它,而不是在远程部分。


支付宝打赏 微信打赏

您的打赏是对我最大的鼓励!

linzhanyu


Linux, VIM, OpenGL, OpenCL.

Python, C++, C#, ML.

相看莫相笑,同是竹林人。