私のサーバーにディスク容量が足りません。いくつかのテラバイトサイズのディレクトリを長期アーカイブに移動したいと思います。好みのファイルサイズが16GBのテープロボットです。だからtarアーカイブを16GBの部分に分割したいと思います。
tar -czpv mydir | split -d - a 4 -b $SplitBlockSize - mydir.gz.tar
LT Archive Serverを介してアクセス可能ですsftp
。ローカルに保存せずにsplit
出力を渡すことはできますか?sftp
答え1
もちろん使用できますsshfs
。sftp
これらのファイルを送信する方向を正しく構成したと仮定すると、次のコマンドを使用してローカルディレクトリをリモートサーバーにマップできます。
$ mkdir remote
$ sshfs user@server:/path/to/dir remote
その後、分割ファイルをマップされたディレクトリに書き込むようにコマンドを調整できます。
$ tar -czpv mydir | split -d -a 4 -b $SplitBlockSize - remote/mydir.gz.tar
--filter
あなたの場合は、オプションを使用する方が良い解決策だと思いますsplit
。man
ページから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
再起動が必要になる可能性を減らすためにこの方法を使用することをお勧めします。