ablog

不器用で落着きのない技術者のメモ

ログアウトしても scp による転送が終了しないようにする方法

  • テスト用に100Mのファイルを作成する。
$ dd if=/dev/zero of=dummy bs=1024k count=100
$ ls -lh
...
-rw-rw-r-- 1 neo neo 100M  212 13:58 dummy
  • 頭に nohup をつけて scp を実行する。
$ nohup scp dummy oracle@192.168.153.17:~/
nohup: appending output to `nohup.out'
oracle@192.168.153.17's password: <パスワードを入力する>
[1]+  Stopped                 nohup scp dummy oracle@192.168.153.17:~/
  • 実行中のジョブを確認する。
$ jobs -l
[1]+  5221 停止しました      nohup scp dummy oracle@192.168.153.17:~/
  • サスペンドしたジョブ「1」をバックグラウンドで実行再開する。
$ bg 1
[1]+ nohup scp dummy oracle@192.168.153.17:~/ &
  • ジョブの状態を確認する。
$ jobs -l
[1]+  5221 Running                 nohup scp dummy oracle@192.168.153.17:~/ &

とすると、ログアウトしても scp は止まらずに転送を継続してくれる。


RSA/DSA公開鍵認証を使っていればこんな面倒なことをしなくても。

$ nohup scp dummy oracle@192.168.153.17:~/ &

で ok。