linux企业实战 --ansible常用模块之文件操作(find & replace)

一、find 模块

find模块可以班帮助我们再远程主机中查找符合条件的文件,就像find命令

1. 模块参数

参数 含义
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天以内的文件,可以设置tage=-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校验码,如果要查找的文件比较大,那么生成校验码的时间会比较长

2. 应用

  1. 在ansible主机查找远程主机目标文件的指定内容

linux企业实战 --ansible常用模块之文件操作(find & replace)

linux企业实战 --ansible常用模块之文件操作(find & replace)

  1. 递归查找

linux企业实战 --ansible常用模块之文件操作(find & replace)
linux企业实战 --ansible常用模块之文件操作(find & replace)

  1. 查找远程主机所建立隐藏文件

linux企业实战 --ansible常用模块之文件操作(find & replace)
linux企业实战 --ansible常用模块之文件操作(find & replace)

  1. 查找所有类型包括隐藏文件

linux企业实战 --ansible常用模块之文件操作(find & replace)
linux企业实战 --ansible常用模块之文件操作(find & replace)
linux企业实战 --ansible常用模块之文件操作(find & replace)linux企业实战 --ansible常用模块之文件操作(find & replace)

  1. 正则表达式查找

linux企业实战 --ansible常用模块之文件操作(find & replace)linux企业实战 --ansible常用模块之文件操作(find & replace)
linux企业实战 --ansible常用模块之文件操作(find & replace)
linux企业实战 --ansible常用模块之文件操作(find & replace)

  1. 查找四天以内的文件(默认为 mtime)

linux企业实战 --ansible常用模块之文件操作(find & replace)

7.查找atime在两周以内的文件

linux企业实战 --ansible常用模块之文件操作(find & replace)

  1. 查找大于2g的文件

linux企业实战 --ansible常用模块之文件操作(find & replace)

  1. 查找文件并返回sha1验证码

linux企业实战 --ansible常用模块之文件操作(find & replace)

二、replace 模块

replace模块可以根据我们指定的正则表达式替换文件中的字符串,文件中所有被正则匹配到的字符串都会被替换

1. 模块参数

参数 含义
path 必须参数,指定要操作的文件
regexp 必须参数,指定一个python正则表达式,文件中与正则匹配的字符串将会被替换。
replace 指定最终要替换成的字符串。
backup 是否在修改文件之前对文件进行备份,最好设置为yes

2. 应用

  1. 替换远程主机中的文件内容

linux企业实战 --ansible常用模块之文件操作(find & replace)
linux企业实战 --ansible常用模块之文件操作(find & replace)

  1. 替换远程主机文件的内容并备份

linux企业实战 --ansible常用模块之文件操作(find & replace)

linux企业实战 --ansible常用模块之文件操作(find & replace)