在这里打破我的大脑。我想解决一些小问题。 我的目标是在两个不同的文件夹中删除超过8天的文件。我的代码:
- name: check for files
find:
paths: "{{ item }}"
age: 8d
with_items:
- /var/log/glusterfs
- /var/log/glusterfs/bricks
register: deleteold
- debug: var=deleteold.results[1].files[0].path
- name: remove files older than 8 days
file:
path: "{{ item.files[0].path }}"
state: absent
with_items: "{{ deleteold.results }}"
# when: ???
通过这种方式,Ansible可以“定位”正确的文件(如果存在)。 但如果不存在文件,则会出错。因为没有定义变量。
我应该使用哪个when
语句来仅删除目标文件。
为了方便:
创建一个旧的文件 - > touch -d 20161010 test.log 并调试:
- debug: var=deleteold.results[1].files[0].path
答案 0 :(得分:0)
有一个更好的方法:
- find:
paths:
- /var/log/glusterfs
- /var/log/glusterfs/bricks
age: 8d
register: old_files
- file:
path: "{{ item.path }}"
state: absent
with_items: "{{ old_files.files }}"