ansible笔记():常用模块之文件操作(二)

文件操作类模块

find模块
find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样。 此处我们介绍一些find模块的常用参数,你可以先对这些参数有一个大概了解,然后再看小示例。 paths参数 :必须参数,指定在哪个目录中查找文件,可以指定多个路径,路径间用逗号隔开,此参数有别名,使用别名path或者别名name可以代替paths。 recurse参数 : 默认情况下,只会在指定的目录中查找文件,也就是说,如果目录中还包含目录,ansible并不会递归的进入子目录查找对应文件,如果想要递归的查找文件,需要使用recurse参数,当recurse参数设置为yes时,表示在指定目录中递归的查找文件。 hidden参数 :默认情况下,隐藏文件会被忽略,当hidden参数的值设置为yes时,才会查找隐藏文件。 file_type参数 : 默认情况下,ansible只会根据条件查找"文件",并不会查找"目录"或"软链接"等文件类型,如果想要指定查找的文件类型,可以通过file_type指定文件类型,可指定的文件类型有any、directory、file、link 四种。 patterns参数 : 使用此参数指定需要查找的文件名称,支持使用shell(比如通配符)或者正则表达式去匹配文件名称,默认情况下,使用shell匹配对应的文件名,如果想要使用python的正则去匹配文件名,需要将use_regex参数的值设置为yes。 use_regex参数:默认情况下,find模块不会使用正则表达式去解析patterns参数中对应的内容,当use_regex设置为yes时,表示使用python正则解析patterns参数中的表达式,否则,使用glob通配符解析patterns参数中的表达式。 contains参数:使用此参数可以根据文章内容查找文件,此参数的值为一个正则表达式,find模块会根据对应的正则表达式匹配文件内容。 age参数 :使用此参数可以根据时间范围查找文件,默认以文件的mtime为准与指定的时间进行对比,比如,如果想要查找mtime在3天之前的文件,那么可以设置age=3d,如果想要查找mtime在3天以内的文件,可以设置age=-3d,这里所说的3天是按照当前时间往前推3天,可以使用的单位有秒(s)、分(m)、时(h)、天(d)、星期(w)。 age_stamp参数 :文件的时间属性中有三个时间种类,atime、ctime、mtime,当我们根据时间范围查找文件时,可以指定以哪个时间种类为准,当根据时间查找文件时,默认以mtime为准。 size参数 :使用此参数可以根据文件大小查找文件,比如,如果想要查找大于3M的文件,那么可以设置size=3m,如果想要查找小于50k的文件,可以设置size=-50k,可以使用的单位有t、g、m、k、b。 get_checksum参数 :当有符合查找条件的文件被找到时,会同时返回对应文件的sha1校验码,如果要查找的文件比较大,那么生成校验码的时间会比较长。 对应上述参数的ad-hoc示例命令如下: 在test211主机的/data目录中查找文件内容中包含abc字符串的文件,隐藏文件会被忽略,不会进行递归查找。 [root@node1 data]# ansible test211 -m find -a 'paths=/data contains=".*abc.*"' 在test211主机的/testdir目录以及其子目录中查找文件内容中包含abc字符串的文件,隐藏文件会被忽略 ansible test211 -m find -a 'paths=/data contains=".*abc.*" recurse=yes' 在test211主机的/data目录中查找以.sh结尾的文件,包括隐藏文件,但是不包括目录或其他文件类型,不会进行递归查找 [root@node1 data]# ansible test211 -m find -a 'paths=/data patterns="*.sh" hidden=yes' 在test211主机的/data目录中查找以.sh结尾的文件,包括隐藏文件,包括所有文件类型,比如文件、目录、或者软链接,但是不会进行递归查找。 [root@node1 data]# ansible test211 -m find -a 'paths=/data patterns="*.sh" file_type=any hidden=yes' 在test211主机的/testdir目录中查找以.sh结尾的文件,包括隐藏文件,包括所有文件类型,比如文件、目录、或者软链接,但是不会进行递归查找 [root@node1 data]# ansible test211 -m find -a 'paths=/data patterns="*.sh" file_type=any hidden=yes' 在test211主机的/data目录中查找以.sh结尾的文件,只不过patterns对应的表达式为正则表达式,查找范围包括隐藏文件,包括所有文件类型,但是不会进行递归查找,不会对/data目录的子目录进行查找 [root@node1 data]# ansible test211 -m find -a 'paths=/data patterns=".*\.sh" use_regex=yes file_type=any hidden=yes' 在test211主机的/data目录中以及其子目录中查找mtime在4天以内的文件,不包含隐藏文件,不包含目录或软链接文件等文件类型 [root@node1 data]# ansible test211 -m find -a "path=/data age=-4d recurse=yes" 在test211主机的/data目录中以及其子目录中查找atime在2星期以内的文件,不包含隐藏文件,不包含目录或软链接文件等文件类型 [root@node1 data]# ansible test211 -m find -a "path=/data age=-2w age_stamp=atime recurse=yes" 在test211主机的/data目录中以及其子目录中查找大于2G的文件,不包含隐藏文件,不包含目录或软链接文件等文件类型。 [root@node1 data]# ansible test211 -m find -a "paths=/data size=2g recurse=yes" 在test211主机的/data目录中以及其子目录中查找以.sh结尾的文件,并且返回符合条件文件的sha1校验码,包括隐藏文件 [root@node1 data]# ansible test211 -m find -a "paths=/data patterns=*.sh get_checksum=yes hidden=yes recurse=yes" replace模块
replace模块可以根据我们指定的正则表达式替换文件中的字符串,文件中所有被正则匹配到的字符串都会被替换。 此处我们介绍一些replace模块的常用参数,你可以先对这些参数有一个大概了解,然后再看小示例。 path参数 :必须参数,指定要操作的文件,.3版本之前,只能使用dest, destfile, name指定要操作的文件,.5版本中,仍然可以使用这些参数名,这些参数名作为path参数的别名使用。 regexp参数 : 必须参数,指定一个python正则表达式,文件中与正则匹配的字符串将会被替换。 replace参数 : 指定最终要替换成的字符串。 backup参数 :是否在修改文件之前对文件进行备份,最好设置为yes。 对应上述参数的ad-hoc示例命令如下: 把test70主机中的 /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd.conf 文件中的所有192.168.254.148替换成172.30.0. [root@node1 data]# ansible test211 -m replace -a 'path=/usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd.conf regexp="192.168.254.148" replace="172.30.0.9"' 把test70主机中的/usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd.conf文件中的所有192.168.254.148替换成usguiguzabbix.wondershare.com,但是在操作文件之前进行备份 [root@node1 data]# ansible test211 -m replace -a 'path=/usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd.conf regexp="172.30.0.1" replace="usguiguzabbix.wondershare.com"'

ansible笔记(5):常用模块之文件操作(二)的更多相关文章

  1. ansible笔记(4):常用模块之文件操作

    前文中,我们已经介绍了怎样使用模块,而且我们知道,ansible有很多模块,每个模块都有自己的功能,"模块"涉及到的方向比较多,所以对于个人来说,并没有必要了解所有的模块,我们只需 ...

  2. Ansible笔记(2)---常用模块之文件操作

    一.copy模块 1.1作用: copy模块是将ansible主机上的文件拷贝到远程受控主机 1.2常用参数: src参数 :用于指定需要copy的文件或目录. dest参数 :用于指定文件将被拷贝到 ...

  3. 02-Node.js学习笔记-系统模块fs文件操作

    2.1.什么是系统模块 Node 运行环境提供的API,因为这些API都是以模块化的方式进行开发的,所有我们又称Node运行环境提供的API为系统模块 3.1系统模块fs文件操作 //f :file ...

  4. python笔记之常用模块用法分析

    python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...

  5. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  6. python学习笔记之常用模块(第五天)

    参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...

  7. Ansible简介及常用模块

    一.基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  8. Ansible 入门指南 - 常用模块

    介绍 module 文档: 官宣-模块分类的索引 官宣-全部模块的索引 在playbook脚本中,tasks 中的每一个 action都是对 module的一次调用.在每个 action中: 冒号前面 ...

  9. Ansible指令和常用模块使用

    这里文章记录一下ansible的指令选项和常用的模块使用 ansible指令选项 -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户名,默认用root,ansible. ...

随机推荐

  1. idea打开项目没有文件目录

    如题,利用idea打开一个项目,然而并没有src等主要文件目录. 方法:使用ctrl+shift+alt+s打开目录结构,选择module,再选择import module,注意选择SDK,即JDK.

  2. LR与SVM的异同

    原文:http://blog.sina.com.cn/s/blog_818f5fde0102vvpy.html 在大大小小的面试过程中,多次被问及这个问题:“请说一下逻辑回归(LR)和支持向量机(SV ...

  3. Django多表操作

    多表创建 创建模型 下面通过一个简单的图书管理系统,来阐述多表的创建和查询操作 在视图函数里里定义如下代码 from django.db import models class Book(models ...

  4. 【转载】 C#读写注册表

    文章地址:https://blog.csdn.net/younghaiqing/article/details/61918968 自Windows95以来的所有Windows版本中,注册表是包含Win ...

  5. 实惠VPS推荐

    1. Topmain 2. Virmach 3. BanwagonHost  [备用地址1] [备用地址2] 4. HiFormance  (跑路) 5. my.hosteons.com 6. . 以 ...

  6. 【十二】jvm 性能调优工具之 jhat (JVM Heap Analysis Tool)

    jhat也是jdk内置的工具之一.主要是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言. jhat 非常耗费cpu和内存,所以一般不使 ...

  7. PHP的核心配置详解

    1.PHP核心配置详解 代码在不同的环境下执行的结果也会大有不同,可能就因为一个配置问题,导致一个非常高危的漏洞能够利用:也可能你已经找到的一个漏洞就因为你的配置问题,导致你鼓捣很久都无法构造成功的漏 ...

  8. php时间转换

    UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储.处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换 ...

  9. Docker(一)基本概念

    摘自 https://mp.weixin.qq.com/s/mcIMBMNMrFD9OE56iujhXQ 一.容器和虚拟机的比较 1.虚拟机 对于以前熟悉的虚拟机,我们需要模拟操作系统和硬件.虚拟机一 ...

  10. My97DatePicker 只显示月份

    <script src="../javascript/My97DatePicker/WdatePicker.js" type="text/javascript&qu ...