rsyncはdefaultでは空いている帯域を全て使ってファイル転送を行うようです。
転送容量が少ないと直ぐに終わるので気にしなくていいかもしれませんが、インターネット経由で大容量だと他に迷惑を掛けないように配慮する必要がある場合もあります。
そんな時はrsync --bwlimit=1250
などと指定して帯域を制限することができます。単位はkb/sです。
Mbpsで指定したい場合はちょっとした計算が必要なようです。
ぶていのログでぶログ – rsyncの転送速度制限と転送量の早見表
http://buty4649.hatenablog.com/entry/2014/09/15/rsyncの転送速度制限と転送量の早見表
こちらのサイトのperlプログラムを参考にshに書換えてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
[root@host01 ~]# vi rate.sh [root@host01 ~]# cat rate.sh #!/bin/sh rate=`expr $1 \* 1000 / 8` echo $1Mbps\(bwlimit=${rate}\) h6=`expr 6 \* 3600 \* ${rate}` h12=`expr 12 \* 3600 \* ${rate}` h24=`expr 24 \* 3600 \* ${rate}` h6=`printf "%'d\n" ${h6}` h12=`printf "%'d\n" ${h12}` h24=`printf "%'d\n" ${h24}` echo 6h: ${h6}KB, 12h: ${h12}KB, 24h: ${h24}KB [root@host01 ~]# sh rate.sh 10 10Mbps(bwlimit=1250) 6h: 27,000,000KB, 12h: 54,000,000KB, 24h: 108,000,000KB [root@host01 ~]# sh rate.sh 11 11Mbps(bwlimit=1375) 6h: 29,700,000KB, 12h: 59,400,000KB, 24h: 118,800,000KB [root@host01 ~]# sh rate.sh 40 40Mbps(bwlimit=5000) 6h: 108,000,000KB, 12h: 216,000,000KB, 24h: 432,000,000KB [root@host01 ~]# sh rate.sh 45 45Mbps(bwlimit=5625) 6h: 121,500,000KB, 12h: 243,000,000KB, 24h: 486,000,000KB |
ちょっと汚いですが(^^;
man rsyncから抜粋
1 2 3 4 5 6 7 8 9 |
--bwlimit=KBPS This option allows you to specify a maximum transfer rate in kilobytes per second. This option is most effective when using rsync with large files (several megabytes and up). Due to the nature of rsync transfers, blocks of data are sent, then if rsync determines the transfer was too fast, it will wait before sending the next data block. The result is an average transfer rate equaling the specified limit. A value of zero specifies no limit. |