タグ: scp

scp と rsync の帯域制限

ディレクトリ単位でscpとかしたいけど、通常業務に負荷のかからない範囲で実行したい、とかそんな時に。

scp -Cpqri /root/.ssh/id_rsa -l 8000 root@192.168.1.1:/var/www/html /var/www/

「-l」で指定できる。
単位は kilo bit らしいので、8000 で 1 Mega Byte ?かな?

rsync --rsync-path='nice -n 19 rsync' -avz --delete --bwlimit=1000 --exclude 'hogehoge' root@192.168.1.1:/var/www/html/ /var/www/html/

「–bwlimit」で指定できる。
rsyncでの単位は kilo byte なので、1000 で 1 Mega Byte になる。

scpをパスワードなしで実行

まずは公開鍵秘密鍵の生成に書いてあるとおりに秘密鍵と公開鍵を設定しておく。

shファイルに以下の様に記載する。
scp -qpi /秘密鍵ディレクトリ/秘密鍵ファイル名 /コピー元ディレクトリ名/コピー元ファイル名 ユーザー名@公開鍵のあるサーバIPアドレス:/コピー先ディレクトリ名/コピー先ファイル名

scp -Cqpi /root/.ssh/id_rsa /etc/squid/shield.txt root@192.168.1.11:/etc/squid

「-C」は圧縮して送信
「-q」はquietで実行
「-p」はタイムスタンプを変更しないでコピー
「-i」は秘密鍵指定

上の例は操作側端末にあるshield.txtを先方に送るけど、先方のモノを操作側端末に持ってきたい場合は逆に書けばいい。

scp -Cqpri /root/.ssh/id_rsa root@192.168.1.11:/etc/squid/shield.txt /etc/squid/

「-r」は再帰的にディレクトリのコピーするとき

shファイルを自分のユーザーディレクトリ直下とかに保存したら
「chmod +x hoehoe.sh」とかで実行属性をつける。

crontab -eでシェルを実行する時間に動作するように指定する。
これでイイかな?