FTP クライアント - sftp コマンド - 途中から再受信


クラウディア 


1. 概要
2. 状況
3. 再受信
4. 参考サイト

1. 概要

 コマンドのページに「reget」というコマンドを掲載しておりますがな、ついぞ使ったことはなかったのですが、実はありがたいコマンドだったのです。

2. 状況

 実は、少々でかいものを受信しておったのですがな。

-rw-r--r--  1 hogehoge wheel 8.9G  2月 25 11:31 rust.tar.bz2
 「8.9 GB」ですから、まぁ、ある程度時間がかかります。

sftp> get /tmp/rust.tar.bz2
 すると、途中で。

rust.tar.bz2                                                                      30% 2747MB   0.0KB/s - stalled -
 てなことになっちゃいました。  ネットワークの調子が悪かったりして、受信が停止している状態です。

3. 再受信

 この場合、いったん現在の受信を停止します。  CtrL+C で、「sftp」のプロンプトが戻ってくれば、それでよし。  それでも止まらない場合は、別の端末でログインして。

pgrep -lfa sftp
 で、「sftp」のプロセスを探します。

2994 sftp example.com
2995 /usr/bin/ssh -oForwardX11 no -oPermitLocalCommand ...
 この場合、「2994」「2995」は、たぶん親子関係でして、子の方を停止します。

kill -9 2995
 これで、「sftp」を実行していた端末にプロンプトが戻ってきます。  そうしたら、受信元のホストに「sftp」で再接続して。

sftp> reget /tmp/rust.tar.bz2
 そうすると、前回「get」で受信していたものを途中から「reget」してくれるのです。  これは、ありがたい。  また、一からやるとなると相当な時間が必要になりますのでな。

4. 参考サイト

 本ページは、「ChatGPT」軍曹を参考にさせていただきました。