経緯
研究で作成したデータ(大学のスパコン、リモートサーバ上)を研究室内のサーバに移行しようとして、苦戦した。
問題点
研究データが膨大なので、nohup & コマンドでバックグラウンド実行にしてリモート接続が切れていても scpコマンドが実行され続けるようにしようとした。しかし、初っ端からこれを実行するとなぜかコピーが実行されていないことがわかった。
解決案
nohupした後に一旦 ctrl + zで操作を中断して、bgでバックグラウンド操作を再開させる
具体例(スパコンのサーバ上で)
nohup scp -r -o ProxyCommand='ssh -W %h:%p [公開鍵の絶対(相対)パス] -p 22 [踏み台のサーバのIPアドレス]' -p 22 [送信したいファイル・フォルダの絶対(相対)パス] [送信先のIPアドレス]:[送信先に指定したいディレクトリの絶対パス] > out.log(nohup のログの出力ファイル名)2 > err.log(nohup のエラーログのファイル名)
# ctrl + z を押して一旦操作を中断
Stop Command scp -r -o ProxyCommand='ssh -W %h:%p [公開鍵の絶対(相対)パス] -p 22 [踏み台のサーバのIPアドレス]' -p 22 [送信したいファイル・フォルダの絶対(相対)パス] [送信先のIPアドレス]:[送信先に指定したいディレクトリの絶対パス] > out.log(nohup のログの出力ファイル名)2 > err.log(nohup のエラーログのファイル名)
bg
考えられる原因?(予想)
元々、認証の必要なssh 接続だったので nohup & で初めからバックグラウンド実行しようとすると、認証ができずに実行できなかったのではないか?これはあくまで予想なので、間違っているかもしてないです。何か正しい答えをご存知の方がいらっしゃったら教えていただきたいです。。。