玩一下rsync

  1. 目的说明
  2. 命令展示
  3. 参数说明
  4. 其他参数展示(即使现在用不到)
  5. 粗略意见

(一) 目的说明

  • 向远程主机拷贝文件,如果远程主机有同名文件则进行对其备份到指定目录

(二) 命令展示

  • # >  now=`date +%Y%m%d%H%M%S`
  • # > rsync -Ivb --suffix="_$now" --backup-dir=/root/backup deploy_gunlei_erp.py root@server_ip_address:/root

(三)参数说明

  • -I(大写i): --ignore-times    don't skip files that match in size and mod-time 意思就是不跳过任何一个文件
  • -v:  --verbose    increase verbosity 增加赘言等于可视化显示
  • -b: --backup    make backups  制作备份
  • --sufix  set backup suffix (default ~)  设置备份后缀名(默认是~)
  • --backup-dir    make backups into hierarchy based in DIR    指定备份目录

(四)其他参数展示

  • -q, --quiet                 suppress non-error messages
        --no-motd               suppress daemon-mode MOTD (see manpage caveat)
    -c, --checksum              skip based on checksum, not mod-time & size
    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
        --no-OPTION             turn off an implied OPTION (e.g. --no-D)
    -r, --recursive             recurse into directories
    -R, --relative              use relative path names
        --no-implied-dirs       don't send implied dirs with --relative
    -u, --update                skip files that are newer on the receiver
        --inplace               update destination files in-place (SEE MAN PAGE)
        --append                append data onto shorter files
        --append-verify         like --append, but with old data in file checksum
    -d, --dirs                  transfer directories without recursing
    -l, --links                 copy symlinks as symlinks
    -L, --copy-links            transform symlink into referent file/dir
        --copy-unsafe-links     only "unsafe" symlinks are transformed
        --safe-links            ignore symlinks that point outside the source tree
        --munge-links           munge symlinks to make them safer (but unusable)
    -k, --copy-dirlinks         transform symlink to a dir into referent dir
    -K, --keep-dirlinks         treat symlinked dir on receiver as dir
    -H, --hard-links            preserve hard links
    -p, --perms                 preserve permissions
    -E, --executability         preserve the file's executability
        --chmod=CHMOD           affect file and/or directory permissions
    -A, --acls                  preserve ACLs (implies --perms)
    -X, --xattrs                preserve extended attributes
    -o, --owner                 preserve owner (super-user only)
    -g, --group                 preserve group
        --devices               preserve device files (super-user only)
        --copy-devices          copy device contents as regular file
        --specials              preserve special files
    -D                          same as --devices --specials
    -t, --times                 preserve modification times
    -O, --omit-dir-times        omit directories from --times
    -J, --omit-link-times       omit symlinks from --times
        --super                 receiver attempts super-user activities
        --fake-super            store/recover privileged attrs using xattrs
    -S, --sparse                handle sparse files efficiently
        --preallocate           allocate dest files before writing them
    -n, --dry-run               perform a trial run with no changes made
    -W, --whole-file            copy files whole (without delta-xfer algorithm)
    -x, --one-file-system       don't cross filesystem boundaries
    -B, --block-size=SIZE       force a fixed checksum block-size
    -e, --rsh=COMMAND           specify the remote shell to use
        --rsync-path=PROGRAM    specify the rsync to run on the remote machine
        --existing              skip creating new files on receiver
        --ignore-existing       skip updating files that already exist on receiver
        --remove-source-files   sender removes synchronized files (non-dirs)
        --del                   an alias for --delete-during
        --delete                delete extraneous files from destination dirs
        --delete-before         receiver deletes before transfer, not during
        --delete-during         receiver deletes during the transfer
        --delete-delay          find deletions during, delete after
        --delete-after          receiver deletes after transfer, not during
        --delete-excluded       also delete excluded files from destination dirs
        --ignore-missing-args   ignore missing source args without error
        --delete-missing-args   delete missing source args from destination
        --ignore-errors         delete even if there are I/O errors
        --force                 force deletion of directories even if not empty
        --max-delete=NUM        don't delete more than NUM files
        --max-size=SIZE         don't transfer any file larger than SIZE
        --min-size=SIZE         don't transfer any file smaller than SIZE
        --partial               keep partially transferred files
        --partial-dir=DIR       put a partially transferred file into DIR
        --delay-updates         put all updated files into place at transfer's end
    -m, --prune-empty-dirs      prune empty directory chains from the file-list
        --numeric-ids           don't map uid/gid values by user/group name
        --usermap=STRING        custom username mapping
        --groupmap=STRING       custom groupname mapping
        --chown=USER:GROUP      simple username/groupname mapping
        --timeout=SECONDS       set I/O timeout in seconds
        --contimeout=SECONDS    set daemon connection timeout in seconds
    -M, --remote-option=OPTION  send OPTION to the remote side only
        --size-only             skip files that match in size
        --modify-window=NUM     compare mod-times with reduced accuracy
    -T, --temp-dir=DIR          create temporary files in directory DIR
    -y, --fuzzy                 find similar file for basis if no dest file
        --compare-dest=DIR      also compare destination files relative to DIR
        --copy-dest=DIR         ... and include copies of unchanged files
        --link-dest=DIR         hardlink to files in DIR when unchanged
    -z, --compress              compress file data during the transfer
        --compress-level=NUM    explicitly set compression level
        --skip-compress=LIST    skip compressing files with a suffix in LIST
    -C, --cvs-exclude           auto-ignore files the same way CVS does
    -f, --filter=RULE           add a file-filtering RULE
    -F                          same as --filter='dir-merge /.rsync-filter'
                                repeated: --filter='- .rsync-filter'
        --exclude=PATTERN       exclude files matching PATTERN
        --exclude-from=FILE     read exclude patterns from FILE
        --include=PATTERN       don't exclude files matching PATTERN
        --include-from=FILE     read include patterns from FILE
        --files-from=FILE       read list of source-file names from FILE
    -0, --from0                 all *-from/filter files are delimited by 0s
    -s, --protect-args          no space-splitting; only wildcard special-chars
        --address=ADDRESS       bind address for outgoing socket to daemon
        --port=PORT             specify double-colon alternate port number
        --sockopts=OPTIONS      specify custom TCP options
        --blocking-io           use blocking I/O for the remote shell
        --stats                 give some file-transfer stats
    -8, --8-bit-output          leave high-bit chars unescaped in output
    -h, --human-readable        output numbers in a human-readable format
        --progress              show progress during transfer
    -P                          same as --partial --progress
    -i, --itemize-changes       output a change-summary for all updates
        --out-format=FORMAT     output updates using the specified FORMAT
        --log-file=FILE         log what we're doing to the specified FILE
        --log-file-format=FMT   log updates using the specified FMT
        --password-file=FILE    read daemon-access password from FILE
        --list-only             list the files instead of copying them
        --bwlimit=RATE          limit socket I/O bandwidth
        --stop-at=y-m-dTh:m     Stop rsync at year-month-dayThour:minute
        --time-limit=MINS       Stop rsync after MINS minutes have elapsed
        --outbuf=N|L|B          set output buffering to None, Line, or Block
        --write-batch=FILE      write a batched update to FILE
        --only-write-batch=FILE like --write-batch but w/o updating destination
        --read-batch=FILE       read a batched update from FILE
        --protocol=NUM          force an older protocol version to be used
        --iconv=CONVERT_SPEC    request charset conversion of filenames
        --checksum-seed=NUM     set block/file checksum seed (advanced)
        --noatime               do not alter atime when opening source files
    -4, --ipv4                  prefer IPv4
    -6, --ipv6                  prefer IPv6
        --version               print version number

(五)粗略意见

  • rsync玩法有很多,适合向远程主机拷贝增量文件和带有软硬连接的目录.
  • scp用法比较简单,适合向远程主机拷贝覆盖性文件,例如集群内配置文件修改参数需要同步配置文件等.

猜你喜欢

转载自blog.csdn.net/lonewolf1992/article/details/88826168