zoukankan      html  css  js  c++  java
  • Saltstack module file 详解

    file.apply_template_on_contents

    Return the contents after applying the templating engine
    
    contents
        template string
    
    template
        template format
    
    context
        Overrides default context variables passed to the template.
    
    defaults
        Default context passed to the template.
    
    CLI Example:
    
        salt '*' file.apply_template_on_contents 
            contents='This is a {{ template }} string.' 
            template=jinja 
            "context={}" "defaults={'template': 'cool'}" 
            saltenv=base
    

    file.get_mode

    Return the mode of a file
    
    path
        file or directory of which to get the mode
    
    follow_symlinks
        indicated if symlinks should be followed
    
    CLI Example:
    
        salt '*' file.get_mode /etc/passwd
    
    Changed in version 2014.1.0
        ``follow_symlinks`` option added
    

    file.restorecon

    Reset the SELinux context on a given path
    
    CLI Example:
    
         salt '*' file.restorecon /home/user/.ssh/authorized_keys
    

    file.normpath

    Returns Normalize path, eliminating double slashes, etc.
    
    New in version 2015.5.0
    
    This can be useful at the CLI but is frequently useful when scripting.
    
        {%- from salt['file.normpath'](tpldir + '/../vars.jinja') import parent_vars %}
    
    CLI Example:
    
        salt '*' file.normpath 'a/b/c/..'
    

    file.readlink

    New in version 2014.1.0
    
    Return the path that a symlink points to
    If canonicalize is set to True, then it return the final target
    
    CLI Example:
    
        salt '*' file.readlink /path/to/link
    

    file.uncomment

    .. deprecated:: 0.17.0
       Use :py:func:`~salt.modules.file.replace` instead.
    
    Uncomment specified commented lines in a file
    
    path
        The full path to the file to be edited
    regex
        A regular expression used to find the lines that are to be uncommented.
        This regex should not include the comment character. A leading ``^``
        character will be stripped for convenience (for easily switching
        between comment() and uncomment()).
    char: ``#``
        The character to remove in order to uncomment a line
    backup: ``.bak``
        The file will be backed up before edit with this file extension;
        **WARNING:** each time ``sed``/``comment``/``uncomment`` is called will
        overwrite this backup
    
    CLI Example:
    
        salt '*' file.uncomment /etc/hosts.deny 'ALL: PARANOID'
    

    file.delete_backup

    New in version 0.17.0
    
    Delete a previous version of a file that was backed up using Salt's
    :ref:`file state backup <file-state-backups>` system.
    
    path
        The path on the minion to check for backups
    backup_id
        The numeric id for the backup you wish to delete, as found using
        :mod:`file.list_backups <salt.modules.file.list_backups>`
    
    CLI Example:
    
        salt '*' file.delete_backup /var/cache/salt/minion/file_backup/home/foo/bar/baz.txt 0
    

    file.file_exists

    Tests to see if path is a valid file.  Returns True/False.
    
    CLI Example:
    
        salt '*' file.file_exists /etc/passwd
    

    file.lsattr

    New in version 2018.3.0
    Changed in version 2018.3.1
        If ``lsattr`` is not installed on the system, ``None`` is returned.
    Changed in version 2018.3.4
        If on ``AIX``, ``None`` is returned even if in filesystem as lsattr on ``AIX``
        is not the same thing as the linux version.
    
    Obtain the modifiable attributes of the given file. If path
    is to a directory, an empty list is returned.
    
    path
        path to file to obtain attributes of. File/directory must exist.
    
    CLI Example:
    
        salt '*' file.lsattr foo1.txt
    

    file.check_managed

    Check to see what changes need to be made for a file
    
    CLI Example:
    
        salt '*' file.check_managed /etc/httpd/conf.d/httpd.conf salt://http/httpd.conf '{hash_type: 'md5', 'hsum': <md5sum>}' root, root, '755' jinja True None None base
    

    file.replace

    New in version 0.17.0
    
    Replace occurrences of a pattern in a file. If ``show_changes`` is
    ``True``, then a diff of what changed will be returned, otherwise a
    ``True`` will be returned when changes are made, and ``False`` when
    no changes are made.
    
    This is a pure Python implementation that wraps Python's :py:func:`~re.sub`.
    
    path
        Filesystem path to the file to be edited. If a symlink is specified, it
        will be resolved to its target.
    
    pattern
        A regular expression, to be matched using Python's
        :py:func:`~re.search`.
    
    repl
        The replacement text
    
    count: 0
        Maximum number of pattern occurrences to be replaced. If count is a
        positive integer ``n``, only ``n`` occurrences will be replaced,
        otherwise all occurrences will be replaced.
    
    flags (list or int)
        A list of flags defined in the ``re`` module documentation from the
        Python standard library. Each list item should be a string that will
        correlate to the human-friendly flag name. E.g., ``['IGNORECASE',
        'MULTILINE']``. Optionally, ``flags`` may be an int, with a value
        corresponding to the XOR (``|``) of all the desired flags. Defaults to
        8 (which supports 'MULTILINE').
    
    bufsize (int or str)
        How much of the file to buffer into memory at once. The
        default value ``1`` processes one line at a time. The special value
        ``file`` may be specified which will read the entire file into memory
        before processing.
    
    append_if_not_found: False
        New in version 2014.7.0
    
        If set to ``True``, and pattern is not found, then the content will be
        appended to the file.
    
    prepend_if_not_found: False
        New in version 2014.7.0
    
        If set to ``True`` and pattern is not found, then the content will be
        prepended to the file.
    
    not_found_content
        New in version 2014.7.0
    
        Content to use for append/prepend if not found. If None (default), uses
        ``repl``. Useful when ``repl`` uses references to group in pattern.
    
    backup: .bak
        The file extension to use for a backup of the file before editing. Set
        to ``False`` to skip making a backup.
    
    dry_run: False
        If set to ``True``, no changes will be made to the file, the function
        will just return the changes that would have been made (or a
        ``True``/``False`` value if ``show_changes`` is set to ``False``).
    
    search_only: False
        If set to true, this no changes will be performed on the file, and this
        function will simply return ``True`` if the pattern was matched, and
        ``False`` if not.
    
    show_changes: True
        If ``True``, return a diff of changes made. Otherwise, return ``True``
        if changes were made, and ``False`` if not.
    
        Note:
            Using this option will store two copies of the file in memory (the
            original version and the edited version) in order to generate the
            diff. This may not normally be a concern, but could impact
            performance if used with large files.
    
    ignore_if_missing: False
        New in version 2015.8.0
    
        If set to ``True``, this function will simply return ``False``
        if the file doesn't exist. Otherwise, an error will be thrown.
    
    preserve_inode: True
        New in version 2015.8.0
    
        Preserve the inode of the file, so that any hard links continue to
        share the inode with the original filename. This works by *copying* the
        file, reading from the copy, and writing to the file at the original
        inode. If ``False``, the file will be *moved* rather than copied, and a
        new file will be written to a new inode, but using the original
        filename. Hard links will then share an inode with the backup, instead
        (if using ``backup`` to create a backup copy).
    
    backslash_literal: False
        New in version 2016.11.7
    
        Interpret backslashes as literal backslashes for the repl and not
        escape characters.  This will help when using append/prepend so that
        the backslashes are not interpreted for the repl on the second run of
        the state.
    
    If an equal sign (``=``) appears in an argument to a Salt command it is
    interpreted as a keyword argument in the format ``key=val``. That
    processing can be bypassed in order to pass an equal sign through to the
    remote shell command by manually specifying the kwarg:
    
        salt '*' file.replace /path/to/file pattern='=' repl=':'
        salt '*' file.replace /path/to/file pattern="bind-addresss*=" repl='bind-address:'
    
    CLI Examples:
    
        salt '*' file.replace /etc/httpd/httpd.conf pattern='LogLevel warn' repl='LogLevel info'
        salt '*' file.replace /some/file pattern='before' repl='after' flags='[MULTILINE, IGNORECASE]'
    

    file.manage_file

    Checks the destination against what was retrieved with get_managed and
    makes the appropriate modifications (if necessary).
    
    name
        location to place the file
    
    sfn
        location of cached file on the minion
    
        This is the path to the file stored on the minion. This file is placed
        on the minion using cp.cache_file.  If the hash sum of that file
        matches the source_sum, we do not transfer the file to the minion
        again.
    
        This file is then grabbed and if it has template set, it renders the
        file to be placed into the correct place on the system using
        salt.files.utils.copyfile()
    
    ret
        The initial state return data structure. Pass in ``None`` to use the
        default structure.
    
    source
        file reference on the master
    
    source_sum
        sum hash for source
    
    user
        user owner
    
    group
        group owner
    
    backup
        backup_mode
    
    attrs
        attributes to be set on file: '' means remove all of them
    
        New in version 2018.3.0
    
    makedirs
        make directories if they do not exist
    
    template
        format of templating
    
    show_changes
        Include diff in state return
    
    contents:
        contents to be placed in the file
    
    dir_mode
        mode for directories created with makedirs
    
    skip_verify: False
        If ``True``, hash verification of remote file sources (``http://``,
        ``https://``, ``ftp://``) will be skipped, and the ``source_hash``
        argument will be ignored.
    
        New in version 2016.3.0
    
    keep_mode: False
        If ``True``, and the ``source`` is a file from the Salt fileserver (or
        a local file on the minion), the mode of the destination file will be
        set to the mode of the source file.
    
        Note: keep_mode does not work with salt-ssh.
    
            As a consequence of how the files are transferred to the minion, and
            the inability to connect back to the master with salt-ssh, salt is
            unable to stat the file as it exists on the fileserver and thus
            cannot mirror the mode on the salt-ssh minion
    
    encoding
        If specified, then the specified encoding will be used. Otherwise, the
        file will be encoded using the system locale (usually UTF-8). See
        https://docs.python.org/3/library/codecs.html#standard-encodings for
        the list of available encodings.
    
        New in version 2017.7.0
    
    encoding_errors: 'strict'
        Default is ```'strict'```.
        See https://docs.python.org/2/library/codecs.html#codec-base-classes
        for the error handling schemes.
    
        New in version 2017.7.0
    
    CLI Example:
    
        salt '*' file.manage_file /etc/httpd/conf.d/httpd.conf '' '{}' salt://http/httpd.conf '{hash_type: 'md5', 'hsum': <md5sum>}' root root '755' '' base ''
    
    Changed in version 2014.7.0
        ``follow_symlinks`` option added
    

    file.chattr

    New in version 2018.3.0
    
    Change the attributes of files. This function accepts one or more files and
    the following options:
    
    operator
        Can be wither ``add`` or ``remove``. Determines whether attributes
        should be added or removed from files
    
    attributes
        One or more of the following characters: ``aAcCdDeijPsStTu``,
        representing attributes to add to/remove from files
    
    version
        a version number to assign to the file(s)
    
    flags
        One or more of the following characters: ``RVf``, representing
        flags to assign to chattr (recurse, verbose, suppress most errors)
    
    CLI Example:
    
        salt '*' file.chattr foo1.txt foo2.txt operator=add attributes=ai
        salt '*' file.chattr foo3.txt operator=remove attributes=i version=2
    

    file.get_sum

    Return the checksum for the given file. The following checksum algorithms
    are supported:
    
    * md5
    * sha1
    * sha224
    * sha256 **(default)**
    * sha384
    * sha512
    
    path
        path to the file or directory
    
    form
        desired sum format
    
    CLI Example:
    
        salt '*' file.get_sum /etc/passwd sha512
    

    file.get_uid

    Return the id of the user that owns a given file
    
    path
        file or directory of which to get the uid
    
    follow_symlinks
        indicated if symlinks should be followed
    
    CLI Example:
    
        salt '*' file.get_uid /etc/passwd
    
    Changed in version 0.16.4
        ``follow_symlinks`` option added
    

    file.prepend

    New in version 2014.7.0
    
    Prepend text to the beginning of a file
    
    path
        path to file
    
    `*args`
        strings to prepend to the file
    
    CLI Example:
    
        salt '*' file.prepend /etc/motd 
                "With all thine offerings thou shalt offer salt." 
                "Salt is what makes things taste bad when it isn't in them."
    
    .. admonition:: Attention
    
        If you need to pass a string to append and that string contains
        an equal sign, you **must** include the argument name, args.
        For example:
    
            salt '*' file.prepend /etc/motd args='cheese=spam'
    
            salt '*' file.prepend /etc/motd args="['cheese=spam','spam=cheese']"
    

    file.move

    Move a file or directory
    
    CLI Example:
    
        salt '*' file.move /path/to/src /path/to/dst
    

    file.set_selinux_context

    Set a specific SELinux label on a given path
    
    CLI Example:
    
        salt '*' file.set_selinux_context path <user> <role> <type> <range>
        salt '*' file.set_selinux_context /etc/yum.repos.d/epel.repo system_u object_r system_conf_t s0
    

    file.get_managed

    Return the managed file data for file.managed
    
    name
        location where the file lives on the server
    
    template
        template format
    
    source
        managed source file
    
    source_hash
        hash of the source file
    
    source_hash_name
        When ``source_hash`` refers to a remote file, this specifies the
        filename to look for in that file.
    
        New in version 2016.3.5
    
    user
        Owner of file
    
    group
        Group owner of file
    
    mode
        Permissions of file
    
    attrs
        Attributes of file
    
        New in version 2018.3.0
    
    context
        Variables to add to the template context
    
    defaults
        Default values of for context_dict
    
    skip_verify
        If ``True``, hash verification of remote file sources (``http://``,
        ``https://``, ``ftp://``) will be skipped, and the ``source_hash``
        argument will be ignored.
    
        New in version 2016.3.0
    
    CLI Example:
    
        salt '*' file.get_managed /etc/httpd/conf.d/httpd.conf jinja salt://http/httpd.conf '{hash_type: 'md5', 'hsum': <md5sum>}' None root root '755' base None None
    

    file.statvfs

    New in version 2014.1.0
    
    Perform a statvfs call against the filesystem that the file resides on
    
    CLI Example:
    
        salt '*' file.statvfs /path/to/file
    

    file.mknod_blkdev

    New in version 0.17.0
    
    Create a block device.
    
    CLI Example:
    
       salt '*' file.mknod_blkdev /dev/blk 8 999
    

    file.truncate

    New in version 2014.1.0
    
    Seek to a position on a file and delete everything after that point
    
    path
        path to file
    
    length
        offset into file to truncate
    
    CLI Example:
    
        salt '*' file.truncate /path/to/file 512
    

    file.extract_hash

    Changed in version 2016.3.5
        Prior to this version, only the ``file_name`` argument was considered
        for filename matches in the hash file. This would be problematic for
        cases in which the user was relying on a remote checksum file that they
        do not control, and they wished to use a different name for that file
        on the minion from the filename on the remote server (and in the
        checksum file). For example, managing ``/tmp/myfile.tar.gz`` when the
        remote file was at ``https://mydomain.tld/different_name.tar.gz``. The
        :py:func:`file.managed <salt.states.file.managed>` state now also
        passes this function the source URI as well as the ``source_hash_name``
        (if specified). In cases where ``source_hash_name`` is specified, it
        takes precedence over both the ``file_name`` and ``source``. When it is
        not specified, ``file_name`` takes precedence over ``source``. This
        allows for better capability for matching hashes.
    Changed in version 2016.11.0
        File name and source URI matches are no longer disregarded when
        ``source_hash_name`` is specified. They will be used as fallback
        matches if there is no match to the ``source_hash_name`` value.
    
    This routine is called from the :mod:`file.managed
    <salt.states.file.managed>` state to pull a hash from a remote file.
    Regular expressions are used line by line on the ``source_hash`` file, to
    find a potential candidate of the indicated hash type. This avoids many
    problems of arbitrary file layout rules. It specifically permits pulling
    hash codes from debian ``*.dsc`` files.
    
    If no exact match of a hash and filename are found, then the first hash
    found (if any) will be returned. If no hashes at all are found, then
    ``None`` will be returned.
    
    For example:
    
        openerp_7.0-latest-1.tar.gz:
          file.managed:
            - name: /tmp/openerp_7.0-20121227-075624-1_all.deb
            - source: http://nightly.openerp.com/7.0/nightly/deb/openerp_7.0-20121227-075624-1.tar.gz
            - source_hash: http://nightly.openerp.com/7.0/nightly/deb/openerp_7.0-20121227-075624-1.dsc
    
    CLI Example:
    
        salt '*' file.extract_hash /path/to/hash/file sha512 /etc/foo
    

    file.gid_to_group

    Convert the group id to the group name on this system
    
    gid
        gid to convert to a group name
    
    CLI Example:
    
        salt '*' file.gid_to_group 0
    

    file.list_backup

    This function is an alias of list_backups.

    New in version 0.17.0
    
    Lists the previous versions of a file backed up using Salt's :ref:`file
    state backup <file-state-backups>` system.
    
    path
        The path on the minion to check for backups
    limit
        Limit the number of results to the most recent N backups
    
    CLI Example:
    
        salt '*' file.list_backups /foo/bar/baz.txt
    

    file.write

    New in version 2014.7.0
    
    Write text to a file, overwriting any existing contents.
    
    path
        path to file
    
    `*args`
        strings to write to the file
    
    CLI Example:
    
        salt '*' file.write /etc/motd 
                "With all thine offerings thou shalt offer salt."
    
    .. admonition:: Attention
    
        If you need to pass a string to append and that string contains
        an equal sign, you **must** include the argument name, args.
        For example:
    
            salt '*' file.write /etc/motd args='cheese=spam'
    
            salt '*' file.write /etc/motd args="['cheese=spam','spam=cheese']"
    

    file.sed_contains

    .. deprecated:: 0.17.0
       Use :func:`search` instead.
    
    Return True if the file at ``path`` contains ``text``. Utilizes sed to
    perform the search (line-wise search).
    
    Note: the ``p`` flag will be added to any flags you pass in.
    
    CLI Example:
    
        salt '*' file.contains /etc/crontab 'mymaintenance.sh'
    

    file.check_perms

    Check the permissions on files, modify attributes and chown if needed. File
    attributes are only verified if lsattr(1) is installed.
    
    CLI Example:
    
        salt '*' file.check_perms /etc/sudoers '{}' root root 400 ai
    
    Changed in version 2014.1.3
        ``follow_symlinks`` option added
    

    file.comment

    .. deprecated:: 0.17.0
       Use :py:func:`~salt.modules.file.replace` instead.
    
    Comment out specified lines in a file
    
    path
        The full path to the file to be edited
    regex
        A regular expression used to find the lines that are to be commented;
        this pattern will be wrapped in parenthesis and will move any
        preceding/trailing ``^`` or ``$`` characters outside the parenthesis
        (e.g., the pattern ``^foo$`` will be rewritten as ``^(foo)$``)
    char: ``#``
        The character to be inserted at the beginning of a line in order to
        comment it out
    backup: ``.bak``
        The file will be backed up before edit with this file extension
    
        Warning:
    
            This backup will be overwritten each time ``sed`` / ``comment`` /
            ``uncomment`` is called. Meaning the backup will only be useful
            after the first invocation.
    
    CLI Example:
    
        salt '*' file.comment /etc/modules pcspkr
    

    file.dirname

    Returns the directory component of a pathname
    
    New in version 2015.5.0
    
    This can be useful at the CLI but is frequently useful when scripting.
    
        {%- from salt['file.dirname'](tpldir) + '/vars.jinja' import parent_vars %}
    
    CLI Example:
    
        salt '*' file.dirname 'test/path/filename.config'
    

    file.directory_exists

    Tests to see if path is a valid directory.  Returns True/False.
    
    CLI Example:
    
        salt '*' file.directory_exists /etc
    

    file.makedirs

    Ensure that the directory containing this path is available.
    
    Note:
    
        The path must end with a trailing slash otherwise the directory/directories
        will be created up to the parent directory. For example if path is
        ``/opt/code``, then it would be treated as ``/opt/`` but if the path
        ends with a trailing slash like ``/opt/code/``, then it would be
        treated as ``/opt/code/``.
    
    CLI Example:
    
        salt '*' file.makedirs /opt/code/
    

    file.append

    New in version 0.9.5
    
    Append text to the end of a file
    
    path
        path to file
    
    `*args`
        strings to append to file
    
    CLI Example:
    
        salt '*' file.append /etc/motd 
                "With all thine offerings thou shalt offer salt." 
                "Salt is what makes things taste bad when it isn't in them."
    
    .. admonition:: Attention
    
        If you need to pass a string to append and that string contains
        an equal sign, you **must** include the argument name, args.
        For example:
    
            salt '*' file.append /etc/motd args='cheese=spam'
    
            salt '*' file.append /etc/motd args="['cheese=spam','spam=cheese']"
    

    file.mknod

    New in version 0.17.0
    
    Create a block device, character device, or fifo pipe.
    Identical to the gnu mknod.
    
    CLI Examples:
    
        salt '*' file.mknod /dev/chr c 180 31
        salt '*' file.mknod /dev/blk b 8 999
        salt '*' file.nknod /dev/fifo p
    

    file.is_chrdev

    Check if a file exists and is a character device.
    
    CLI Example:
    
       salt '*' file.is_chrdev /dev/chr
    

    file.group_to_gid

    Convert the group to the gid on this system
    
    group
        group to convert to its gid
    
    CLI Example:
    
        salt '*' file.group_to_gid root
    

    file.is_blkdev

    Check if a file exists and is a block device.
    
    CLI Example:
    
       salt '*' file.is_blkdev /dev/blk
    

    file.symlink

    Create a symbolic link (symlink, soft link) to a file
    
    CLI Example:
    
        salt '*' file.symlink /path/to/file /path/to/link
    

    file.list_backups

    New in version 0.17.0
    
    Lists the previous versions of a file backed up using Salt's :ref:`file
    state backup <file-state-backups>` system.
    
    path
        The path on the minion to check for backups
    limit
        Limit the number of results to the most recent N backups
    
    CLI Example:
    
        salt '*' file.list_backups /foo/bar/baz.txt
    

    file.get_group

    Return the group that owns a given file
    
    path
        file or directory of which to get the group
    
    follow_symlinks
        indicated if symlinks should be followed
    
    CLI Example:
    
        salt '*' file.get_group /etc/passwd
    
    Changed in version 0.16.4
        ``follow_symlinks`` option added
    

    file.join

    Return a normalized file system path for the underlying OS
    
    New in version 2014.7.0
    
    This can be useful at the CLI but is frequently useful when scripting
    combining path variables:
    
        {% set www_root = '/var' %}
        {% set app_dir = 'myapp' %}
    
        myapp_config:
          file:
            - managed
            - name: {{ salt['file.join'](www_root, app_dir, 'config.yaml') }}
    
    CLI Example:
    
        salt '*' file.join '/' 'usr' 'local' 'bin'
    

    file.contains

    .. deprecated:: 0.17.0
       Use :func:`search` instead.
    
    Return ``True`` if the file at ``path`` contains ``text``
    
    CLI Example:
    
        salt '*' file.contains /etc/crontab 'mymaintenance.sh'
    

    file.search

    New in version 0.17.0
    
    Search for occurrences of a pattern in a file
    
    Except for multiline, params are identical to
    :py:func:`~salt.modules.file.replace`.
    
    multiline
        If true, inserts 'MULTILINE' into ``flags`` and sets ``bufsize`` to
        'file'.
    
        New in version 2015.8.0
    
    CLI Example:
    
        salt '*' file.search /etc/crontab 'mymaintenance.sh'
    

    file.mkdir

    Ensure that a directory is available.
    
    CLI Example:
    
        salt '*' file.mkdir /opt/jetty/context
    

    file.uid_to_user

    Convert a uid to a user name
    
    uid
        uid to convert to a username
    
    CLI Example:
    
        salt '*' file.uid_to_user 0
    

    file.path_exists_glob

    Tests to see if path after expansion is a valid path (file or directory).
    Expansion allows usage of ? * and character ranges []. Tilde expansion
    is not supported. Returns True/False.
    
    New in version 2014.7.0
    
    CLI Example:
    
        salt '*' file.path_exists_glob /etc/pam*/pass*
    

    file.mknod_chrdev

    New in version 0.17.0
    
    Create a character device.
    
    CLI Example:
    
       salt '*' file.mknod_chrdev /dev/chr 180 31
    

    file.access

    New in version 2014.1.0
    
    Test whether the Salt process has the specified access to the file. One of
    the following modes must be specified:
    
    .. code-block::text
    
        f: Test the existence of the path
        r: Test the readability of the path
        w: Test the writability of the path
        x: Test whether the path can be executed
    
    CLI Example:
    
        salt '*' file.access /path/to/file f
        salt '*' file.access /path/to/file x
    

    file.patch

    New in version 0.10.4
    
    Apply a patch to a file or directory.
    
    Equivalent to:
    
        patch <options> -i <patchfile> <originalfile>
    
    Or, when a directory is patched:
    
        patch <options> -i <patchfile> -d <originalfile> -p0
    
    originalfile
        The full path to the file or directory to be patched
    patchfile
        A patch file to apply to ``originalfile``
    options
        Options to pass to patch.
    
    CLI Example:
    
        salt '*' file.patch /opt/file.txt /tmp/file.txt.patch
    

    file.is_hardlink

    Check if the path is a hard link by verifying that the number of links
    is larger than 1
    
    CLI Example:
    
       salt '*' file.is_hardlink /path/to/link
    

    file.read

    New in version 2017.7.0
    
    Return the content of the file.
    
    CLI Example:
    
        salt '*' file.read /path/to/file
    

    file.grep

    Grep for a string in the specified file
    
    Note:
        This function's return value is slated for refinement in future
        versions of Salt
    
    path
        Path to the file to be searched
    
        Note:
            Globbing is supported (i.e. ``/var/log/foo/*.log``, but if globbing
            is being used then the path should be quoted to keep the shell from
            attempting to expand the glob expression.
    
    pattern
        Pattern to match. For example: ``test``, or ``a[0-5]``
    
    opts
        Additional command-line flags to pass to the grep command. For example:
        ``-v``, or ``-i -B2``
    
        Note:
            The options should come after a double-dash (as shown in the
            examples below) to keep Salt's own argument parser from
            interpreting them.
    
    CLI Example:
    
        salt '*' file.grep /etc/passwd nobody
        salt '*' file.grep /etc/sysconfig/network-scripts/ifcfg-eth0 ipaddr -- -i
        salt '*' file.grep /etc/sysconfig/network-scripts/ifcfg-eth0 ipaddr -- -i -B2
        salt '*' file.grep "/etc/sysconfig/network-scripts/*" ipaddr -- -i -l
    

    file.seek_write

    New in version 2014.1.0
    
    Seek to a position on a file and write to it
    
    path
        path to file
    
    data
        data to write to file
    
    offset
        position in file to start writing
    
    CLI Example:
    
        salt '*' file.seek_write /path/to/file 'some data' 4096
    

    file.diskusage

    Recursively calculate disk usage of path and return it
    in bytes
    
    CLI Example:
    
        salt '*' file.diskusage /path/to/check
    

    file.open_files

    Return a list of all physical open files on the system.
    
    CLI Examples:
    
        salt '*' file.open_files
        salt '*' file.open_files by_pid=True
    

    file.find

    Approximate the Unix ``find(1)`` command and return a list of paths that
    meet the specified criteria.
    
    The options include match criteria:
    
        name    = path-glob                 # case sensitive
        iname   = path-glob                 # case insensitive
        regex   = path-regex                # case sensitive
        iregex  = path-regex                # case insensitive
        type    = file-types                # match any listed type
        user    = users                     # match any listed user
        group   = groups                    # match any listed group
        size    = [+-]number[size-unit]     # default unit = byte
        mtime   = interval                  # modified since date
        grep    = regex                     # search file contents
    
    and/or actions:
    
        delete [= file-types]               # default type = 'f'
        exec    = command [arg ...]         # where {} is replaced by pathname
        print  [= print-opts]
    
    and/or depth criteria:
    
        maxdepth = maximum depth to transverse in path
        mindepth = minimum depth to transverse before checking files or directories
    
    The default action is ``print=path``
    
    ``path-glob``:
    
        *                = match zero or more chars
        ?                = match any char
        [abc]            = match a, b, or c
        [!abc] or [^abc] = match anything except a, b, and c
        [x-y]            = match chars x through y
        [!x-y] or [^x-y] = match anything except chars x through y
        {a,b,c}          = match a or b or c
    
    ``path-regex``: a Python Regex (regular expression) pattern to match pathnames
    
    ``file-types``: a string of one or more of the following:
    
        a: all file types
        b: block device
        c: character device
        d: directory
        p: FIFO (named pipe)
        f: plain file
        l: symlink
        s: socket
    
    ``users``: a space and/or comma separated list of user names and/or uids
    
    ``groups``: a space and/or comma separated list of group names and/or gids
    
    ``size-unit``:
    
        b: bytes
        k: kilobytes
        m: megabytes
        g: gigabytes
        t: terabytes
    
    interval:
    
        [<num>w] [<num>d] [<num>h] [<num>m] [<num>s]
    
        where:
            w: week
            d: day
            h: hour
            m: minute
            s: second
    
    print-opts: a comma and/or space separated list of one or more of the
    following:
    
        group: group name
        md5:   MD5 digest of file contents
        mode:  file permissions (as integer)
        mtime: last modification time (as time_t)
        name:  file basename
        path:  file absolute path
        size:  file size in bytes
        type:  file type
        user:  user name
    
    CLI Examples:
    
        salt '*' file.find / type=f name=*.bak size=+10m
        salt '*' file.find /var mtime=+30d size=+10m print=path,size,mtime
        salt '*' file.find /var/log name=*.[0-9] mtime=+30d size=+10m delete
    

    file.check_hash

    Check if a file matches the given hash string
    
    Returns ``True`` if the hash matches, otherwise ``False``.
    
    path
        Path to a file local to the minion.
    
    hash
        The hash to check against the file specified in the ``path`` argument.
    
        Changed in version 2016.11.4
    
        For this and newer versions the hash can be specified without an
        accompanying hash type (e.g. ``e138491e9d5b97023cea823fe17bac22``),
        but for earlier releases it is necessary to also specify the hash type
        in the format ``<hash_type>=<hash_value>`` (e.g.
        ``md5=e138491e9d5b97023cea823fe17bac22``).
    
    CLI Example:
    
        salt '*' file.check_hash /etc/fstab e138491e9d5b97023cea823fe17bac22
        salt '*' file.check_hash /etc/fstab md5=e138491e9d5b97023cea823fe17bac22
    

    file.makedirs_perms

    Taken and modified from os.makedirs to set user, group and mode for each
    directory created.
    
    CLI Example:
    
        salt '*' file.makedirs_perms /opt/code
    

    file.get_selinux_context

    Get an SELinux context from a given path
    
    CLI Example:
    
        salt '*' file.get_selinux_context /etc/hosts
    

    file.seek_read

    New in version 2014.1.0
    
    Seek to a position on a file and read it
    
    path
        path to file
    
    seek
        amount to read at once
    
    offset
        offset to start into the file
    
    CLI Example:
    
        salt '*' file.seek_read /path/to/file 4096 0
    

    file.comment_line

    Comment or Uncomment a line in a text file.
    
    :param path: string
        The full path to the text file.
    
    :param regex: string
        A regex expression that begins with ``^`` that will find the line you wish
        to comment. Can be as simple as ``^color =``
    
    :param char: string
        The character used to comment a line in the type of file you're referencing.
        Default is ``#``
    
    :param cmnt: boolean
        True to comment the line. False to uncomment the line. Default is True.
    
    :param backup: string
        The file extension to give the backup file. Default is ``.bak``
        Set to False/None to not keep a backup.
    
    :return: boolean
        Returns True if successful, False if not
    
    CLI Example:
    
    The following example will comment out the ``pcspkr`` line in the
    ``/etc/modules`` file using the default ``#`` character and create a backup
    file named ``modules.bak``
    
        salt '*' file.comment_line '/etc/modules' '^pcspkr'
    
    
    CLI Example:
    
    The following example will uncomment the ``log_level`` setting in ``minion``
    config file if it is set to either ``warning``, ``info``, or ``debug`` using
    the ``#`` character and create a backup file named ``minion.bk``
    
        salt '*' file.comment_line 'C:saltconfminion' '^log_level: (warning|info|debug)' '#' False '.bk'
    

    file.chgrp

    Change the group of a file
    
    path
        path to the file or directory
    
    group
        group owner
    
    CLI Example:
    
        salt '*' file.chgrp /etc/passwd root
    

    file.basename

    Returns the final component of a pathname
    
    New in version 2015.5.0
    
    This can be useful at the CLI but is frequently useful when scripting.
    
        {%- set filename = salt['file.basename'](source_file) %}
    
    CLI Example:
    
        salt '*' file.basename 'test/test.config'
    

    file.sed

    .. deprecated:: 0.17.0
       Use :py:func:`~salt.modules.file.replace` instead.
    
    Make a simple edit to a file
    
    Equivalent to:
    
        sed <backup> <options> "/<limit>/ s/<before>/<after>/<flags> <file>"
    
    path
        The full path to the file to be edited
    before
        A pattern to find in order to replace with ``after``
    after
        Text that will replace ``before``
    limit: ``''``
        An initial pattern to search for before searching for ``before``
    backup: ``.bak``
        The file will be backed up before edit with this file extension;
        **WARNING:** each time ``sed``/``comment``/``uncomment`` is called will
        overwrite this backup
    options: ``-r -e``
        Options to pass to sed
    flags: ``g``
        Flags to modify the sed search; e.g., ``i`` for case-insensitive pattern
        matching
    negate_match: False
        Negate the search command (``!``)
    
        New in version 0.17.0
    
    Forward slashes and single quotes will be escaped automatically in the
    ``before`` and ``after`` patterns.
    
    CLI Example:
    
        salt '*' file.sed /etc/httpd/httpd.conf 'LogLevel warn' 'LogLevel info'
    

    file.namedtuple

    Returns a new subclass of tuple with named fields.

    >>> Point = namedtuple('Point', ['x', 'y'])
    >>> Point.__doc__                   # docstring for the new class
    'Point(x, y)'
    >>> p = Point(11, y=22)             # instantiate with positional args or keywords
    >>> p[0] + p[1]                     # indexable like a plain tuple
    33
    >>> x, y = p                        # unpack like a regular tuple
    >>> x, y
    (11, 22)
    >>> p.x + p.y                       # fields also accessable by name
    33
    >>> d = p._asdict()                 # convert to a dictionary
    >>> d['x']
    11
    >>> Point(**d)                      # convert from a dictionary
    Point(x=11, y=22)
    >>> p._replace(x=100)               # _replace() is like str.replace() but targets named fields
    Point(x=100, y=22)
    

    file.remove_backup

    This function is an alias of delete_backup.

    New in version 0.17.0
    
    Delete a previous version of a file that was backed up using Salt's
    :ref:`file state backup <file-state-backups>` system.
    
    path
        The path on the minion to check for backups
    backup_id
        The numeric id for the backup you wish to delete, as found using
        :mod:`file.list_backups <salt.modules.file.list_backups>`
    
    CLI Example:
    
        salt '*' file.delete_backup /var/cache/salt/minion/file_backup/home/foo/bar/baz.txt 0
    

    file.list_backups_dir

    Lists the previous versions of a directory backed up using Salt's :ref:`file
    state backup <file-state-backups>` system.
    
    path
        The directory on the minion to check for backups
    limit
        Limit the number of results to the most recent N backups
    
    CLI Example:
    
        salt '*' file.list_backups_dir /foo/bar/baz/
    

    file.is_link

    Check if the path is a symbolic link
    
    CLI Example:
    
       salt '*' file.is_link /path/to/link
    

    file.get_hash

    Get the hash sum of a file
    
    This is better than ``get_sum`` for the following reasons:
        - It does not read the entire file into memory.
        - It does not return a string on error. The returned value of
            ``get_sum`` cannot really be trusted since it is vulnerable to
            collisions: ``get_sum(..., 'xyz') == 'Hash xyz not supported'``
    
    path
        path to the file or directory
    
    form
        desired sum format
    
    chunk_size
        amount to sum at once
    
    CLI Example:
    
        salt '*' file.get_hash /etc/shadow
    

    file.stats

    Return a dict containing the stats for a given file
    
    CLI Example:
    
        salt '*' file.stats /etc/passwd
    

    file.chown

    Chown a file, pass the file the desired user and group
    
    path
        path to the file or directory
    
    user
        user owner
    
    group
        group owner
    
    CLI Example:
    
        salt '*' file.chown /etc/passwd root root
    

    file.check_file_meta

    Check for the changes in the file metadata.
    
    CLI Example:
    
        salt '*' file.check_file_meta /etc/httpd/conf.d/httpd.conf salt://http/httpd.conf '{hash_type: 'md5', 'hsum': <md5sum>}' root, root, '755' base
    
    Note:
    
        Supported hash types include sha512, sha384, sha256, sha224, sha1, and
        md5.
    
    name
        Path to file destination
    
    sfn
        Template-processed source file contents
    
    source
        URL to file source
    
    source_sum
        File checksum information as a dictionary
    
            {hash_type: md5, hsum: <md5sum>}
    
    user
        Destination file user owner
    
    group
        Destination file group owner
    
    mode
        Destination file permissions mode
    
    attrs
        Destination file attributes
    
        New in version 2018.3.0
    
    saltenv
        Salt environment used to resolve source files
    
    contents
        File contents
    

    file.check_managed_changes

    Return a dictionary of what changes need to be made for a file
    
    CLI Example:
    
        salt '*' file.check_managed_changes /etc/httpd/conf.d/httpd.conf salt://http/httpd.conf '{hash_type: 'md5', 'hsum': <md5sum>}' root, root, '755' jinja True None None base
    

    file.touch

    New in version 0.9.5
    
    Just like the ``touch`` command, create a file if it doesn't exist or
    simply update the atime and mtime if it already does.
    
    atime:
        Access time in Unix epoch time
    mtime:
        Last modification in Unix epoch time
    
    CLI Example:
    
        salt '*' file.touch /var/log/emptyfile
    

    file.copy

    Copy a file or directory from source to dst
    
    In order to copy a directory, the recurse flag is required, and
    will by default overwrite files in the destination with the same path,
    and retain all other existing files. (similar to cp -r on unix)
    
    remove_existing will remove all files in the target directory,
    and then copy files from the source.
    
    Note:
        The copy function accepts paths that are local to the Salt minion.
        This function does not support salt://, http://, or the other
        additional file paths that are supported by :mod:`states.file.managed
        <salt.states.file.managed>` and :mod:`states.file.recurse
        <salt.states.file.recurse>`.
    
    CLI Example:
    
        salt '*' file.copy /path/to/src /path/to/dst
        salt '*' file.copy /path/to/src_dir /path/to/dst_dir recurse=True
        salt '*' file.copy /path/to/src_dir /path/to/dst_dir recurse=True remove_existing=True
    

    file.get_source_sum

    New in version 2016.11.0
    
    Used by :py:func:`file.get_managed <salt.modules.file.get_managed>` to
    obtain the hash and hash type from the parameters specified below.
    
    file_name
        Optional file name being managed, for matching with
        :py:func:`file.extract_hash <salt.modules.file.extract_hash>`.
    
    source
        Source file, as used in :py:mod:`file <salt.states.file>` and other
        states. If ``source_hash`` refers to a file containing hashes, then
        this filename will be used to match a filename in that file. If the
        ``source_hash`` is a hash expression, then this argument will be
        ignored.
    
    source_hash
        Hash file/expression, as used in :py:mod:`file <salt.states.file>` and
        other states. If this value refers to a remote URL or absolute path to
        a local file, it will be cached and :py:func:`file.extract_hash
        <salt.modules.file.extract_hash>` will be used to obtain a hash from
        it.
    
    source_hash_name
        Specific file name to look for when ``source_hash`` refers to a remote
        file, used to disambiguate ambiguous matches.
    
    saltenv: base
        Salt fileserver environment from which to retrieve the source_hash. This
        value will only be used when ``source_hash`` refers to a file on the
        Salt fileserver (i.e. one beginning with ``salt://``).
    
    CLI Example:
    
        salt '*' file.get_source_sum /tmp/foo.tar.gz source=http://mydomain.tld/foo.tar.gz source_hash=499ae16dcae71eeb7c3a30c75ea7a1a6
        salt '*' file.get_source_sum /tmp/foo.tar.gz source=http://mydomain.tld/foo.tar.gz source_hash=https://mydomain.tld/hashes.md5
        salt '*' file.get_source_sum /tmp/foo.tar.gz source=http://mydomain.tld/foo.tar.gz source_hash=https://mydomain.tld/hashes.md5 source_hash_name=./dir2/foo.tar.gz
    

    file.pardir

    Return the relative parent directory path symbol for underlying OS
    
    New in version 2014.7.0
    
    This can be useful when constructing Salt Formulas.
    
        {% set pardir = salt['file.pardir']() %}
        {% set final_path = salt['file.join']('subdir', pardir, 'confdir') %}
    
    CLI Example:
    
        salt '*' file.pardir
    

    file.get_devmm

    Get major/minor info from a device
    
    CLI Example:
    
       salt '*' file.get_devmm /dev/chr
    

    file.lstat

    New in version 2014.1.0
    
    Returns the lstat attributes for the given file or dir. Does not support
    symbolic links.
    
    CLI Example:
    
        salt '*' file.lstat /path/to/file
    

    file.rmdir

    New in version 2014.1.0
    
    Remove the specified directory. Fails if a directory is not empty.
    
    CLI Example:
    
        salt '*' file.rmdir /tmp/foo/
    

    file.rename

    Rename a file or directory
    
    CLI Example:
    
        salt '*' file.rename /path/to/src /path/to/dst
    

    file.get_user

    Return the user that owns a given file
    
    path
        file or directory of which to get the user
    
    follow_symlinks
        indicated if symlinks should be followed
    
    CLI Example:
    
        salt '*' file.get_user /etc/passwd
    
    Changed in version 0.16.4
        ``follow_symlinks`` option added
    

    file.is_fifo

    Check if a file exists and is a FIFO.
    
    CLI Example:
    
       salt '*' file.is_fifo /dev/fifo
    

    file.link

    New in version 2014.1.0
    
    Create a hard link to a file
    
    CLI Example:
    
        salt '*' file.link /path/to/file /path/to/link
    

    file.contains_regex

    .. deprecated:: 0.17.0
       Use :func:`search` instead.
    
    Return True if the given regular expression matches on any line in the text
    of a given file.
    
    If the lchar argument (leading char) is specified, it
    will strip `lchar` from the left side of each line before trying to match
    
    CLI Example:
    
        salt '*' file.contains_regex /etc/crontab
    

    file.get_diff

    Return unified diff of two files
    
    file1
        The first file to feed into the diff utility
    
        Changed in version 2018.3.0
            Can now be either a local or remote file. In earlier releases,
            thuis had to be a file local to the minion.
    
    file2
        The second file to feed into the diff utility
    
        Changed in version 2018.3.0
            Can now be either a local or remote file. In earlier releases, this
            had to be a file on the salt fileserver (i.e.
            ``salt://somefile.txt``)
    
    show_filenames: True
        Set to ``False`` to hide the filenames in the top two lines of the
        diff.
    
    show_changes: True
        If set to ``False``, and there are differences, then instead of a diff
        a simple message stating that show_changes is set to ``False`` will be
        returned.
    
    template: False
        Set to ``True`` if two templates are being compared. This is not useful
        except for within states, with the ``obfuscate_templates`` option set
        to ``True``.
    
        New in version 2018.3.0
    
    source_hash_file1
        If ``file1`` is an http(s)/ftp URL and the file exists in the minion's
        file cache, this option can be passed to keep the minion from
        re-downloading the archive if the cached copy matches the specified
        hash.
    
        New in version 2018.3.0
    
    source_hash_file2
        If ``file2`` is an http(s)/ftp URL and the file exists in the minion's
        file cache, this option can be passed to keep the minion from
        re-downloading the archive if the cached copy matches the specified
        hash.
    
        New in version 2018.3.0
    
    CLI Examples:
    
        salt '*' file.get_diff /home/fred/.vimrc salt://users/fred/.vimrc
        salt '*' file.get_diff /tmp/foo.txt /tmp/bar.txt
    

    file.user_to_uid

    Convert user name to a uid
    
    user
        user name to convert to its uid
    
    CLI Example:
    
        salt '*' file.user_to_uid root
    

    file.line

    New in version 2015.8.0
    
    Edit a line in the configuration file. The ``path`` and ``content``
    arguments are required, as well as passing in one of the ``mode``
    options.
    
    path
        Filesystem path to the file to be edited.
    
    content
        Content of the line. Allowed to be empty if mode=delete.
    
    match
        Match the target line for an action by
        a fragment of a string or regular expression.
    
        If neither ``before`` nor ``after`` are provided, and ``match``
        is also ``None``, match becomes the ``content`` value.
    
    mode
        Defines how to edit a line. One of the following options is
        required:
    
        - ensure
            If line does not exist, it will be added. This is based on the
            ``content`` argument.
        - replace
            If line already exists, it will be replaced.
        - delete
            Delete the line, once found.
        - insert
            Insert a line.
    
        Note:
    
            If ``mode=insert`` is used, at least one of the following
            options must also be defined: ``location``, ``before``, or
            ``after``. If ``location`` is used, it takes precedence
            over the other two options.
    
    location
        Defines where to place content in the line. Note this option is only
        used when ``mode=insert`` is specified. If a location is passed in, it
        takes precedence over both the ``before`` and ``after`` kwargs. Valid
        locations are:
    
        - start
            Place the content at the beginning of the file.
        - end
            Place the content at the end of the file.
    
    before
        Regular expression or an exact case-sensitive fragment of the string.
        This option is only used when either the ``ensure`` or ``insert`` mode
        is defined.
    
    after
        Regular expression or an exact case-sensitive fragment of the string.
        This option is only used when either the ``ensure`` or ``insert`` mode
        is defined.
    
    show_changes
        Output a unified diff of the old file and the new file.
        If ``False`` return a boolean if any changes were made.
        Default is ``True``
    
        Note:
            Using this option will store two copies of the file in-memory
            (the original version and the edited version) in order to generate the diff.
    
    backup
        Create a backup of the original file with the extension:
        "Year-Month-Day-Hour-Minutes-Seconds".
    
    quiet
        Do not raise any exceptions. E.g. ignore the fact that the file that is
        tried to be edited does not exist and nothing really happened.
    
    indent
        Keep indentation with the previous line. This option is not considered when
        the ``delete`` mode is specified.
    
    CLI Example:
    
        salt '*' file.line /etc/nsswitch.conf "networks:	files dns" after="hosts:.*?" mode='ensure'
    
    Note:
    
        If an equal sign (``=``) appears in an argument to a Salt command, it is
        interpreted as a keyword argument in the format of ``key=val``. That
        processing can be bypassed in order to pass an equal sign through to the
        remote shell command by manually specifying the kwarg:
    
            salt '*' file.line /path/to/file content="CREATEMAIL_SPOOL=no" match="CREATE_MAIL_SPOOL=yes" mode="replace"
    

    file.lchown

    Chown a file, pass the file the desired user and group without following
    symlinks.
    
    path
        path to the file or directory
    
    user
        user owner
    
    group
        group owner
    
    CLI Example:
    
        salt '*' file.chown /etc/passwd root root
    

    file.source_list

    Check the source list and return the source to use
    
    CLI Example:
    
        salt '*' file.source_list salt://http/httpd.conf '{hash_type: 'md5', 'hsum': <md5sum>}' base
    

    file.get_gid

    Return the id of the group that owns a given file
    
    path
        file or directory of which to get the gid
    
    follow_symlinks
        indicated if symlinks should be followed
    
    
    CLI Example:
    
        salt '*' file.get_gid /etc/passwd
    
    Changed in version 0.16.4
        ``follow_symlinks`` option added
    

    file.remove

    Remove the named file. If a directory is supplied, it will be recursively
    deleted.
    
    CLI Example:
    
        salt '*' file.remove /tmp/foo
    
    Changed in version 3000
        The method now works on all types of file system entries, not just
        files, directories and symlinks.
    

    file.readdir

    New in version 2014.1.0
    
    Return a list containing the contents of a directory
    
    CLI Example:
    
        salt '*' file.readdir /path/to/dir/
    

    file.psed

    .. deprecated:: 0.17.0
       Use :py:func:`~salt.modules.file.replace` instead.
    
    Make a simple edit to a file (pure Python version)
    
    Equivalent to:
    
        sed <backup> <options> "/<limit>/ s/<before>/<after>/<flags> <file>"
    
    path
        The full path to the file to be edited
    before
        A pattern to find in order to replace with ``after``
    after
        Text that will replace ``before``
    limit: ``''``
        An initial pattern to search for before searching for ``before``
    backup: ``.bak``
        The file will be backed up before edit with this file extension;
        **WARNING:** each time ``sed``/``comment``/``uncomment`` is called will
        overwrite this backup
    flags: ``gMS``
        Flags to modify the search. Valid values are:
          - ``g``: Replace all occurrences of the pattern, not just the first.
          - ``I``: Ignore case.
          - ``L``: Make ``w``, ``W``, ````, ``B``, ``s`` and ``S``
            dependent on the locale.
          - ``M``: Treat multiple lines as a single line.
          - ``S``: Make `.` match all characters, including newlines.
          - ``U``: Make ``w``, ``W``, ````, ``B``, ``d``, ``D``,
            ``s`` and ``S`` dependent on Unicode.
          - ``X``: Verbose (whitespace is ignored).
    multi: ``False``
        If True, treat the entire file as a single line
    
    Forward slashes and single quotes will be escaped automatically in the
    ``before`` and ``after`` patterns.
    
    CLI Example:
    
        salt '*' file.sed /etc/httpd/httpd.conf 'LogLevel warn' 'LogLevel info'
    

    file.restore_backup

    New in version 0.17.0
    
    Restore a previous version of a file that was backed up using Salt's
    :ref:`file state backup <file-state-backups>` system.
    
    path
        The path on the minion to check for backups
    backup_id
        The numeric id for the backup you wish to restore, as found using
        :mod:`file.list_backups <salt.modules.file.list_backups>`
    
    CLI Example:
    
        salt '*' file.restore_backup /foo/bar/baz.txt 0
    

    file.mknod_fifo

    New in version 0.17.0
    
    Create a FIFO pipe.
    
    CLI Example:
    
       salt '*' file.mknod_fifo /dev/fifo
    

    file.contains_glob

    .. deprecated:: 0.17.0
       Use :func:`search` instead.
    
    Return ``True`` if the given glob matches a string in the named file
    
    CLI Example:
    
        salt '*' file.contains_glob /etc/foobar '*cheese*'
    

    file.set_mode

    Set the mode of a file
    
    path
        file or directory of which to set the mode
    
    mode
        mode to set the path to
    
    CLI Example:
    
        salt '*' file.set_mode /etc/passwd 0644
    

    file.blockreplace

    New in version 2014.1.0
    
    Replace content of a text block in a file, delimited by line markers
    
    A block of content delimited by comments can help you manage several lines
    entries without worrying about old entries removal.
    
    Note:
    
        This function will store two copies of the file in-memory (the original
        version and the edited version) in order to detect changes and only
        edit the targeted file if necessary.
    
    path
        Filesystem path to the file to be edited
    
    marker_start
        The line content identifying a line as the start of the content block.
        Note that the whole line containing this marker will be considered, so
        whitespace or extra content before or after the marker is included in
        final output
    
    marker_end
        The line content identifying the end of the content block. As of
        versions 2017.7.5 and 2018.3.1, everything up to the text matching the
        marker will be replaced, so it's important to ensure that your marker
        includes the beginning of the text you wish to replace.
    
    content
        The content to be used between the two lines identified by marker_start
        and marker_stop.
    
    append_if_not_found: False
        If markers are not found and set to ``True`` then, the markers and
        content will be appended to the file.
    
    prepend_if_not_found: False
        If markers are not found and set to ``True`` then, the markers and
        content will be prepended to the file.
    
    
    backup
        The file extension to use for a backup of the file if any edit is made.
        Set to ``False`` to skip making a backup.
    
    dry_run: False
        If ``True``, do not make any edits to the file and simply return the
        changes that *would* be made.
    
    show_changes: True
        Controls how changes are presented. If ``True``, this function will
        return a unified diff of the changes made. If False, then it will
        return a boolean (``True`` if any changes were made, otherwise
        ``False``).
    
    append_newline: False
        Controls whether or not a newline is appended to the content block. If
        the value of this argument is ``True`` then a newline will be added to
        the content block. If it is ``False``, then a newline will *not* be
        added to the content block. If it is ``None`` then a newline will only
        be added to the content block if it does not already end in a newline.
    
        New in version 2016.3.4
        Changed in version 2017.7.5,2018.3.1
            New behavior added when value is ``None``.
        Changed in version 2019.2.0
            The default value of this argument will change to ``None`` to match
            the behavior of the :py:func:`file.blockreplace state
            <salt.states.file.blockreplace>`
    
    CLI Example:
    
        salt '*' file.blockreplace /etc/hosts '#-- start managed zone foobar : DO NOT EDIT --' 
        '#-- end managed zone foobar --' $'10.0.1.1 foo.foobar
    10.0.1.2 bar.foobar' True
  • 相关阅读:
    vue中点击输入框弹出事件
    shiro
    Java转Kotlin
    RxJava2详细攻略(四)
    RxJava2详细攻略(三)
    RxJava2详细攻略(二)
    RxJava2详细攻略(一)
    DataBinding使用介绍
    类集框架
    使用CrashHandler获取应用crash信息
  • 原文地址:https://www.cnblogs.com/randomlee/p/Saltstack_module_file.html
Copyright © 2011-2022 走看看