2016-07-27 58 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命令(您有 选项不要以交互模式保存配置文件)。

希望这可以帮助别人!