web-dev-qa-db-ja.com

rsyncプロセスを実行しているモニター/ウォッチ

Crontabに追加されたrsyncジョブがあり、実行中にrsync PIDがあることを確認し、htopでn個のCPUとRAMを消費していることを確認できます。

私がやりたいのは、リアルタイムでどのファイルが実際にrsyncされているかを監視することです...私がしたいときに。参考までに、私はコマンドに詳細なオプションを渡さず、ロギングも追加していません。オンデマンドでrsyncされているものを確認したいだけです。

どうすればそれを達成できますか?

20
vanz

できるよ:

strace -e open $(ps -o lwp= -LC rsync | sed 's/^/-p/')

それが何をしているかを見るため、または

lsof -ad3-999 -c rsync

現在開いているファイルを確認します。

35

最も簡単な解決策は、rsyncの出力をログファイルにリダイレクトすることです。

rsync -avz /something /somwhere >> ~/rsynclog
3
Király István

別の方法としては、同期する大まかなディレクトリがわかっている場合(つまり、ディレクトリ「movies」を使用する場合など)、lsofとgrepの組み合わせを使用できます。

lsof | grep rsync | grep映画

lsofは開いているファイルを一覧表示し、出力をgrepにパイプしてrsyncによって開かれたファイルを見つけ、パイプをgrepに出力して開いているディレクトリ/ファイルを見つけます。

0
Bill Rookard

ここに2つの方法があります

with screen:スクリーンセッションをcronジョブに接続します。

screen rsync --progress src dst

これにより、現在処理しているファイルを確認したいときにいつでもrsync jobbに再接続できます(rsyncジョブを起動したユーザーと同じユーザーであることを確認してください)。

screen -x

ロギングありロギングをrsyncジョブに追加します:

rsync --log-file=/tmp/rsync-status.txt  src dst

次に、リアルタイムでログを追跡します。

 tail -f /tmp/rsync-status.txt
0
tomodachi

KirályIstván が示唆するように、私は走っている

rsync -ravz /Users/jkirby/Music/iTunes/* .

次のような出力が得られます

Jeffs-MBP-2:2016-08-15 jkirby$ rsync -ravz /Users/jkirby/Music/iTunes/* .
building file list ... done
Temp File 1.tmp
Temp File.tmp

その出力から、どのディレクトリがコピーされているかを確認できます。

rsyncが大量の大きなファイルをゆっくりコピーしている場合、watchを使用してそのディレクトリを監視します。このようにして、rsyncが作成する一時ファイルを見ることができ、現在コピーされているファイルのサイズが大きくなるのを見ることができます。

watch -n1 "~/Music/iTunes"

0
Kirby