设为首页 收藏本站
查看: 939|回复: 0

[经验分享] saltstack模块之file相关模块

[复制链接]

尚未签到

发表于 2018-7-31 09:39:10 | 显示全部楼层 |阅读模式
  1、file.access
  file.access:测试salt进程是否有对指定文件的对应访问权限。
[root@salt-master ~]# salt '*' file.access /etc/passwd f  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  
[root@salt-master ~]# salt '*' file.access /etc/passwd r
  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  
[root@salt-master ~]# salt '*' file.access /etc/passwd w
  
salt-minion01.contoso.com:
  
    True
  
salt-minion02.contoso.com:
  
    True
  
[root@salt-master ~]# salt '*' file.access /etc/passwd x
  
salt-minion02.contoso.com:
  
    False
  
salt-minion01.contoso.com:
  
    False
  2、file.touch
  file.touch:如果文件不存在创建文件,相当于touch file,如果文件存在就更新访问时间或者修改时间。
[root@salt-master ~]# salt '*' file.touch /tmp/salt-test  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  3、file.append
  file.append:追加文字到文件的末尾。
[root@salt-master ~]# salt '*' file.append /tmp/sal-test "Hello,World."  
salt-minion01.contoso.com:
  
    Wrote 1 lines to "/tmp/sal-test"
  
salt-minion02.contoso.com:
  
    Wrote 1 lines to "/tmp/sal-test"
  
[root@salt-master ~]# salt '*' file.append /tmp/sal-test args='Hello=Hi'
  
salt-minion01.contoso.com:
  
    Wrote 1 lines to "/tmp/sal-test"
  
salt-minion02.contoso.com:
  
    Wrote 1 lines to "/tmp/sal-test"
  
[root@salt-master ~]# salt '*' file.append /tmp/sal-test args="['true=1','false=0']"
  
salt-minion01.contoso.com:
  
    Wrote 2 lines to "/tmp/sal-test"
  
salt-minion02.contoso.com:
  
    Wrote 2 lines to "/tmp/sal-test"
  4、file.basename
  file.basename:返回所给路径的最后一个部分。
[root@salt-master ~]# salt '*' file.basename /tmp/sal-test  
salt-minion02.contoso.com:
  
    sal-test
  
salt-minion01.contoso.com:
  
    sal-test
  5、file.chgrp
  file.chgrp:修改文件的属组。
[root@salt-master ~]# salt '*' file.chgrp /tmp/testfile nginx  
salt-minion01.contoso.com:
  
    None
  
salt-minion02.contoso.com:
  
    None
  
[root@salt-master ~]# salt '*' cmd.run "ls -l /tmp/testfile"
  
salt-minion01.contoso.com:
  
    -rw-r--r-- 1 root nginx 0 Jun  4 01:27 /tmp/testfile
  
salt-minion02.contoso.com:
  
    -rw-r--r-- 1 root nginx 0 Jun  4 01:27 /tmp/testfile
  6、file.chown
  file.chown:修改文件的属主和属组。
[root@salt-master ~]# salt '*' file.chown /tmp/testfile nginx nginx  
salt-minion01.contoso.com:
  
    None
  
salt-minion02.contoso.com:
  
    None
  
[root@salt-master ~]# salt '*' cmd.run "ls -l /tmp/testfile"
  
salt-minion02.contoso.com:
  
    -rw-r--r-- 1 nginx nginx 0 Jun  4 01:27 /tmp/testfile
  
salt-minion01.contoso.com:
  
    -rw-r--r-- 1 nginx nginx 0 Jun  4 01:27 /tmp/testfile
  7、file.copy
  file.copy:从源目录拷贝文件到目标目录。如果要拷贝目录,需要添加recurse标签,默认情况下会覆盖目标目录中相同路径的文件,并保留其他文件。remove_existing选项会提前移除目标目录中的所有文件,然后再从源路径拷贝文件到目标路径。
[root@salt-master ~]# salt '*' file.copy /etc/hosts /tmp/hosts  
salt-minion01.contoso.com:
  
    True
  
salt-minion02.contoso.com:
  
    True
  
[root@salt-master ~]# salt '*' cmd.run 'ls -l /tmp/hosts'
  
salt-minion01.contoso.com:
  
    -rw-r--r-- 1 root root 327 Jun  4 01:41 /tmp/hosts
  
salt-minion02.contoso.com:
  
    -rw-r--r-- 1 root root 330 Jun  4 01:41 /tmp/hosts
  
[root@salt-master ~]# salt '*' file.copy /var/spool/cron/ /tmp/ recurse=True
  
salt-minion01.contoso.com:
  
    True
  
salt-minion02.contoso.com:
  
    True
  
[root@salt-master ~]# salt '*' cmd.run 'ls -l /tmp/root'
  
salt-minion02.contoso.com:
  
    -rw-r--r-- 1 root root 89 Jun  4 01:46 /tmp/root
  
salt-minion01.contoso.com:
  
    -rw-r--r-- 1 root root 73 Jun  4 01:46 /tmp/root
  
[root@salt-master ~]# salt '*' file.copy /var/spool/cron/ /tmp/ recurse=True remove_existing=True
  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  
[root@salt-master ~]# salt '*' cmd.run 'ls -l /tmp'
  
salt-minion01.contoso.com:
  
    total 4
  
    -rw-r--r-- 1 root root 73 Mar 11 21:35 root
  
salt-minion02.contoso.com:
  
    total 4
  
    -rw------- 1 root root 89 May 25 13:32 root
  8、file.dirname
  file.dirname:返回指定路径的目录部分。
[root@salt-master ~]# salt '*' file.dirname /etc/passwd  
salt-minion01.contoso.com:
  
    /etc
  
salt-minion02.contoso.com:
  
    /etc
  9、file.diskusage
  file.diskusage:递归计算指定目录所占的磁盘空间并以字节为单位返回计算出的值。
[root@salt-master ~]# salt '*' file.diskusage /root/install.log  
salt-minion01.contoso.com:
  
    30131
  
salt-minion02.contoso.com:
  
    30131
  10、file.file_exists
  file.file_exists:测试目标路径是否是一个有效文件,返回值为True或False。
[root@salt-master ~]# salt '*' file.file_exists /etc/passwd  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  11、file.find
  file.find:返回指定搜索条件返回的文件路径,相当于Linux中的find命令,参数也兼容find命令。
[root@salt-master ~]# salt 'salt-minion01.contoso.com' file.find /var name=minion  
salt-minion01.contoso.com:
  
    - /var/cache/salt/minion
  
    - /var/log/salt/minion
  
    - /var/run/salt/minion
  
[root@salt-master ~]# salt 'salt-minion01.contoso.com' file.find /var name=minion size=-1m
  
salt-minion01.contoso.com:
  
    - /var/cache/salt/minion
  
    - /var/log/salt/minion
  
    - /var/run/salt/minion
  
[root@salt-master ~]# salt 'salt-minion01.contoso.com' file.find /var name=minion size=-1m print=path,size,mtime
  
salt-minion01.contoso.com:
  
    |_
  
      - /var/cache/salt/minion
  
      - 4096
  
      - 1495711378
  
    |_
  
      - /var/log/salt/minion
  
      - 1123
  
      - 1496551874
  
    |_
  
      - /var/run/salt/minion
  
      - 4096
  
      - 1496544267
  12、file.get_gid
  file.get_gid:返回所给文件的属组的id。
[root@salt-master ~]# salt '*' file.get_gid /etc/passwd  
salt-minion02.contoso.com:
  
    0
  
salt-minion01.contoso.com:
  
    0
  13、file.get_group
  file.get_group:返回所给文件的属组。
[root@salt-master ~]# salt '*' file.get_group /etc/passwd  
salt-minion02.contoso.com:
  
    root
  
salt-minion01.contoso.com:
  
    root
  14、file.get_uid
  file.get_uid:返回所给文件的属主的id。
[root@salt-master ~]# salt '*' file.get_uid /etc/passwd  
salt-minion01.contoso.com:
  
    0
  
salt-minion02.contoso.com:
  
    0
  15、file.get_user
  file.get_user:返回所给文件的属主。
[root@salt-master ~]# salt '*' file.get_user /etc/passwd  
salt-minion02.contoso.com:
  
    root
  
salt-minion01.contoso.com:
  
    root
  16、file.grep
  file.grep:从指定文件中查找字符串,相当于Linux中的grep命令,参数也兼容grep命令。
[root@salt-master ~]# salt 'salt-minion01.contoso.com' file.grep /etc/passwd nobody  
salt-minion01.contoso.com:
  
    ----------
  
    pid:
  
        1858
  
    retcode:
  
        0
  
    stderr:
  
    stdout:
  
        nobody:x:99:99:Nobody:/:/sbin/nologin
  
        nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
  
[root@salt-master ~]# salt '*' file.grep /etc/sysconfig/network-scripts/ifcfg-eth0 ipaddr " -i"
  
salt-minion01.contoso.com:
  
    ----------
  
    pid:
  
        1896
  
    retcode:
  
        0
  
    stderr:
  
    stdout:
  
        IPADDR=192.168.49.101
  
salt-minion02.contoso.com:
  
    ----------
  
    pid:
  
        1770
  
    retcode:
  
        0
  
    stderr:
  
    stdout:
  
        IPADDR=192.168.49.102
  17、file.makedirs
  file.makedirs:创建目录,需要确认目录所包含的路径是可用的。注意,路径一定要在结尾添加“/”,不然会被当做父目录,比如如果传入/tmp/pfile,就会被当做/tmp/处理,而传入/tmp/pfile/则会当做/tmp/pfile/处理。另外,虽然该模块名称包含dirs,但其实无法批量创建多个目录,如果传入多个参数默认只处理第一个参数。但是可以创建多级目录,即使上级目录不存在。
[root@salt-master ~]# salt '*' file.makedirs /tmp/pfile  
salt-minion01.contoso.com:
  
    Directory '/tmp' already exists
  
salt-minion02.contoso.com:
  
    Directory '/tmp' already exists
  
[root@salt-master ~]# salt '*' file.makedirs /tmp/pfile/
  
salt-minion02.contoso.com:
  
    None
  
salt-minion01.contoso.com:
  
    None
  
[root@salt-master ~]# salt '*' cmd.run 'ls -l /tmp/'
  
salt-minion01.contoso.com:
  
    total 8
  
    drwxr-xr-x 2 root root 4096 Jun  4 10:48 pfile
  
    -rw-r--r-- 1 root root   73 Mar 11 21:35 root
  
salt-minion02.contoso.com:
  
    total 8
  
    drwxr-xr-x 2 root root 4096 Jun  4 10:48 pfile
  
    -rw------- 1 root root   89 May 25 13:32 root
  
[root@salt-master ~]# salt '*' file.makedirs /tmp/dic1/dic2/dic3/
  
salt-minion02.contoso.com:
  
    None
  
salt-minion01.contoso.com:
  
    None
  
[root@salt-master ~]# salt '*' cmd.run 'tree /tmp'
  
salt-minion01.contoso.com:
  
    /tmp
  
    |-- dic1
  
    |   `-- dic2
  
    |       `-- dic3
  
    |-- pfile
  
    |-- root
  
    `-- salt
  

  
    5 directories, 1 file
  
salt-minion02.contoso.com:
  
    /tmp
  
    |-- dic1
  
    |   `-- dic2
  
    |       `-- dic3
  
    |-- pfile
  
    |-- root
  
    `-- salt
  

  
    5 directories, 1 file
  18、file.mkdir
  file.mkdir:确认一个目录是可用的,也即创建指定目录。与file.makedirs不同的是,参数可以末尾不带“/”,也可以创建成功。另外,该模块支持批量创建多个目录,也支持创建多级目录。
[root@salt-master ~]# salt '*' file.mkdir /tmp/salt  
salt-minion02.contoso.com:
  
    None
  
salt-minion01.contoso.com:
  
    None
  
[root@salt-master ~]# salt '*' cmd.run 'ls -l /tmp'
  
salt-minion01.contoso.com:
  
    total 12
  
    drwxr-xr-x 2 root root 4096 Jun  4 10:48 pfile
  
    -rw-r--r-- 1 root root   73 Mar 11 21:35 root
  
    drwxr-xr-x 2 root root 4096 Jun  4 11:02 salt
  
[root@salt-master ~]# salt '*' file.mkdir /tmp/salt1/slat2/salt3
  
salt-minion02.contoso.com:
  
    None
  
salt-minion01.contoso.com:
  
    None
  
[root@salt-master ~]# salt '*' file.mkdir /tmp/test1 /tmp/test2 /tmp/test3
  
salt-minion02.contoso.com:
  
    None
  
salt-minion01.contoso.com:
  
    None
  
[root@salt-master ~]# salt '*' file.mkdir /tmp/pfile/test
  
salt-minion01.contoso.com:
  
    None
  
salt-minion02.contoso.com:
  
    None
  19、file.move
  file.move:移动一个文件或目录。
[root@salt-master ~]# salt '*' file.move /tmp/pfile/test /tmp/salt01/  
salt-minion01.contoso.com:
  
    ----------
  
    comment:
  
        '/tmp/pfile/test' moved to '/tmp/salt01/'
  
    result:
  
        True
  
salt-minion02.contoso.com:
  
    ----------
  
    comment:
  
        '/tmp/pfile/test' moved to '/tmp/salt01/'
  
    result:
  
        True
  20、file.remove
  file.remove:删除文件。注意:该模块一次只能接受一个参数。
[root@salt-master ~]# salt '*' file.remove /tmp/dic1/  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  
[root@salt-master ~]# salt '*' file.remove /tmp/test1/
  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  21、file.rename
  file.rename:重命名一个文件或目录。
[root@salt-master ~]# salt '*' file.rename /tmp/salt1 /tmp/salt01  
salt-minion01.contoso.com:
  
    True
  
salt-minion02.contoso.com:
  
    True
  22、file.stats
  file.stats:返回包含指定文件状态的词典。
[root@salt-master ~]# salt 'salt-minion01.contoso.com' file.stats /etc/passwd  
salt-minion01.contoso.com:
  
    ----------
  
    atime:
  
        1496464651.48
  
    ctime:
  
        1489237646.83
  
    gid:
  
        0
  
    group:
  
        root
  
    inode:
  
        394628
  
    mode:
  
        0644
  
    mtime:
  
        1489237646.82
  
    size:
  
        1465
  
    target:
  
        /etc/passwd
  
    type:
  
        file
  
    uid:
  
        0
  
    user:
  
        root
  23、file.rmdir
  file.rmdir:删除指定目录,如果目录不为空则返回失败。
[root@salt-master ~]# salt '*' file.rmdir /tmp/salt01  
salt-minion02.contoso.com:
  
    Directory not empty
  
salt-minion01.contoso.com:
  
    Directory not empty
  
[root@salt-master ~]# salt '*' file.rmdir /tmp/salt
  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  24、file.search
  file.search:搜索pattern参数是否出现在指定文件中。
[root@salt-master ~]#  salt '*' file.search /etc/passwd 'nginx'  
salt-minion02.contoso.com:
  
    True
  
salt-minion01.contoso.com:
  
    True
  
[root@salt-master ~]#  salt '*' file.search /etc/passwd 'test'
  
salt-minion02.contoso.com:
  
    False
  
salt-minion01.contoso.com:
  
    False
  25、file.readdir
  file.readdir:返回包含一个目录内容的列表。
[root@salt-master ~]# salt '*' file.readdir /tmp/pfile  
salt-minion02.contoso.com:
  
    - .
  
    - ..
  
    - test
  
salt-minion01.contoso.com:
  
    - .
  
    - ..
  
    - test

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-543948-1-1.html 上篇帖子: saltstack模块之pkg相关模块 下篇帖子: saltstack模块之service及crond相关模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表