• 20+ Rsync command’s switches and common usages with examples – Unix/Linux--reference


    reference:http://crybit.com/rsync-commands-switches/

    The “rsync” is a powerful command under the Linux environment. The rsync stands for Remote Sync. Normally rsync is used to transfer file from one server(source) to another server(destination). rsync has a lot of switches or option for managing the command much usefully. Here I am explaining the switches of rsync command with examples. Rsync will actually look and see what in the file has changed and upload only the part of the file that has changed. Unlike ftp and other transfer solutions rsync doesn’t simply re-upload the entire file.

    Common Syntax for Rsync:

    # rsync [options] Source Destinations. 
    

    Switches of rsync:

    1, -v, –verbose
    Increase verbosity.

    Example:
    I’ve created a file ‘rsync’ under ‘/root/Rsync/’ for testing purpose.

    root@server [~]# rsync -v /root/Rsync/rsync .
    rsync
    
    sent 65 bytes  received 31 bytes  192.00 bytes/sec
    total size is 0  speedup is 0.00
    

    2, -r, –recursive
    Recurse into directories.

    3, -l, –links
    Copy symlinks as symlinks.

    4, -p, –perms
    Preserve permissions.

    5, -t, –times
    Preserve modification times.

    6, -g, –group
    Preserve group.

    7, -o, –owner
    preserve owner (super-user only)

    8, -D
    Same as –devices –specials.
    –devices : preserve device files (super-user only).
    –specials : preserve special files.

    9, -H, –hard-links
    Preserve hard links

    10, -A, –acls
    Preserve ACLs (implies –perms)

    11, -X, –xattrs
    Preserve extended attributes

    12, -a, –archive
    This is very important rsync switch, because it can be done the functions of some other switches combinations.
    Archive mode; equals -rlptgoD (no -H,-A,-X)

    13, -q, –quiet
    Suppress non-error messages.

    14, To specify the file size for sync:
    –max-size=SIZE
    Don’t transfer any file larger than SIZE
    –min-size=SIZE
    Don’t transfer any file smaller than SIZE

    15, –delete
    Delete extraneous files from destination dirs.

    16, W, –whole-file
    Copy files whole (without delta-xfer algorithm)

    17, -u, –update
    Skip files that are newer on the receiver. Means, Do Not Overwrite the Modified Files at the Destination.

    18, –progress
    View the rsync Progress during Transfer.

    19, Include and Exclude Pattern.
    –include
    –exclude
    Patterns are expressed in single quote.

    Examples:

    [root@ser crybit]# rsync -avz --include 'c*' --exclude '*' /root/crybit/ 109.200.11.67:/root/Rsinc101
    root@109.200.11.67's password:
    stdin: is not a tty
    sending incremental file list
    cry1.doc
    cry2.doc
    cry3.doc
    cry4.doc
    cry5.doc
    
    sent 267 bytes  received 107 bytes  68.00 bytes/sec
    total size is 0  speedup is 0.00
    

    In the above example files starting with ‘c’ are included for Rsync and all other files are excluded on Rsync operation.

    20 -e : Rsync over Shell(SSH)
    Syntax:

    # rsync -avz -e ssh Source Destination 
    

    Some useful switches combinations and Useful “Rsync” examples:

    1, How to Sync two directories in the same machine ?
    I have created two directories(also some files inside each dir) under /root location to check the rsync usages.

    /root/Rsync1/
    /root/Rsync2/
    

    Example:

    root@server [~]# rsync -zvr /root/Rsync1/ /root/Rsync2/
    sending incremental file list
    rsync1.txt
    rsync10.txt
    rsync2.txt
    rsync3.txt
    ......
    ......
    sent 502 bytes  received 202 bytes  1408.00 bytes/sec
    total size is 0  speedup is 0.00
    

    Where,
    -z is to enable compression
    -v verbose
    -r indicates recursive

    2, Preserve the following option while Sync files using -a switch.

    r, l, p, t, g, o, D : Switch details are mentioned in the above section.
    Recursive mode, symbolic links, permissions, timestamp, owner and group 
    

    See the example below:

    root@server [~]# ll /root/Rsync1/rsync10.txt
    -rw-r--r-- 1 root root 0 Feb 17 07:40 /root/Rsync1/rsync10.txt
    root@server [~]#  ll /root/Rsync2/rsync10.txt
    -rw-r--r-- 1 root root 0 Feb 17 07:40 /root/Rsync2/rsync10.txt
    

    3, How to Rsync files from remote server to local ?
    It is quit similar to SCP, the syntax for doing the same is pasted below:

    # rsync -azv Remote-IP:/path/for/Sync /Path/to/Sync
    

    Some examples:
    Sync the directory from remote to local

    [root@ser crybit]# rsync -azv MY.SERVER.IP:/root/Rsync1 /root/crybit/
    root@109.200.11.67's password:
    stdin: is not a tty
    receiving incremental file list
    Rsync1/
    Rsync1/rsync1.txt
    Rsync1/rsync10.txt
    Rsync1/rsync2.txt
    Rsync1/rsync3.txt
    .....
    .....
    sent 205 bytes  received 527 bytes  77.05 bytes/sec
    total size is 0  speedup is 0.00
    

    Sync all files from remote to local

    [root@ser crybit]# rsync -azv 109.200.11.67:/root/Rsync1/* /root/crybit/
    root@109.200.11.67's password:
    stdin: is not a tty
    receiving incremental file list
    rsync1.txt
    rsync10.txt
    rsync2.txt
    rsync3.txt
    ...
    ...
    sent 201 bytes  received 499 bytes  93.33 bytes/sec
    total size is 0  speedup is 0.00
    

    4, How to sync files from local to remote server ?
    Syntax:

    # rsync -azv /local-path/for/Sync/  Remote-IP:/path/to/Sync
    

    Examples:

    [root@support crybit]# rsync -avz /root/crybit/ 109.200.11.67:/root/Rsinc101
    root@109.200.11.67's password:
    stdin: is not a tty
    sending incremental file list
    created directory /root/Rsinc101
    ./
    rsync1.txt
    rsync10.txt
    rsync2.txt
    rsync3.txt
    ...
    ...
    sent 1028 bytes  received 399 bytes  190.27 bytes/sec
    total size is 0  speedup is 0.00
    
    Note 1 : In example 3 and 4 you can use user@IP:/path format, if you have only the user privilege on server
    Note 2 : The rsync will automatically create the destination directory/location if it isn't there.
    

    That’s it !! :-)

    Related:
    groupdelgroupmemsgroupmoduseradd usermod chgrpchownlsheadtailtoppsfind,crontabftp commandstarrpm,

  • 相关阅读:
    [整机笔记][转贴]硬盘无法双击打开的解决办法
    [网络随摘][转载]值得用一生回味的经典语录
    [网络随摘][转载]如果你已经过了20还不到25岁
    [网络随摘][转摘]只有十句话,我却看了十分钟
    实现百台手机异步并发定时自动GPS定位打卡,基于python全天后定时签到稳定版。
    【FireFox】在Firefox中,关于隐藏table中某一行tr,其他td的边框显示异常
    【记】屏蔽浏览器shift+鼠标滚轴事件
    【记】Javascript的函数直接量定义
    【Javascript】Javascript中的函数调用模式
    【记】three.js的一个简单的代码记录
  • 原文地址:https://www.cnblogs.com/davidwang456/p/3602554.html
Copyright © 2020-2023  润新知