在RHEL 6上使用Bash 4和rsync,以下方法有什么区别吗?如果是的话,哪种更有效,这三种方法有什么区别:
1) rsync -avz /files/* user@remote_server:/remote_files
2) for file in /files/*; do rsync -avz $file user@remote_server:/remote_files;done
3) for file in /files/*; do screen rsync -avz $file user@remote_server:/remote_files;done
我正在寻找有关在同一服务器下传输速度最快的信息。如果大文件数量较少而小文件数量较多怎么办?这有关系吗?
答案1
我正在寻找有关在同一服务器下传输速度最快的信息。
不应该有任何显着差异,因为瓶颈是网络速度。
换句话说,虽然 #3 可能会与 #1 和 #2 相关地讨论,因为引入了并行性的可能性(我不太熟悉screen
,但如果它进入后台并执行rsync
,它就会),这个对于最终所需的时间并不重要。如果您和目的地之间的带宽限制为 3 MB/s,那么无论是在任何给定的第二个进程中占全部带宽,还是 10 个并行进程各自使用一部分,都没有关系:您仍将在以下位置同步: 3MB/秒。
WRT #2(如果屏幕不分叉,则为 #3),除非您rsync
在for
循环中后台(使用&
),否则您将同步每个文件按顺序,因此不存在可能的并行性或优势。