ansible笔记(5):常用模块之文件操作(二)文件操作类模块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参数 :必须参数,指定要操作的文件,2.3版本之前,只能使用dest, destfile, name指定要操作的文件,2.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.9[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"'

转载于:https://www.cnblogs.com/reblue520/p/9458601.html

ansible笔记(5):常用模块之文件操作(二)相关推荐

  1. 自动化运维---ansible常用模块之文件操作(findreplace模块)

    自动化运维-ansible常用模块之文件操作(find&replace模块) 文章目录 自动化运维---ansible常用模块之文件操作(find&replace模块) 1.find模 ...

  2. Python学习笔记--day09 函数 模块 (文件、路径操作)

    第二模块 函数&模块 第一模块主要是学习python基础知识,从第二模块开始就可以通过程序去解决工作中实际的问题. 函数,一个用于专门实现某个功能的代码块(可重用). 内置函数 len.bin ...

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

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

  4. Ansible中的常用模块介绍

    文章目录 一.ansible实现管理的方式 二.Ad-Hoc执行方式中如何获得帮助 三.ansible命令运行方式及常用参数 四.ansible的基本颜色代表信息 五.ansible中的常用模块 让设 ...

  5. 4.2 Ansible中的常用模块

    Ansible中的常用模块 Ansible实现管理的方式 Ad-Hoc执行方式中如何获取帮助 Ansible命令运行方式及常用参数 常用参数 Ansible的基本颜色代表信息 Ansible中的常用模 ...

  6. python文件操作和模块_Python(五)--模块与文件操作

    Python(五)–模块与文件操作 模块和包 模块 模块是包含Python定义和语句的文件,把一组相关函数或代码组织到一个文件中,一个文件即一个模块.模块的文件名 = 模块名+后缀.py 模块之间代码 ...

  7. golang常用库之-文件操作(os、path、filepath、ioutil包)、Go 读文件、Go 写文件

    文章目录 golang常用库之-文件操作

  8. Python模块和文件操作

    模块和文件操作 时间模块 1.time() - 获取当前时间的时间戳 2.localtime() - 获取本地的当前时间,返回的是结构体时间.localtime(时间戳) - 将时间戳转换成本地时间对 ...

  9. D14.系统模块和文件操作

    系统模块和文件操作 一,time模块 from time import * 1. time() - 获取当前时间的时间戳 2. localtime() - 获取本地的当前时间,返回值是结构体时间 lo ...

最新文章

  1. php网站服务器工具,PHP服务器搭建网站常用工具有哪些?
  2. mysql中先随机提取再排序d_mysql性能优化
  3. 提升ListView的运行效率
  4. Android edittext限制字节数
  5. edittext无法获取焦点_小黑鞋强势回归,用帅气拉回时尚焦点
  6. 【POI word】使用POI实现对Word的读取以及生成
  7. WebClient UI framework - how tree proxy structure node is rendered
  8. leetcode559. N叉树的最大深度
  9. [Python] 维度交换函数:transpose(m,n,r)和permute(m,n,r)
  10. 二十三、K8s集群强化1-认证
  11. javap -c命令详解
  12. 星环分析型数据库Inceptor中database link的使用总结
  13. 自己动手编译android ffmpeg
  14. EXT2文件系统实现原理
  15. 第19节 扫描技术——基于Windows系统的工具
  16. 重置win10 恢复原厂设置
  17. 大家好,我是练习时长两年半的LeetCode爱好者,喜欢唱跳rap
  18. SAP 财务替代(基本内容及常用财务替代配置涉及退出提供源代码)
  19. 笔记本电脑上的触摸板怎样关闭(神州战神)
  20. zb服务器连接不稳定,绝对惊人!全球服务器处理9.57ZB数据

热门文章

  1. const_iterator简单介绍
  2. python 继承的规则
  3. ActionBarActionMode的理解,出现菜单栏
  4. Blueprint 使用手记
  5. 使用MessageFormat格式化数字,日期
  6. ldap - 设置一个基本的OpenLDAP Server
  7. (读书笔记).NET大局观-.NET框架类库概观
  8. 如何创建Kafka客户端:Avro Producer和Consumer Client
  9. Android ---------高德卫星地图绘制多个点和点的点击事件自定义弹窗
  10. perl怎么拷贝一个文件到另一个文件夹中或者怎么拷贝文件夹到另一个文件夹