我的团队正面临着Ansible shell命令的问题。我有一个目录与日志文件压缩和以前处理的文件(这是压缩),所有文件的时间戳为YYYY.mm.dd像:
- somefile.2021.05.19.log
- somefile.2021.05.20.log
- somefile.2021.06.18.log.gz
我需要压缩那些不包含当前日期的文件(如果今天是2021.05.20,我就不压缩这个文件)。这意味着在上面的例子中,只有somefile.2021.05.19.log必须被压缩。我使用shell命令:
find /var/log/somedirectory -type f ! -name "*.gz" ! -path "*`date +%Y.%m.%d`*" -exec gzip -9 {} \;
它在Linux shell中运行得很好,并且正在做我需要做的事情:不接受 *.gz文件,也不接受具有当前日期的文件。
我们正在从以前的编排器迁移到Ansible。当使用Ansible shell和此命令时,它不会过滤日期,就像-path没有很好地从Ansible转换到shell一样。我们试图使用空格“或倒勾或 *,但似乎没有任何效果。它总是使用2021.05.19文件,不幸的是2021.05.20文件。
在Ansible中有没有使用这个命令的方法(或者更好的方法)?谢谢。
1条答案
按热度按时间ovfsdjhp1#
我认为可能是ansible主机和远程主机的时区不同。backtick(
)里面的命令
date +%Y.%m.%d在ansible主机上运行。但是
find`命令不是。