ssh | tarを使用してリモートファイルをarchive.tar.gzにバックアップします。

ssh | tarを使用してリモートファイルをarchive.tar.gzにバックアップします。

このコマンドを使用して、ssh user@remote -p 22 "tar cz my-folder" | tar xz -C /d/local-backupsリモートフォルダをローカルドライブにバックアップしています。

うまく動作し、フォルダ構造は私のローカルドライブで同じように複製されます。しかし、ファイルを抽出して同じフォルダ構造を再生成するのではなく、ファイルをアーカイブに追加することは可能ですか?

私は似たようなことを試しましたが、ssh user@remote -p 22 "tar cz my-folder" | tar rz -C /d/local-backups/arcive.tar.gz運がありませんでした。

編集する これはコマンドを使用したコンソール出力です。

`ssh user@remote -p 22 "tar cz my-folder" | tar rvf -C /d/local-
backups/archive.tar.gz`

/d/local-backups/archive.tar.gz
tar: Removing leading `/' from member names
/d/local-backups/archive.tar.gz
tar: Removing leading `/' from hard link targets

コマンドを実行する前に、archive.tar.gz(内部にテキストファイルを含む)を作成してみましたが、アーカイブが存在してもファイルは含まれません。

私のサーバーで検索されたすべてのファイルを含む "archive.tar.gz"ファイルを最後に1つだけ置く方法はありますか?

答え1

最初のステップコマンドのアイデアに従って、リモートシステムにアーカイブを作成します。

ssh user@remote -p 22 "tar cz my-folder" 

その後、ローカルコンピュータに抽出します。

| tar xz -C /d/local-backups
-C - change directory to "/local-backups" before performing an operation.

これが理論的には、このコマンドを使用してローカルコンピュータにアーカイブを持つことができない理由です。しかし、とにかくそれを抽出するよりもはるかに簡単です。リモートシステムにアーカイブを作成し、ローカルシステムにアーカイブを保存する場合は、次のことができます。

ssh user@remote -p 22 "tar cz my-folder" > /tmp/archive.tar.gz

このコマンドはアーカイブを生成します。その後、結果を確認できます

$ tar -tvf archive.tar.gz
drwxr-xr-x zidercol/users    0 2021-12-20 18:10 Temp/
-rw-r--r-- zidercol/users  270 2021-12-20 18:10 Temp/T0

関連情報