2016-01-21 102 views
1

我在Amazon S3存儲桶中有一些文件,我正在使用SaltStack將所有這些文件複製到備用目錄中。如何檢查AWS S3同步是否有任何更改?

不幸的是,SaltStack沒有能力從S3複製整個目錄,所以我使用了awscli。它幾乎完美地工作。

它可以同步S3桶和我的目錄(萬歲!),它甚至有一個--dryrun標誌(甚至更好!),但不幸的是我不能想出一個辦法讓它做東西,我可以捕獲Salt表示沒有任何變化。

我有一個看起來像這樣的鹽的狀態:「什麼?到這裏」

copy-my-dir: 
    file.directory: 
    - name: /path/to/my/dir 
    - makedirs: True 
    cmd.run: 
    - name: "aws s3 sync s3://my-bucket/ /path/to/my/dir" 
    - unless: "What goes here?" 

我試過--dry-run爲但aws s3同步返回0是否有要同步的文件。

我想aws --output json s3 sync --dry-run但是,即使不接近做任何有用的(即不輸出的JSON我可以告訴大家,至少不是通過salt 'minion' cmd.run "aws..."運行時。

所以,我怎麼能知道還有我的亞馬遜S3存儲和我的目錄之間的差異,所以我可以有條件地執行一個SaltStack狀態

回答

1

原來,精彩grep實用程序可以做的正是我需要的:?

- onlyif: "aws s3 sync --dryrun s3://my-bucket /path/to/my/dir" | grep download" 

如果需要做什麼,awscli將輸出download: <filename>,但是如果目錄同步,那麼不會有輸出。

相關問題