在多台机器之间复制大量小文件,对比scp/rsync。
[size=large]功能对比[/size]
排除文件、文件夹功能
scp 没有找到
rsync 可以通过 --exclude选项排除文件、文件夹
[size=large]性能对比[/size]
[code="shell"]
# 大小
# du -hs *
198M xxx
# 数量
# find . | wc -l
19776
# scp时间
# ssh root@10.101.81.28 "rm -rf /opt/source"
# start=`date +%s`;scp -r /opt/source/* root@10.101.81.28:/opt/source > /dev/null; echo $[`date +%s` - $start]
141
# rsync时间
# ssh root@10.101.81.28 "rm -rf /opt/source"
# start=`date +%s`;rsync -avzPq /opt/source/* root@10.101.81.28:/opt/source; echo $[`date +%s` - $start]
10
# ssh root@10.101.81.28 "du -hs /opt/source"
198M /opt/source
# rsync排除svn文件夹时间
# ssh root@10.101.81.28 "rm -rf /opt/source"
# start=`date +%s`;rsync -avzPq --exclude=".svn" /opt/source/* root@10.101.81.28:/opt/source; echo $[`date +%s` - $start]
4
# ssh root@10.101.81.28 "du -hs /opt/source"
83M /opt/source
[/code]
可以看到,rsync在大量小文件的情况下,速度要比scp快很多,大约只需要7%的时间。
还可以通过文件过滤的方式,减少传输量,进一步提升速度。
[size=large]功能对比[/size]
排除文件、文件夹功能
scp 没有找到
rsync 可以通过 --exclude选项排除文件、文件夹
[size=large]性能对比[/size]
[code="shell"]
# 大小
# du -hs *
198M xxx
# 数量
# find . | wc -l
19776
# scp时间
# ssh root@10.101.81.28 "rm -rf /opt/source"
# start=`date +%s`;scp -r /opt/source/* root@10.101.81.28:/opt/source > /dev/null; echo $[`date +%s` - $start]
141
# rsync时间
# ssh root@10.101.81.28 "rm -rf /opt/source"
# start=`date +%s`;rsync -avzPq /opt/source/* root@10.101.81.28:/opt/source; echo $[`date +%s` - $start]
10
# ssh root@10.101.81.28 "du -hs /opt/source"
198M /opt/source
# rsync排除svn文件夹时间
# ssh root@10.101.81.28 "rm -rf /opt/source"
# start=`date +%s`;rsync -avzPq --exclude=".svn" /opt/source/* root@10.101.81.28:/opt/source; echo $[`date +%s` - $start]
4
# ssh root@10.101.81.28 "du -hs /opt/source"
83M /opt/source
[/code]
可以看到,rsync在大量小文件的情况下,速度要比scp快很多,大约只需要7%的时间。
还可以通过文件过滤的方式,减少传输量,进一步提升速度。