2016-07-27 90 views
0

我正在嘗試配置s3cmd。當在命令行,通過bash腳本非交互配置s3cmd

s3cmd --configure 

運行嚮導和數據條目是直線前進。 現在,我想通過bash腳本來運行它。我用:

s3cmd --configure --access_key=XXXXXXX --secret_key=XXXXXX -s --no-encrypt 

和交互式嚮導仍然彈出詢問我剛剛提供的參數。我又試圖傾出配置文件(.s3cfg)的內容,並將其寫入文件根希望s3cmd會讀它:

s3cmd --configure --access_key=XXXXXXX --secret_key=XXXXXX -s --no-encrypt 
--dump-config 2>&1 | tee .s3cfg 

,但沒有工作,要麼.. 任何想法? 謝謝。

回答

2

--configure是一種定義所有設置的交互模式,只要您打開此選項,它將帶來交互式問題模式。

如果您想編寫工具的配置腳本,我認爲您應該直接編輯用戶主目錄中的.s3cfg(對於mac/linux)或s3cmd.ini(對於Windows)並設置要設置的值。

或者你可以轉儲的當前設置(如您--dump-config製造)做出更改並保存使用s3cmd --config=<new_file>

+0

我繼續將配置文件轉儲到/ root /中的.s3cfg文件中。 S3cmd能夠直接讀取它,而不必明確指向它。 's3cmd --configure --access_key = XXXXXX --secret_key = XXXX -s --no-encrypt --dump-config 2>&1 | tee/root/.s3cfg' – ahmedhosny

0

至少在版本1.1.0 -β3,這個工作很適合我:

export AWS_ACCESS_KEY_ID=... 
export AWS_SECRET_ACCESS_KEY=... 

echo -e "${AWS_ACCESS_KEY_ID?}\n${AWS_SECRET_ACCESS_KEY?}\n\n\n\n\nY\ny\n" | \ 
    s3cmd --configure 

我建議一次手工找出需要的輸入字符串的確切連續,然後相應地調整echo命令(您有 選項不要以交互模式保存配置文件)。

希望這可以幫助別人!