分割出力をsftpに渡すには?

分割出力をsftpに渡すには?

私のサーバーにディスク容量が足りません。いくつかのテラバイトサイズのディレクトリを長期アーカイブに移動したいと思います。好みのファイルサイズが16GBのテープロボットです。だからtarアーカイブを16GBの部分に分割したいと思います。

tar -czpv mydir | split -d - a 4 -b $SplitBlockSize - mydir.gz.tar

LT Archive Serverを介してアクセス可能ですsftp。ローカルに保存せずにsplit出力を渡すことはできますか?sftp

ベストアンサー1

もちろん使用できますsshfssftpこれらのファイルを送信する方向を正しく構成したと仮定すると、次のコマンドを使用してローカルディレクトリをリモートサーバーにマップできます。

$ mkdir remote
$ sshfs user@server:/path/to/dir remote

その後、分割ファイルをマップされたディレクトリに書き込むようにコマンドを調整できます。

$ tar -czpv mydir | split -d -a 4 -b $SplitBlockSize - remote/mydir.gz.tar

--filterあなたの場合は、オプションを使用する方が良い解決策だと思いますsplitmanページからsplit-

--filter=COMMAND
       write to shell COMMAND; file name is $FILE

この方法

$ tar -czpv mydir | split -d -a 4 -b $SplitBlockSize --filter 'ssh user@remote "cat >$FILE"' - mydir.gz.tar

sshファイルはリモートサーバーに直接書き込まれます。まだ設定していない場合は、公開鍵認証を設定することをお勧めします。それ以外の場合は、送信するすべてのファイルにパスワードを入力する必要があります。あなたの場合はTBあたり64回です。転送に時間がかかると予想される場合は、nohup再起動が必要になる可能性を減らすためにこの方法を使用することをお勧めします。

おすすめ記事