gzipローカルフォルダを圧縮してリモートサーバーに抽出します。

gzipローカルフォルダを圧縮してリモートサーバーに抽出します。

私はこのコマンドに初めて触れました。ローカルフォルダをgzipに圧縮し、リモートサーバーで解凍しようとしています。問題は、gzipの圧縮と解凍がすぐに行われるべきです。私はたくさん試してみましたが、最も近いものの1つは次のとおりです。

tar cf dist.tar ~/Documents/projects/myproject/dist/ | ssh [email protected]:~/public_html/ "tar zx ~/Documents/projects/myproject/dist.tar"

上記のように、distフォルダをリモートサーバーに送信しようとしていますが、その前にフォルダを即座に圧縮したい(上記のコマンドでは、これは起こらないようです。)。

  • ローカルフォルダ:~/Documents/projects/myproject/dist/
  • リモートフォルダ~/public_html:(直接展開してオンラインに切り替える)

もちろん、gzipで生成されたファイルは存在してはならず、すぐに発生するはずです。

私の意図はsh file.command。プロジェクトを変更するたびにこれを手動で実行したくありません。distsh

ベストアンサー1

rsync次に、既存のファイルを使用して違い(ファイルの別の部分)のみを転送できるようにする場合は、

rsync -az ~/Documents/projects/myproject/dist/ [email protected]:public_html/

--delete毎回ターゲットディレクトリツリーを完全に上書きするには、フラグを追加します。何が起こっているのかを確認するには、を追加してください-v

1つがなければ、あまりrsync効率的ではないこのソリューションを使用するだけでtar十分です。

( cd ~/Documents/projects/myproject/dist && tar czf - . ) |
    ssh [email protected] 'cd public_html && tar xzf -'

圧縮されたタールボールの書き込みと読み取りは、次のように行われます。標準出力そして標準入力-ファイル名)。 GNUを使用している場合は、処理する前に正しいディレクトリを設定tarできますが、-Cここでは古い(伝統的な?cd)を使用しています。v何が起こっているかを確認するには(受信側)フラグを追加しますtar xzvf ...

おすすめ記事