删除文件夹文件夹中超过 x 天的文件

C.m*_*med 2 delete-file ansible

我想使用 ansible 删除旧文件。我有一个数据日志文件夹,在这个文件夹中我有多个目录:

/data/log/folder1/
/data/log/folder2/
....
Run Code Online (Sandbox Code Playgroud)

我尝试使用这个 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 }}"
Run Code Online (Sandbox Code Playgroud)

当我启动剧本时,没有任何内容被删除,我不确定我是否可以使用这种语法/data/log/*/
因此我正在寻找改进此代码的建议

小智 5

到目前为止,我在剧本中发现了三四个错误

  1. 如果您需要删除您没有权限的文件,请使用 become 或确保它在 config/inventory 中设置。
  2. 路径:应该是完全限定的路径,路径中不接受通配符我认为应该是路径:/data/log
  3. 'recursive' 不是 find 模块的正确选项。它应该是“递归”
  4. 最后一行有一个不需要的 '(' 。

下面的代码应该工作

---
- 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 }}"
Run Code Online (Sandbox Code Playgroud)