Linux服务器间常用的复制命令是scp,但是如果网络状况不好,可能会出现传输中断,由其是比较大的文件。
这是我们可以用 rsync 来实现断点续传。
示例:
将服务器A /dataA/ 目录 传输到服务器B /dataB/ 下面
语句如下:
###在服务器A上执行
rsync -av /dataA username@B:/dataB/
如果服务器B开放的不是默认22端口,比如说是4321,是需要加上端口号。
rsync -av -e 'ssh -p 4321' /dataA username@B:/dataB/
如何防止网络中断呢?加入断点续传参数-P
rsync -avP -e 'ssh -p 4321' /dataA username@B:/dataB/
如果还是担心长时间网络中断复制失败呢?
写一个脚本加到计划任务中。
示例:
#!/bin/sh
pnum=$(ps -ef | grep rsync| grep -v grep|wc -l)
if [ $pnum -eq 0 ]
then
rsync -avP -e 'ssh -p 4321' /dataA username@B:/dataB/
fi
*/5 * * * * sh /root/r.sh
为了能够执行成功,需要先配置互信。