是否可以在临时命令中使用括号扩展?我正在尝试这样做:
ansible web3 -m shell -a "sudo gzip /var/opt/tomcat/logs/appname.log.2015-05-2{4..7}" -K
但它被解释为字符串。在这种情况下我可能需要使用 xargs 吗?
答案1
主机是否是web3
最新的 Debian/Ubuntu 服务器,/bin/sh
短跑? 它不支持括号扩展。您可能需要指定executable
选项来shell 模块。
$ ansible -i localhost, all -m shell -a 'ls /var/log/syslog.{2..4}.gz'
localhost | FAILED | rc=2 >>
ls: cannot access /var/log/syslog.{2..4}.gz: No such file or directory
$ ansible -i localhost, all -m shell -a 'ls /var/log/syslog.{2..4}.gz executable=/bin/bash'
localhost | success | rc=0 >>
/var/log/syslog.2.gz
/var/log/syslog.3.gz
/var/log/syslog.4.gz