nohupなncでのtarなファイル転送

TB級のデータ転送のように、scpがかったるくてやってられない場合にncでファイル転送をしようというケースありますよね?
そんなケースでは当然相当時間がかかるんで、途中で死なないようにnohupをつけたい、と思うわけで。

んで、そのままnohupつけると動かなくなるんですが、よくワークアラウンドを忘れるのでメモを残しておきます。

# ホストやポート番号等は適当に読み替えてください

ファイル受信側

nohup nc -d -l 12345 2> nohup.out | tar xvf - &

ポイントは2点

  • nohupが標準入力をcloseするので、-dでncが標準入力を無視するように指定
  • nohupは特に指定してないと標準エラー出力を標準入力とマージするので、標準エラー出力の出力先を明示的に指定

ファイル送信側

nohup tar cf - files | nc 192.168.10.10 12345 &

こっちのポイントは

  • ファイル名のような余計な出力をしないよう、tarのzオプションなんかはつけない

以上ですー