他のコンピュータのSCPの進行状況を見る

他のコンピュータのSCPの進行状況を見る

会社のサーバーから職場のコンピューターに大容量ファイル(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/xwatchコマンドを繰り返して変更を確認できます。

関連情報