删除文件夹文件夹中超过x天的文件
我想使用 ansible 删除旧文件。我有一个数据日志文件夹,在这个文件夹中我有多个目录:
/data/log/folder1/
/data/log/folder2/
....
我尝试使用这个 ansible playbook:
---
- hosts: all
tasks:
- name: find all files that are older than 10 days
find:
paths: /data/log/*/
age: 10d
recursive: yes
register: filesOlderThan10
- name: remove older than 10
file:
path: "{{ item.path }}"
state: absent
with_items: "{{ (filesOlderThan10.files }}"
当我启动剧本时,没有任何内容被删除,我不确定我是否可以使用这种语法/data/log/*/
因此我正在寻找改进此代码的建议
回答
到目前为止,我在剧本中发现了三四个错误
- 如果您需要删除您没有权限的文件,请使用 become 或确保它在 config/inventory 中设置。
- 路径:应该是完全限定的路径,路径中不接受通配符我认为应该是路径:/data/log
- 'recursive' 不是 find 模块的正确选项。它应该是“递归”
- 最后一行有一个不需要的 '(' 。
下面的代码应该工作
---
- hosts: all
tasks:
- name: find all files that are older than 10 days
find:
paths: /data/log
age: 10d
recurse: yes
register: filesOlderThan10
- name: remove older than 10
file:
path: "{{ item.path }}"
state: absent
with_items: "{{ filesOlderThan10.files }}"