便利だけど困ること
どうも、やまもとやまです。
rsyncって便利ですよね。
指定さえ間違えなければ差分もきちんと同期してくれます。
バックアップ用途で利用される方も多いんじゃないでしょうか。
さてそんなrsync、数千ファイルレベルなら気になりませんが、ファイル数が膨大な場合はさすがに詳細ログは出力しないのでは。
でもどれくらい転送が進んでいるのか、確認したいときってありませんか?
どうすれば確認できるだろう
ぱっと思いつくのは、rsync先のディレクトリツリーを実際に見てみること。
lsコマンドなんかでがりがり見ていきましょう。
・・・しかしまあ、当然ながらやってみると無謀だと気づくことでしょう。
(うまく探せる人はぜひコツを教えてください)
ではどうすれば、となりますが、意外にシンプルに解決できます。
rsyncは通常はディレクトリを名前順に再帰的に探索する(ような気がします経験上)ので、処理中のファイルが分かればおおよその進捗状況も判断できます。
という訳で、lsofコマンドでrsyncプロセスがオープンしているファイルを調べてみましょう。
psコマンドでプロセスIDを調べ、lsofのpオプションでプロセスを指定します。
# lsof -p 13152
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 13152 root cwd DIR 253,0 4096 11354091169 /backups/sv.example.com
rsync 13152 root rtd DIR 253,0 4096 64 /
rsync 13152 root txt REG 253,0 495824 58280 /usr/bin/rsync
rsync 13152 root mem REG 253,0 106176928 8594296527 /usr/lib/locale/locale-archive
rsync 13152 root mem REG 253,0 2156592 2147704460 /usr/lib64/libc-2.17.so
rsync 13152 root mem REG 253,0 41456 2147494947 /usr/lib64/libpopt.so.0.0.0
rsync 13152 root mem REG 253,0 37064 2147495055 /usr/lib64/libacl.so.1.1.0
rsync 13152 root mem REG 253,0 19896 2147495044 /usr/lib64/libattr.so.1.1.0
rsync 13152 root mem REG 253,0 163312 2147490707 /usr/lib64/ld-2.17.so
rsync 13152 root mem REG 253,0 26970 4295014385 /usr/lib64/gconv/gconv-modules.cache
rsync 13152 root 0u FIFO 253,0 0t0 13449026231 /tmp/test-control-pipe
rsync 13152 root 1w FIFO 0,9 0t0 56098713 pipe
rsync 13152 root 2w FIFO 0,9 0t0 56098713 pipe
rsync 13152 root 3r REG 253,0 3456 9351657229 /backups/sv.example.com/var/www/vhosts/example.com/statistics/webstat/nav.html
今回の場合、rsyncのプロセスIDが13152でした。
これでだいたい処理状況が分かりますね!
ただし、タイミングによってはなかなかどのファイルを処理中か分からなかったりします。
そこでwatchコマンドを組み合わせてみます。
# watch -n 5 lsof -p 13152
Every 5.0s: lsof -p 13152 Thu Apr 20 11:35:04 2023
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 13152 root cwd DIR 253,0 4096 11354091169 /backups/sv.example.com
rsync 13152 root rtd DIR 253,0 4096 64 /
(略)
この例では5秒ごとに実行した結果を自動でリフレッシュ表示してくれます。
他の作業をしながらでも進捗状況が随時確認できますね。
べんりー!
というわけで
基本的なコマンドの組み合わせだけで、いい感じに進捗状況の確認ができました。
組み合わせ次第で色々とできそうですね。
どうせならできることはお手軽に楽できると良いなと思います。
それではまた!