虚拟化容器,大数据,DBA,中间件,监控。

ansible删除多个文件与目录的使用方法

24 12月
作者:admin|分类:系统运维

ansible删除多个文件与目录的使用方法


# 背景


ansible 有多种方式删除一个文件或目录,删除一个目录中的所有文件,使用正则表达式删除文件等等。

最安全的方式是使用ansible内置的file模块。当然你也可以使用shell 模块去实现。

但它不是幂等的,因此重新执行会抛出错误。


# 删除一个文件


```yaml

- name: Ansible delete file example

  file:

    path: /etc/delete.conf

    state: absent

```


> 注意:当你知道一个文件名的时候,可以这样删除这个文件。


# 删除多个文件


```yaml

- name: Ansible delete multiple file example

  file:

    path: "{{ item }}"

    state: absent

  with_items:

    - hello1.txt

    - hello2.txt

    - hello3.txt

```


> 注意:当你知道多个文件名的时候,可以这样删除这些文件。


# 删除一个目录或文件夹


```yaml

- name: Ansible delete directory example

  file:

    path: removed_files

    state: absent

```


> 上面这个例子讲删除指定的目录,如果这个目录不存在,不会抛出错误。


# 使用shell 脚本删除多个文件


```yaml

- name: Ansible delete file wildcard example

  shell: rm -rf hello*.txt

```


> 上面这个例子讲删除指定的目录,如果这个目录不存在,不会抛出错误。


# 使用find和file模块结合linux shell模糊搜索删除文件


```yaml

- hosts: all

  tasks:

  - name: Ansible delete file glob

    find:

      paths: /etc/Ansible

      patterns: *.txt

    register: files_to_delete


  - name: Ansible remove file glob

    file:

      path: "{{ item.path }}"

      state: absent

    with_items: "{{ files_to_delete.files }}"

```




# 使用find和file模块结合python的正则表达式删除文件


```yaml

- hosts: all

  tasks:

  - name: Ansible delete file wildcard

    find:

      paths: /etc/wild_card/example

      patterns: "^he.*.txt"

      use:regex: true

    register: wildcard_files_to_delete


  - name: Ansible remove file wildcard

    file:

      path: "{{ item.path }}"

      state: absent

    with_items: "{{ wildcard_files_to_delete.files }}"

```


# 移除晚于某个日期的文件


```yaml

- hosts: all

  tasks:

  - name: Ansible delete files older than 5 days example

    find:

      paths: /Users/dnpmacpro/Documents/Ansible

      age: 5d

    register: files_to_delete


  - name: Ansible remove files older than a date example

    file:

      path: "{{ item.path }}"

      state: absent

    with_items: "{{ files_to_delete.files }}"

```


浏览595 评论0
返回
目录
返回
首页
ansible-playbook 执行剧本时的sudo-su使用方法 zblog-php版本在轻量云主机打开页面卡慢的处理