1. 程式人生 > >saltstack模塊之file相關模塊

saltstack模塊之file相關模塊

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


本文出自 “IT小二郎” 博客,請務必保留此出處http://jerry12356.blog.51cto.com/4308715/1932044

saltstack模塊之file相關模塊