2011年8月22日月曜日

ログアウトをしてもscpが切れないようにする方法

SSHで時間のかかるscpでファイルを転送してると、SSHが切れるとファイル転送も切れてしまう。これでは転送が終わるまで帰れなくなってしまうことになります。
このような問題を解消するためにはどうすれば良いのでしょう?

scpを行うときは相手のサーバーパスワードが必要になるので、cronで実行ができないし、コマンドの最後に&をつけてもうまくいかない…。
(公開キーを使えばという案もありますが…)
そんな時は、nohup bg コマンドで対応できることを知りました。
どちらも初めてのコマンドです。


$ nohup scp -r xyz root@10.3.2.1:/opt/xyz
nohup: appending output to `nohup.out'
root@10.3.2.1's password: <パスワードを入力する>

Ctrl+z でジョブをサスペンド
[1]+ Stopped nohup scp -r xyz root@10.3.2.1:/opt/xyz
実行中のジョブを確認する。
$ jobs -l
[1]+ 19003 停止しました nohup scp -r xyz root@10.3.2.1:/opt/xyz

サスペンドしたジョブ「1」をバックグラウンドで実行再開する方法がbgコマンド。
$ bg 1
[1]+ nohup scp -r xyz root@10.3.2.1:/opt/xyz

ジョブの状態を確認する。
$ jobs -l
[1]+ 19003 Running nohup scp -r xyz root@10.3.2.1:/opt/xyz

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


こちらはまさに参考になりました。ありがとうございます。
http://d.hatena.ne.jp/yohei-a/20100212/1265950974

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。