saltstack模块之file相关模块

1、file.access模块

file.access:测试salt进程是否有对指定文件的对应访问权限。

[[email protected] ~]# salt ‘*‘ file.access /etc/passwd f
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True
[[email protected] ~]# salt ‘*‘ file.access /etc/passwd r
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True
[[email protected] ~]# salt ‘*‘ file.access /etc/passwd w
salt-minion01.contoso.com:
    True
salt-minion02.contoso.com:
    True
[[email protected] ~]# salt ‘*‘ file.access /etc/passwd x
salt-minion02.contoso.com:
    False
salt-minion01.contoso.com:
    False

2、file.touch模块

file.touch:如果文件不存在创建文件,相当于touch file,如果文件存在就更新访问时间或者修改时间。

[[email protected] ~]# salt ‘*‘ file.touch /tmp/salt-test
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True

3、file.append模块

file.append:追加文字到文件的末尾。

[[email protected] ~]# 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"
[[email protected] ~]# 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"
[[email protected] ~]# 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:返回所给路径的最后一个部分。

[[email protected] ~]# salt ‘*‘ file.basename /tmp/sal-test
salt-minion02.contoso.com:
    sal-test
salt-minion01.contoso.com:
    sal-test

5、file.chgrp模块

file.chgrp:修改文件的属组。

[[email protected] ~]# salt ‘*‘ file.chgrp /tmp/testfile nginx
salt-minion01.contoso.com:
    None
salt-minion02.contoso.com:
    None
[[email protected] ~]# 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:修改文件的属主和属组。

[[email protected] ~]# salt ‘*‘ file.chown /tmp/testfile nginx nginx
salt-minion01.contoso.com:
    None
salt-minion02.contoso.com:
    None
[[email protected] ~]# 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选项会提前移除目标目录中的所有文件,然后再从源路径拷贝文件到目标路径。

[[email protected] ~]# salt ‘*‘ file.copy /etc/hosts /tmp/hosts
salt-minion01.contoso.com:
    True
salt-minion02.contoso.com:
    True
[[email protected] ~]# 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
[[email protected] ~]# salt ‘*‘ file.copy /var/spool/cron/ /tmp/ recurse=True
salt-minion01.contoso.com:
    True
salt-minion02.contoso.com:
    True
[[email protected] ~]# 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
[[email protected] ~]# salt ‘*‘ file.copy /var/spool/cron/ /tmp/ recurse=True remove_existing=True
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True
[[email protected] ~]# 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:返回指定路径的目录部分。

[[email protected] ~]# salt ‘*‘ file.dirname /etc/passwd
salt-minion01.contoso.com:
    /etc
salt-minion02.contoso.com:
    /etc

9、file.diskusage模块

file.diskusage:递归计算指定目录所占的磁盘空间并以字节为单位返回计算出的值。

[[email protected] ~]# 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。

[[email protected] ~]# salt ‘*‘ file.file_exists /etc/passwd
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True

11、file.find模块

file.find:返回指定搜索条件返回的文件路径,相当于Linux中的find命令,参数也兼容find命令。

[[email protected] ~]# 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
[[email protected] ~]# 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
[[email protected] ~]# 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。

[[email protected] ~]# salt ‘*‘ file.get_gid /etc/passwd
salt-minion02.contoso.com:
    0
salt-minion01.contoso.com:
    0

13、file.get_group模块

file.get_group:返回所给文件的属组。

[[email protected] ~]# salt ‘*‘ file.get_group /etc/passwd
salt-minion02.contoso.com:
    root
salt-minion01.contoso.com:
    root

14、file.get_uid模块

file.get_uid:返回所给文件的属主的id。

[[email protected] ~]# salt ‘*‘ file.get_uid /etc/passwd
salt-minion01.contoso.com:
    0
salt-minion02.contoso.com:
    0

15、file.get_user模块

file.get_user:返回所给文件的属主。

[[email protected] ~]# salt ‘*‘ file.get_user /etc/passwd
salt-minion02.contoso.com:
    root
salt-minion01.contoso.com:
    root

16、file.grep模块

file.grep:从指定文件中查找字符串,相当于Linux中的grep命令,参数也兼容grep命令。

[[email protected] ~]# 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
[[email protected] ~]# 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,但其实无法批量创建多个目录,如果传入多个参数默认只处理第一个参数。但是可以创建多级目录,即使上级目录不存在。

[[email protected] ~]# salt ‘*‘ file.makedirs /tmp/pfile
salt-minion01.contoso.com:
    Directory ‘/tmp‘ already exists
salt-minion02.contoso.com:
    Directory ‘/tmp‘ already exists
[[email protected] ~]# salt ‘*‘ file.makedirs /tmp/pfile/
salt-minion02.contoso.com:
    None
salt-minion01.contoso.com:
    None
[[email protected] ~]# 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
[[email protected] ~]# salt ‘*‘ file.makedirs /tmp/dic1/dic2/dic3/
salt-minion02.contoso.com:
    None
salt-minion01.contoso.com:
    None
[[email protected] ~]# 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不同的是,参数可以末尾不带“/”,也可以创建成功。另外,该模块支持批量创建多个目录,也支持创建多级目录。

[[email protected] ~]# salt ‘*‘ file.mkdir /tmp/salt
salt-minion02.contoso.com:
    None
salt-minion01.contoso.com:
    None
[[email protected] ~]# 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
[[email protected] ~]# salt ‘*‘ file.mkdir /tmp/salt1/slat2/salt3
salt-minion02.contoso.com:
    None
salt-minion01.contoso.com:
    None
[[email protected] ~]# salt ‘*‘ file.mkdir /tmp/test1 /tmp/test2 /tmp/test3
salt-minion02.contoso.com:
    None
salt-minion01.contoso.com:
    None
[[email protected] ~]# salt ‘*‘ file.mkdir /tmp/pfile/test
salt-minion01.contoso.com:
    None
salt-minion02.contoso.com:
    None

19、file.move模块

file.move:移动一个文件或目录。

[[email protected] ~]# 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:删除文件。注意:该模块一次只能接受一个参数。

[[email protected] ~]# salt ‘*‘ file.remove /tmp/dic1/
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True
[[email protected] ~]# salt ‘*‘ file.remove /tmp/test1/
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True

21、file.rename模块

file.rename:重命名一个文件或目录。

[[email protected] ~]# salt ‘*‘ file.rename /tmp/salt1 /tmp/salt01
salt-minion01.contoso.com:
    True
salt-minion02.contoso.com:
    True

22、file.stats模块

file.stats:返回包含指定文件状态的词典。

[[email protected] ~]# 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:删除指定目录,如果目录不为空则返回失败。

[[email protected] ~]# salt ‘*‘ file.rmdir /tmp/salt01
salt-minion02.contoso.com:
    Directory not empty
salt-minion01.contoso.com:
    Directory not empty
[[email protected] ~]# salt ‘*‘ file.rmdir /tmp/salt
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True

24、file.search模块

file.search:搜索pattern参数是否出现在指定文件中。

[[email protected] ~]#  salt ‘*‘ file.search /etc/passwd ‘nginx‘
salt-minion02.contoso.com:
    True
salt-minion01.contoso.com:
    True
[[email protected] ~]#  salt ‘*‘ file.search /etc/passwd ‘test‘
salt-minion02.contoso.com:
    False
salt-minion01.contoso.com:
    False

25、file.readdir模块

file.readdir:返回包含一个目录内容的列表。

[[email protected] ~]# salt ‘*‘ file.readdir /tmp/pfile
salt-minion02.contoso.com:
    - .
    - ..
    - test
salt-minion01.contoso.com:
    - .
    - ..
    - test
时间: 2024-10-11 05:03:25

saltstack模块之file相关模块的相关文章

saltstack模块之pkg相关模块

1.pkg.available_version模块 pkg.available_version: 返回所查询软件包可供安装或更新的最新版本.如果指定多个软件包,则以字典的形式输出返回结果. [[email protected] ~]# salt '*' pkg.available_version httpd salt-minion02.contoso.com:     2.2.15-59.el6.centos salt-minion01.contoso.com:     2.2.15-59.el

saltstack使用指南----常用执行模块

saltstack常用执行模块: cron模块 archive模块 cmd模块 cp模块 dnsutil模块 file模块 group模块 network模块 service模块 pkg模块 user模块 一.cron模块: 功能:实现被控主机的crontab操作 [[email protected] ~]# salt '*' sys.list_functions cron izwz9f8xrvty50quc2gq50z: - cron.list_tab - cron.ls - cron.raw

ansible 软件相关模块,剧本

软件相关模块 yum rpm和yum的区别 rpm:redhat package manager yum 可以解决依赖关系 yum 源配置 使用yum下载时需要先下载epel [epel] name=Extra Packages for Enterprise Linux 7 - $basearch #名字 baseurl=http://mirrors.aliyun.com/epel/7/$basearch #rpm源的地址,可以写http,https,ftp,Samba,file: failov

ansible 软件相关模块

一 yum 模块 1.yum配置源(/etc/yum.repos.d/epel.repo) 1 [epel] 2 name=Extra Packages for Enterprise Linux 7 - $basearch #名字 3 baseurl=http://mirrors.aliyun.com/epel/7/$basearch #rpm源的地址,可以写http,https,ftp,Samba,file: 4 failovermethod=priority 5 enabled=1 # 是否

JavaWeb网上图书商城完整项目--21.用户模块各层相关类的创建

1.现在要为user用户模块创建类 用户模块功能包括:注册.激活.登录.退出.修改密码. User类对照着t_user表来写即可.我们要保证User类的属性名称与t_user表的列名称完全相同. 我们来创建User类 package com.weiyuan.goods.user.domian; public class User { private String uid; //主键 private String loginname;// 登陆名称 private String loginpass

2、NS3-目录结构和相关模块

Waf是基于Python开发的编译工具,ns-3系统本身和将要写的仿真代码都由waf负责编译运行. Scratch目录一般存放用户脚本文件,也可以把要运行的例子拷贝到该目录下. Example是ns-3提供的关于如何使用ns-3的例子,包含许多模块的使用. Doc目录是帮助文档,可以使用./waf --doxygen编译本地Doxygen文档. Build目录是ns-3编译目录,包含编译文件时使用的共享库和头文件(build/ns3). Src是ns-3源码目录. 模块里面的wscript文件结

perl File::Spec 模块

File::Spec 模块提供了很多的功能,这里只列举几个常用的函数 rel2abs : 返回一个文件的绝对路径, 常见用法,返回当前运行的perl脚本的绝对路径 代码示例: my $prog = File::Spec->rel2abs( __FILE__ ); 其中 __FILE__ 是一个内置变量,代表当前脚本: splitpath : 将文件的路径进行分割,返回值为一个长度为3的列表,第一个元素为该文件,第二个元素为该文件所处的目录,第三个元素为该文件的名字 代码示例: my $prog

Puppet模块(三):puppet模块及file资源

作用:通过puppet模块自动控制客户端的puppet配置,当需要修改客户端的puppet配置时不用在客户端一一设置. 1.服务端配置puppet模块 (1)模块清单 [[email protected] ~]# tree /etc/puppet/modules/puppet/ /etc/puppet/modules/puppet/ ├── files ├── manifests │   ├── config.pp │   ├── init.pp │   ├── install.pp │   ├

Ansible 命令相关模块command, shell, raw, expect, script, telnet[转]

本文主要介绍Ansible的几个命令模块,包括: command - 在远程节点上执行命令 shell - 让远程主机在shell进程下执行命令 script - 将本地script传送到远程主机之后执行 raw - 执行低级的和脏的SSH命令 expect - 执行命令并响应提示 telnet - 执行低级的和脏的telnet命令 command模块 简介 command模块用于在给的的节点上运行系统命令,比如echo hello. 它不会通过shell处理命令,因此不支持像$HOME这样的变