にファイルをコピーします上記のようにのように:再帰的にrsyncは/私は与えられたファイル構造を有する異なる構造
- public/
- examplesite.com/
- file.css
- file.jpg
- anotherexamplesite.com/
- stuff.css
- things.jpg
やサイトへのresources
ディレクトリ内のファイルのようにそうフォルダ:
- sites/
- examplesite.com/
- resources/
- views/
- view.php
各サイトのパブリックディレクトリの内容を基本的に1つのディレクトリにコピーし、その親ディレクトリをpublic
ディレクトリと同期させます。リソースディレクトリをsitesディレクトリに直接コピーします。私は、この第2の部分の作業を持っているが、最初の部分は正しく動作しません。
#!/usr/bin/env bash
MY_PATH="/var/www"
rsync --exclude='.git/' "$MY_PATH/dev/" "$MY_PATH/sites/" --recursive
rsync --exclude='.git/' --exclude='resources/' "$MY_PATH/dev/public" "$MY_PATH/public/" --recursive
このスクリプトの最初のrsyncコマンドが正常に動作し、それをコピーファイルに:
これは私が持っているものですフォルダ構造を変更する必要がないため、サイトディレクトリに問題はありません。しかし、第2のrsyncコマンドは、次のん:
- public/
- examplesite.com/
- public/
- file.css
- file.jpg
- anotherexamplesite.com/
- public/
- stuff.css
- things.jpg
私も彼らのパブリックディレクトリのうち、先のファイルを移動しながら、簡単に、再帰的に適切なサイトフォルダにファイルをコピーする方法が本当にわからない、とまで1つのディレクトリに格納されているため、サイト名の下に直接存在します。
アイデア?
私はあなたがrsyncだけでこれを行うことはできないと確信しています。 '--filter'でさえ、このような翻訳を扱えるほどスマートではありません。あなたのベスト・ベットは、[@ sapanoia](http://stackoverflow.com/a/41496391/1072112)が示唆しているハイブリッド・ソリューションである可能性が高いです。実際の設定管理ツールをサイトの展開に使用することを検討したいと思うかもしれません - [ansible](https://www.ansible.com/)や[saltstack](https://saltstack.com/)や[chef ](https://www.chef.io/)などである。 – ghoti