会社のサーバーから職場のコンピューターに大容量ファイル(300GB)を転送するとします。scp
週末にはアクセスできません(ファイアウォールはオフィスネットワーク内のコンピュータのSSHをブロックしているため、接続できません)。それに行ってスケジュールを見てください。これでscp
、自宅のコンピュータで同じアカウントを使用してサーバーにSSHでアクセスすると、そのタスクの進行状況を確認できますか?もちろんこれはあまり役に立ちませんが、とにかく気になります。
答え1
lsof
サーバー上のscpプロセスで開かれている現在のファイルを一覧表示する情報を使用できます。pidof scp
たとえば、対応するプロセスIDを見つけて、lsof -p
そのpidに使用します。また、-o
読み取っているファイルの現在のオフセットを表示するオプションも必要ですscp
。例えば
$ pidof scp
29273
$ lsof -op 29273
COMMAND PID USER FD TYPE DEVICE OFFSET NODE NAME
scp 29273 meuh cwd DIR 179,2 273367 /home/meuh
scp 29273 meuh rtd DIR 179,2 2 /
scp 29273 meuh txt REG 179,2 260817 /usr/bin/scp
...
scp 29273 meuh 0r FIFO 0,10 0t0 3005108 pipe
scp 29273 meuh 1w FIFO 0,10 0t0 3005109 pipe
scp 29273 meuh 2w FIFO 0,10 0t0 3005110 pipe
scp 29273 meuh 3r REG 179,2 0t2834432 530 /home/meuh/x
最後の行は、ファイル記述子3がオフセット2834432からファイルを読み取る準備ができていることを示しています/home/meuh/x
。watch
コマンドを繰り返して変更を確認できます。