免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6593 | 回复: 19
打印 上一主题 下一主题

[samba] SAMBA备份问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-11 23:06 |只看该作者 |倒序浏览
想问一下大家对于公司的SAMBA服务器是怎么备份的
我现在公司装了一台SAMBA服务器7.5T大小
每天晚上11点开始用RSYNC备份到另一个SAMBA服务器
现在使用文件只有1.3T左右,大概要复制几个小时
如果文件总量大到5-6T的话不知道要复制多长时间
不知道大家对于SAMBA备份怎么处理的

论坛徽章:
0
2 [报告]
发表于 2008-06-12 14:29 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2008-06-12 20:56 |只看该作者
版主有介绍增量备份的资料吗~?
GOOGLE上找到的~介绍的都一般~

论坛徽章:
0
4 [报告]
发表于 2008-06-13 10:49 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2008-06-13 11:05 |只看该作者
原帖由 lovegqin 于 2008-6-13 10:49 发表


man rsync


谢谢这么没责任感的回答~~
如果你说的是--delete的话

论坛徽章:
0
6 [报告]
发表于 2008-06-13 14:13 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
NBA常规赛纪念章
日期:2015-05-04 22:32:03
7 [报告]
发表于 2008-06-13 21:21 |只看该作者
CAO

论坛徽章:
0
8 [报告]
发表于 2008-06-13 23:52 |只看该作者
原帖由 lovegqin 于 2008-6-13 14:13 发表


没责任感?

我只负责告诉你解决问题的途径,难道还要我手把手的教你?
man rsync 就可以找出问题的答案,而你自已并不去探索,只是一味地等待别人给你现成的答案,这要到什么时候你才能真正学会自已去学 ...


  1. OPTIONS SUMMARY

  2. Here is a short summary of the options available in rsync. Please refer to the detailed description below for a complete description.

  3. -v, --verbose               increase verbosity
  4. -q, --quiet                 suppress non-error messages
  5.      --no-motd               suppress daemon-mode MOTD (see caveat)
  6. -c, --checksum              skip based on checksum, not mod-time & size
  7. -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
  8.      --no-OPTION             turn off an implied OPTION (e.g. --no-D)
  9. -r, --recursive             recurse into directories
  10. -R, --relative              use relative path names
  11.      --no-implied-dirs       don't send implied dirs with --relative
  12. -b, --backup                make backups (see --suffix & --backup-dir)
  13.      --backup-dir=DIR        make backups into hierarchy based in DIR
  14.      --suffix=SUFFIX         backup suffix (default ~ w/o --backup-dir)
  15. -u, --update                skip files that are newer on the receiver
  16.      --inplace               update destination files in-place
  17.      --append                append data onto shorter files
  18.      --append-verify         --append w/old data in file checksum
  19. -d, --dirs                  transfer directories without recursing
  20. -l, --links                 copy symlinks as symlinks
  21. -L, --copy-links            transform symlink into referent file/dir
  22.      --copy-unsafe-links     only "unsafe" symlinks are transformed
  23.      --safe-links            ignore symlinks that point outside the tree
  24. -k, --copy-dirlinks         transform symlink to dir into referent dir
  25. -K, --keep-dirlinks         treat symlinked dir on receiver as dir
  26. -H, --hard-links            preserve hard links
  27. -p, --perms                 preserve permissions
  28. -E, --executability         preserve executability
  29.      --chmod=CHMOD           affect file and/or directory permissions
  30. -A, --acls                  preserve ACLs (implies -p)
  31. -X, --xattrs                preserve extended attributes
  32. -o, --owner                 preserve owner (super-user only)
  33. -g, --group                 preserve group
  34.      --devices               preserve device files (super-user only)
  35.      --specials              preserve special files
  36. -D                          same as --devices --specials
  37. -t, --times                 preserve modification times
  38. -O, --omit-dir-times        omit directories from --times
  39.      --super                 receiver attempts super-user activities
  40.      --fake-super            store/recover privileged attrs using xattrs
  41. -S, --sparse                handle sparse files efficiently
  42. -n, --dry-run               perform a trial run with no changes made
  43. -W, --whole-file            copy files whole (w/o delta-xfer algorithm)
  44. -x, --one-file-system       don't cross filesystem boundaries
  45. -B, --block-size=SIZE       force a fixed checksum block-size
  46. -e, --rsh=COMMAND           specify the remote shell to use
  47.      --rsync-path=PROGRAM    specify the rsync to run on remote machine
  48.      --existing              skip creating new files on receiver
  49.      --ignore-existing       skip updating files that exist on receiver
  50.      --remove-source-files   sender removes synchronized files (non-dir)
  51.      --del                   an alias for --delete-during
  52.      --delete                delete extraneous files from dest dirs
  53.      --delete-before         receiver deletes before transfer (default)
  54.      --delete-during         receiver deletes during xfer, not before
  55.      --delete-delay          find deletions during, delete after
  56.      --delete-after          receiver deletes after transfer, not before
  57.      --delete-excluded       also delete excluded files from dest dirs
  58.      --ignore-errors         delete even if there are I/O errors
  59.      --force                 force deletion of dirs even if not empty
  60.      --max-delete=NUM        don't delete more than NUM files
  61.      --max-size=SIZE         don't transfer any file larger than SIZE
  62.      --min-size=SIZE         don't transfer any file smaller than SIZE
  63.      --partial               keep partially transferred files
  64.      --partial-dir=DIR       put a partially transferred file into DIR
  65.      --delay-updates         put all updated files into place at end
  66. -m, --prune-empty-dirs      prune empty directory chains from file-list
  67.      --numeric-ids           don't map uid/gid values by user/group name
  68.      --timeout=SECONDS       set I/O timeout in seconds
  69.      --contimeout=SECONDS    set daemon connection timeout in seconds
  70. -I, --ignore-times          don't skip files that match size and time
  71.      --size-only             skip files that match in size
  72.      --modify-window=NUM     compare mod-times with reduced accuracy
  73. -T, --temp-dir=DIR          create temporary files in directory DIR
  74. -y, --fuzzy                 find similar file for basis if no dest file
  75.      --compare-dest=DIR      also compare received files relative to DIR
  76.      --copy-dest=DIR         ... and include copies of unchanged files
  77.      --link-dest=DIR         hardlink to files in DIR when unchanged
  78. -z, --compress              compress file data during the transfer
  79.      --compress-level=NUM    explicitly set compression level
  80.      --skip-compress=LIST    skip compressing files with suffix in LIST
  81. -C, --cvs-exclude           auto-ignore files in the same way CVS does
  82. -f, --filter=RULE           add a file-filtering RULE
  83. -F                          same as --filter='dir-merge /.rsync-filter'
  84.                              repeated: --filter='- .rsync-filter'
  85.      --exclude=PATTERN       exclude files matching PATTERN
  86.      --exclude-from=FILE     read exclude patterns from FILE
  87.      --include=PATTERN       don't exclude files matching PATTERN
  88.      --include-from=FILE     read include patterns from FILE
  89.      --files-from=FILE       read list of source-file names from FILE
  90. -0, --from0                 all *from/filter files are delimited by 0s
  91. -s, --protect-args          no space-splitting; wildcard chars only
  92.      --address=ADDRESS       bind address for outgoing socket to daemon
  93.      --port=PORT             specify double-colon alternate port number
  94.      --sockopts=OPTIONS      specify custom TCP options
  95.      --blocking-io           use blocking I/O for the remote shell
  96.      --stats                 give some file-transfer stats
  97. -8, --8-bit-output          leave high-bit chars unescaped in output
  98. -h, --human-readable        output numbers in a human-readable format
  99.      --progress              show progress during transfer
  100. -P                          same as --partial --progress
  101. -i, --itemize-changes       output a change-summary for all updates
  102.      --out-format=FORMAT     output updates using the specified FORMAT
  103.      --log-file=FILE         log what we're doing to the specified FILE
  104.      --log-file-format=FMT   log updates using the specified FMT
  105.      --password-file=FILE    read daemon-access password from FILE
  106.      --list-only             list the files instead of copying them
  107.      --bwlimit=KBPS          limit I/O bandwidth; KBytes per second
  108.      --write-batch=FILE      write a batched update to FILE
  109.      --only-write-batch=FILE like --write-batch but w/o updating dest
  110.      --read-batch=FILE       read a batched update from FILE
  111.      --protocol=NUM          force an older protocol version to be used
  112.      --iconv=CONVERT_SPEC    request charset conversion of filenames
  113.      --checksum-seed=NUM     set block/file checksum seed (advanced)
  114. -4, --ipv4                  prefer IPv4
  115. -6, --ipv6                  prefer IPv6
  116.      --version               print version number
  117. (-h) --help                  show this help (see below for -h comment)

  118. Rsync can also be run as a daemon, in which case the following options are accepted:

  119.      --daemon                run as an rsync daemon
  120.      --address=ADDRESS       bind to the specified address
  121.      --bwlimit=KBPS          limit I/O bandwidth; KBytes per second
  122.      --config=FILE           specify alternate rsyncd.conf file
  123.      --no-detach             do not detach from the parent
  124.      --port=PORT             listen on alternate port number
  125.      --log-file=FILE         override the "log file" setting
  126.      --log-file-format=FMT   override the "log format" setting
  127.      --sockopts=OPTIONS      specify custom TCP options
  128. -v, --verbose               increase verbosity
  129. -4, --ipv4                  prefer IPv4
  130. -6, --ipv6                  prefer IPv6
  131. -h, --help                  show this help (if used after --daemon)
  132. OPTIONS

  133. rsync uses the GNU long options package. Many of the command line options have two variants, one short and one long. These are shown below, separated by commas. Some options only have a long variant. The '=' for options that take a parameter is optional; whitespace can be used instead.

  134. --help
  135.     Print a short help page describing the options available in rsync and exit. For backward-compatibility with older versions of rsync, the help will also be output if you use the -h option without any other args.

  136. --version
  137.     print the rsync version number and exit.

  138. -v, --verbose
  139.     This option increases the amount of information you are given during the transfer. By default, rsync works silently. A single -v will give you information about what files are being transferred and a brief summary at the end. Two -v flags will give you information on what files are being skipped and slightly more information at the end. More than two -v flags should only be used if you are debugging rsync.

  140.     Note that the names of the transferred files that are output are done using a default --out-format of "%n%L", which tells you just the name of the file and, if the item is a link, where it points. At the single -v level of verbosity, this does not mention when a file gets its attributes changed. If you ask for an itemized list of changed attributes (either --itemize-changes or adding "%i" to the --out-format setting), the output (on the client) increases to mention all items that are changed in any way. See the --out-format option for more details.

  141. -q, --quiet
  142.     This option decreases the amount of information you are given during the transfer, notably suppressing information messages from the remote server. This flag is useful when invoking rsync from cron.

  143. --no-motd
  144.     This option affects the information that is output by the client at the start of a daemon transfer. This suppresses the message-of-the-day (MOTD) text, but it also affects the list of modules that the daemon sends in response to the "rsync host::" request (due to a limitation in the rsync protocol), so omit this option if you want to request the list of modules from the daemon.

  145. -I, --ignore-times
  146.     Normally rsync will skip any files that are already the same size and have the same modification timestamp. This option turns off this "quick check" behavior, causing all files to be updated.

  147. --size-only
  148.     This modifies rsync's "quick check" algorithm for finding files that need to be transferred, changing it from the default of transferring files with either a changed size or a changed last-modified time to just looking for files that have changed in size. This is useful when starting to use rsync after using another mirroring system which may not preserve timestamps exactly.

  149. --modify-window
  150.     When comparing two timestamps, rsync treats the timestamps as being equal if they differ by no more than the modify-window value. This is normally 0 (for an exact match), but you may find it useful to set this to a larger value in some situations. In particular, when transferring to or from an MS Windows FAT filesystem (which represents times with a 2-second resolution), --modify-window=1 is useful (allowing times to differ by up to 1 second).

  151. -c, --checksum
  152.     This changes the way rsync checks if the files have been changed and are in need of a transfer. Without this option, rsync uses a "quick check" that (by default) checks if each file's size and time of last modification match between the sender and receiver. This option changes this to compare a 128-bit MD4 checksum for each file that has a matching size. Generating the checksums means that both sides will expend a lot of disk I/O reading all the data in the files in the transfer (and this is prior to any reading that will be done to transfer changed files), so this can slow things down significantly.

  153.     The sending side generates its checksums while it is doing the file-system scan that builds the list of the available files. The receiver generates its checksums when it is scanning for changed files, and will checksum any file that has the same size as the corresponding sender's file: files with either a changed size or a changed checksum are selected for transfer.

  154.     Note that rsync always verifies that each transferred file was correctly reconstructed on the receiving side by checking a whole-file checksum that is generated as the file is transferred, but that automatic after-the-transfer verification has nothing to do with this option's before-the-transfer "Does this file need to be updated?" check.

  155. -a, --archive
  156.     This is equivalent to -rlptgoD. It is a quick way of saying you want recursion and want to preserve almost everything (with -H being a notable omission). The only exception to the above equivalence is when --files-from is specified, in which case -r is not implied.

  157.     Note that -a does not preserve hardlinks, because finding multiply-linked files is expensive. You must separately specify -H.

  158. --no-OPTION
  159.     You may turn off one or more implied options by prefixing the option name with "no-". Not all options may be prefixed with a "no-": only options that are implied by other options (e.g. --no-D, --no-perms) or have different defaults in various circumstances (e.g. --no-whole-file, --no-blocking-io, --no-dirs). You may specify either the short or the long option name after the "no-" prefix (e.g. --no-R is the same as --no-relative).

  160.     For example: if you want to use -a (--archive) but don't want -o (--owner), instead of converting -a into -rlptgD, you could specify -a --no-o (or -a --no-owner).

  161.     The order of the options is important: if you specify --no-r -a, the -r option would end up being turned on, the opposite of -a --no-r. Note also that the side-effects of the --files-from option are NOT positional, as it affects the default state of several options and slightly changes the meaning of -a (see the --files-from option for more details).

  162.    
复制代码

我MAN上来你看看~~
懂你就说~不懂就别装~~

[ 本帖最后由 gavinzhm 于 2008-6-13 23:59 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2008-06-13 23:59 |只看该作者

  1. -r, --recursive
  2.     This tells rsync to copy directories recursively. See also --dirs (-d).

  3.     Beginning with rsync 3.0.0, the recursive algorithm used is now an incremental scan that uses much less memory than before and begins the transfer after the scanning of the first few directories have been completed. This incremental scan only affects our recursion algorithm, and does not change a non-recursive transfer. It is also only possible when both ends of the transfer are at least version 3.0.0.

  4.     Some options require rsync to know the full file list, so these options disable the incremental recursion mode. These include: --delete-before, --delete-after, --prune-empty-dirs, and --delay-updates. Because of this, the default delete mode when you specify --delete is now --delete-during when both ends of the connection are at least 3.0.0 (use --del or --delete-during to request this improved deletion mode explicitly). See also the --delete-delay option that is a better choice than using --delete-after.

  5.     Incremental recursion can be disabled using the --no-inc-recursive option or its shorter --no-i-r alias.

  6. -R, --relative
  7.     Use relative paths. This means that the full path names specified on the command line are sent to the server rather than just the last parts of the filenames. This is particularly useful when you want to send several different directories at the same time. For example, if you used this command:

  8.         rsync -av /foo/bar/baz.c remote:/tmp/

  9.     ... this would create a file named baz.c in /tmp/ on the remote machine. If instead you used

  10.         rsync -avR /foo/bar/baz.c remote:/tmp/

  11.     then a file named /tmp/foo/bar/baz.c would be created on the remote machine, preserving its full path. These extra path elements are called "implied directories" (i.e. the "foo" and the "foo/bar" directories in the above example).

  12.     Beginning with rsync 3.0.0, rsync always sends these implied directories as real directories in the file list, even if a path element is really a symlink on the sending side. This prevents some really unexpected behaviors when copying the full path of a file that you didn't realize had a symlink in its path. If you want to duplicate a server-side symlink, include both the symlink via its path, and referent directory via its real path. If you're dealing with an older rsync on the sending side, you may need to use the --no-implied-dirs option.

  13.     It is also possible to limit the amount of path information that is sent as implied directories for each path you specify. With a modern rsync on the sending side (beginning with 2.6.7), you can insert a dot and a slash into the source path, like this:

  14.         rsync -avR /foo/./bar/baz.c remote:/tmp/

  15.     That would create /tmp/bar/baz.c on the remote machine. (Note that the dot must be followed by a slash, so "/foo/." would not be abbreviated.) (2) For older rsync versions, you would need to use a chdir to limit the source path. For example, when pushing files:

  16.         (cd /foo; rsync -avR bar/baz.c remote:/tmp/)

  17.     (Note that the parens put the two commands into a sub-shell, so that the "cd" command doesn't remain in effect for future commands.) If you're pulling files from an older rsync, use this idiom (but only for a non-daemon transfer):

  18.         rsync -avR --rsync-path="cd /foo; rsync" \
  19.         remote:bar/baz.c /tmp/

  20. --no-implied-dirs
  21.     This option affects the default behavior of the --relative option. When it is specified, the attributes of the implied directories from the source names are not included in the transfer. This means that the corresponding path elements on the destination system are left unchanged if they exist, and any missing implied directories are created with default attributes. This even allows these implied path elements to have big differences, such as being a symlink to a directory on the receiving side.

  22.     For instance, if a command-line arg or a files-from entry told rsync to transfer the file "path/foo/file", the directories "path" and "path/foo" are implied when --relative is used. If "path/foo" is a symlink to "bar" on the destination system, the receiving rsync would ordinarily delete "path/foo", recreate it as a directory, and receive the file into the new directory. With --no-implied-dirs, the receiving rsync updates "path/foo/file" using the existing path elements, which means that the file ends up being created in "path/bar". Another way to accomplish this link preservation is to use the --keep-dirlinks option (which will also affect symlinks to directories in the rest of the transfer).

  23.     When pulling files from an rsync older than 3.0.0, you may need to use this option if the sending side has a symlink in the path you request and you wish the implied directories to be transferred as normal directories.

  24. -b, --backup
  25.     With this option, preexisting destination files are renamed as each file is transferred or deleted. You can control where the backup file goes and what (if any) suffix gets appended using the --backup-dir and --suffix options.

  26.     Note that if you don't specify --backup-dir, (1) the --omit-dir-times option will be implied, and (2) if --delete is also in effect (without --delete-excluded), rsync will add a "protect" filter-rule for the backup suffix to the end of all your existing excludes (e.g. -f "Pp *~"). This will prevent previously backed-up files from being deleted. Note that if you are supplying your own filter rules, you may need to manually insert your own exclude/protect rule somewhere higher up in the list so that it has a high enough priority to be effective (e.g., if your rules specify a trailing inclusion/exclusion of '*', the auto-added rule would never be reached).

  27. --backup-dir=DIR
  28.     In combination with the --backup option, this tells rsync to store all backups in the specified directory on the receiving side. This can be used for incremental backups. You can additionally specify a backup suffix using the --suffix option (otherwise the files backed up in the specified directory will keep their original filenames).

  29. --suffix=SUFFIX
  30.     This option allows you to override the default backup suffix used with the --backup (-b) option. The default suffix is a ~ if no --backup-dir was specified, otherwise it is an empty string.

  31. -u, --update
  32.     This forces rsync to skip any files which exist on the destination and have a modified time that is newer than the source file. (If an existing destination file has a modification time equal to the source file's, it will be updated if the sizes are different.)

  33.     Note that this does not affect the copying of symlinks or other special files. Also, a difference of file format between the sender and receiver is always considered to be important enough for an update, no matter what date is on the objects. In other words, if the source has a directory where the destination has a file, the transfer would occur regardless of the timestamps.

  34. --inplace
  35.     This option changes how rsync transfers a file when the file's data needs to be updated: instead of the default method of creating a new copy of the file and moving it into place when it is complete, rsync instead writes the updated data directly to the destination file.

  36.     This has several effects: (1) in-use binaries cannot be updated (either the OS will prevent this from happening, or binaries that attempt to swap-in their data will misbehave or crash), (2) the file's data will be in an inconsistent state during the transfer, (3) a file's data may be left in an inconsistent state after the transfer if the transfer is interrupted or if an update fails, (4) a file that does not have write permissions can not be updated, and (5) the efficiency of rsync's delta-transfer algorithm may be reduced if some data in the destination file is overwritten before it can be copied to a position later in the file (one exception to this is if you combine this option with --backup, since rsync is smart enough to use the backup file as the basis file for the transfer).

  37.     WARNING: you should not use this option to update files that are being accessed by others, so be careful when choosing to use this for a copy.

  38.     This option is useful for transfer of large files with block-based changes or appended data, and also on systems that are disk bound, not network bound.

  39.     The option implies --partial (since an interrupted transfer does not delete the file), but conflicts with --partial-dir and --delay-updates. Prior to rsync 2.6.4 --inplace was also incompatible with --compare-dest and --link-dest.

  40. --append
  41.     This causes rsync to update a file by appending data onto the end of the file, which presumes that the data that already exists on the receiving side is identical with the start of the file on the sending side. If a file needs to be transferred and its size on the receiver is the same or longer than the size on the sender, the file is skipped. This does not interfere with the updating of a file's non-content attributes (e.g. permissions, ownership, etc.) when the file does not need to be transferred, nor does it affect the updating of any non-regular files. Implies --inplace, but does not conflict with --sparse (since it is always extending a file's length).

  42. --append-verify
  43.     This works just like the --append option, but the existing data on the receiving side is included in the full-file checksum verification step, which will cause a file to be resent if the final verification step fails (rsync uses a normal, non-appending --inplace transfer for the resend).

  44.     Note: prior to rsync 3.0.0, the --append option worked like --append-verify, so if you are interacting with an older rsync (or the transfer is using a protocol prior to 30), specifying either append option will initiate an --append-verify transfer.

  45. -d, --dirs
  46.     Tell the sending side to include any directories that are encountered. Unlike --recursive, a directory's contents are not copied unless the directory name specified is "." or ends with a trailing slash (e.g. ".", "dir/.", "dir/", etc.). Without this option or the --recursive option, rsync will skip all directories it encounters (and output a message to that effect for each one). If you specify both --dirs and --recursive, --recursive takes precedence.

  47.     The --dirs option is implied by the --files-from option or the --list-only option (including an implied --list-only usage) if --recursive wasn't specified (so that directories are seen in the listing). Specify --no-dirs (or --no-d) if you want to turn this off.

  48.     There is also a backward-compatibility helper option, --old-dirs (or --old-d) that tells rsync to use a hack of "-r --exclude='/*/*'" to get an older rsync to list a single directory without recursing.

  49. -l, --links
  50.     When symlinks are encountered, recreate the symlink on the destination.

  51. -L, --copy-links
  52.     When symlinks are encountered, the item that they point to (the referent) is copied, rather than the symlink. In older versions of rsync, this option also had the side-effect of telling the receiving side to follow symlinks, such as symlinks to directories. In a modern rsync such as this one, you'll need to specify --keep-dirlinks (-K) to get this extra behavior. The only exception is when sending files to an rsync that is too old to understand -K -- in that case, the -L option will still have the side-effect of -K on that older receiving rsync.

  53. --copy-unsafe-links
  54.     This tells rsync to copy the referent of symbolic links that point outside the copied tree. Absolute symlinks are also treated like ordinary files, and so are any symlinks in the source path itself when --relative is used. This option has no additional effect if --copy-links was also specified.

  55. --safe-links
  56.     This tells rsync to ignore any symbolic links which point outside the copied tree. All absolute symlinks are also ignored. Using this option in conjunction with --relative may give unexpected results.

  57. -k, --copy-dirlinks
  58.     This option causes the sending side to treat a symlink to a directory as though it were a real directory. This is useful if you don't want symlinks to non-directories to be affected, as they would be using --copy-links.

  59.     Without this option, if the sending side has replaced a directory with a symlink to a directory, the receiving side will delete anything that is in the way of the new symlink, including a directory hierarchy (as long as --force or --delete is in effect).

  60.     See also --keep-dirlinks for an analogous option for the receiving side.

  61. -K, --keep-dirlinks
  62.     This option causes the receiving side to treat a symlink to a directory as though it were a real directory, but only if it matches a real directory from the sender. Without this option, the receiver's symlink would be deleted and replaced with a real directory.

  63.     For example, suppose you transfer a directory "foo" that contains a file "file", but "foo" is a symlink to directory "bar" on the receiver. Without --keep-dirlinks, the receiver deletes symlink "foo", recreates it as a directory, and receives the file into the new directory. With --keep-dirlinks, the receiver keeps the symlink and "file" ends up in "bar".

  64.     One note of caution: if you use --keep-dirlinks, you must trust all the symlinks in the copy! If it is possible for an untrusted user to create their own symlink to any directory, the user could then (on a subsequent copy) replace the symlink with a real directory and affect the content of whatever directory the symlink references. For backup copies, you are better off using something like a bind mount instead of a symlink to modify your receiving hierarchy.

  65.     See also --copy-dirlinks for an analogous option for the sending side.

  66. -H, --hard-links
  67.     This tells rsync to look for hard-linked files in the transfer and link together the corresponding files on the receiving side. Without this option, hard-linked files in the transfer are treated as though they were separate files.

  68.     When you are updating a non-empty destination, this option only ensures that files that are hard-linked together on the source are hard-linked together on the destination. It does NOT currently endeavor to break already existing hard links on the destination that do not exist between the source files. Note, however, that if one or more extra-linked files have content changes, they will become unlinked when updated (assuming you are not using the --inplace option).

  69.     Note that rsync can only detect hard links between files that are inside the transfer set. If rsync updates a file that has extra hard-link connections to files outside the transfer, that linkage will be broken. If you are tempted to use the --inplace option to avoid this breakage, be very careful that you know how your files are being updated so that you are certain that no unintended changes happen due to lingering hard links (and see the --inplace option for more caveats).

  70.     If incremental recursion is active (see --recursive), rsync may transfer a missing hard-linked file before it finds that another link for that contents exists elsewhere in the hierarchy. This does not affect the accuracy of the transfer, just its efficiency. One way to avoid this is to disable incremental recursion using the --no-inc-recursive option.

  71. -p, --perms
  72.     This option causes the receiving rsync to set the destination permissions to be the same as the source permissions. (See also the --chmod option for a way to modify what rsync considers to be the source permissions.)

  73.     When this option is off, permissions are set as follows:

  74.             * Existing files (including updated files) retain their existing permissions, though the --executability option might change just the execute permission for the file.
  75.             * New files get their "normal" permission bits set to the source file's permissions masked with the receiving directory's default permissions (either the receiving process's umask, or the permissions specified via the destination directory's default ACL), and their special permission bits disabled except in the case where a new directory inherits a setgid bit from its parent directory.

  76.     Thus, when --perms and --executability are both disabled, rsync's behavior is the same as that of other file-copy utilities, such as cp(1) and tar(1).

  77.     In summary: to give destination files (both old and new) the source permissions, use --perms. To give new files the destination-default permissions (while leaving existing files unchanged), make sure that the --perms option is off and use --chmod=ugo=rwX (which ensures that all non-masked bits get enabled). If you'd care to make this latter behavior easier to type, you could define a popt alias for it, such as putting this line in the file ~/.popt (the following defines the -Z option, and includes --no-g to use the default group of the destination dir):

  78.         rsync alias -Z --no-p --no-g --chmod=ugo=rwX

  79.     You could then use this new option in a command such as this one:

  80.         rsync -avZ src/ dest/

  81.     (Caveat: make sure that -a does not follow -Z, or it will re-enable the two "--no-*" options mentioned above.)

  82.     The preservation of the destination's setgid bit on newly-created directories when --perms is off was added in rsync 2.6.7. Older rsync versions erroneously preserved the three special permission bits for newly-created files when --perms was off, while overriding the destination's setgid bit setting on a newly-created directory. Default ACL observance was added to the ACL patch for rsync 2.6.7, so older (or non-ACL-enabled) rsyncs use the umask even if default ACLs are present. (Keep in mind that it is the version of the receiving rsync that affects these behaviors.)

  83. -E, --executability
  84.     This option causes rsync to preserve the executability (or non-executability) of regular files when --perms is not enabled. A regular file is considered to be executable if at least one 'x' is turned on in its permissions. When an existing destination file's executability differs from that of the corresponding source file, rsync modifies the destination file's permissions as follows:

  85.             * To make a file non-executable, rsync turns off all its 'x' permissions.
  86.             * To make a file executable, rsync turns on each 'x' permission that has a corresponding 'r' permission enabled.

  87.     If --perms is enabled, this option is ignored.
复制代码

论坛徽章:
0
10 [报告]
发表于 2008-06-14 00:00 |只看该作者

  1. -A, --acls
  2.     This option causes rsync to update the destination ACLs to be the same as the source ACLs. The option also implies --perms.

  3.     The source and destination systems must have compatible ACL entries for this option to work properly. See the --fake-super option for a way to backup and restore ACLs that are not compatible.

  4. -X, --xattrs
  5.     This option causes rsync to update the remote extended attributes to be the same as the local ones.

  6.     For systems that support extended-attribute namespaces, a copy being done by a super-user copies all namespaces except system.*. A normal user only copies the user.* namespace. To be able to backup and restore non-user namespaces as a normal user, see the --fake-super option.

  7. --chmod
  8.     This option tells rsync to apply one or more comma-separated "chmod" strings to the permission of the files in the transfer. The resulting value is treated as though it was the permissions that the sending side supplied for the file, which means that this option can seem to have no effect on existing files if --perms is not enabled.

  9.     In addition to the normal parsing rules specified in the chmod(1) manpage, you can specify an item that should only apply to a directory by prefixing it with a 'D', or specify an item that should only apply to a file by prefixing it with a 'F'. For example:

  10.         --chmod=Dg+s,ug+w,Fo-w,+X

  11.     It is also legal to specify multiple --chmod options, as each additional option is just appended to the list of changes to make.

  12.     See the --perms and --executability options for how the resulting permission value can be applied to the files in the transfer.

  13. -o, --owner
  14.     This option causes rsync to set the owner of the destination file to be the same as the source file, but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super options). Without this option, the owner of new and/or transferred files are set to the invoking user on the receiving side.

  15.     The preservation of ownership will associate matching names by default, but may fall back to using the ID number in some circumstances (see also the --numeric-ids option for a full discussion).

  16. -g, --group
  17.     This option causes rsync to set the group of the destination file to be the same as the source file. If the receiving program is not running as the super-user (or if --no-super was specified), only groups that the invoking user on the receiving side is a member of will be preserved. Without this option, the group is set to the default group of the invoking user on the receiving side.

  18.     The preservation of group information will associate matching names by default, but may fall back to using the ID number in some circumstances (see also the --numeric-ids option for a full discussion).

  19. --devices
  20.     This option causes rsync to transfer character and block device files to the remote system to recreate these devices. This option has no effect if the receiving rsync is not run as the super-user (see also the --super and --fake-super options).

  21. --specials
  22.     This option causes rsync to transfer special files such as named sockets and fifos.

  23. -D
  24.     The -D option is equivalent to --devices --specials.

  25. -t, --times
  26.     This tells rsync to transfer modification times along with the files and update them on the remote system. Note that if this option is not used, the optimization that excludes files that have not been modified cannot be effective; in other words, a missing -t or -a will cause the next transfer to behave as if it used -I, causing all files to be updated (though rsync's delta-transfer algorithm will make the update fairly efficient if the files haven't actually changed, you're much better off using -t).

  27. -O, --omit-dir-times
  28.     This tells rsync to omit directories when it is preserving modification times (see --times). If NFS is sharing the directories on the receiving side, it is a good idea to use -O. This option is inferred if you use --backup without --backup-dir.

  29. --super
  30.     This tells the receiving side to attempt super-user activities even if the receiving rsync wasn't run by the super-user. These activities include: preserving users via the --owner option, preserving all groups (not just the current user's groups) via the --groups option, and copying devices via the --devices option. This is useful for systems that allow such activities without being the super-user, and also for ensuring that you will get errors if the receiving side isn't being running as the super-user. To turn off super-user activities, the super-user can use --no-super.

  31. --fake-super
  32.     When this option is enabled, rsync simulates super-user activities by saving/restoring the privileged attributes via special extended attributes that are attached to each file (as needed). This includes the file's owner and group (if it is not the default), the file's device info (device & special files are created as empty text files), and any permission bits that we won't allow to be set on the real file (e.g. the real file gets u-s,g-s,o-t for safety) or that would limit the owner's access (since the real super-user can always access/change a file, the files we create can always be accessed/changed by the creating user). This option also handles ACLs (if --acls was specified) and non-user extended attributes (if --xattrs was specified).

  33.     This is a good way to backup data without using a super-user, and to store ACLs from incompatible systems.

  34.     The --fake-super option only affects the side where the option is used. To affect the remote side of a remote-shell connection, specify an rsync path:

  35.         rsync -av --rsync-path="rsync --fake-super" /src/ host:/dest/

  36.     Since there is only one "side" in a local copy, this option affects both the sending and receiving of files. You'll need to specify a copy using "localhost" if you need to avoid this, possibly using the "lsh" shell script (from the support directory) as a substitute for an actual remote shell (see --rsh).

  37.     This option is overridden by both --super and --no-super.

  38.     See also the "fake super" setting in the daemon's rsyncd.conf file.

  39. -S, --sparse
  40.     Try to handle sparse files efficiently so they take up less space on the destination. Conflicts with --inplace because it's not possible to overwrite data in a sparse fashion.

  41.     NOTE: Don't use this option when the destination is a Solaris "tmpfs" filesystem. It doesn't seem to handle seeks over null regions correctly and ends up corrupting the files.

  42. -n, --dry-run
  43.     This makes rsync perform a trial run that doesn't make any changes (and produces mostly the same output as a real run). It is most commonly used in combination with the -v, --verbose and/or -i, --itemize-changes options to see what an rsync command is going to do before one actually runs it.

  44.     The output of --itemize-changes is supposed to be exactly the same on a dry run and a subsequent real run (barring intentional trickery and system call failures); if it isn't, that's a bug. Other output is the same to the extent practical, but may differ in some areas. Notably, a dry run does not send the actual data for file transfers, so --progress has no effect, the "bytes sent", "bytes received", "literal data", and "matched data" statistics are too small, and the "speedup" value is equivalent to a run where no file transfers are needed.

  45. -W, --whole-file
  46.     With this option rsync's delta-transfer algorithm is not used and the whole file is sent as-is instead. The transfer may be faster if this option is used when the bandwidth between the source and destination machines is higher than the bandwidth to disk (especially when the "disk" is actually a networked filesystem). This is the default when both the source and destination are specified as local paths.

  47. -x, --one-file-system
  48.     This tells rsync to avoid crossing a filesystem boundary when recursing. This does not limit the user's ability to specify items to copy from multiple filesystems, just rsync's recursion through the hierarchy of each directory that the user specified, and also the analogous recursion on the receiving side during deletion. Also keep in mind that rsync treats a "bind" mount to the same device as being on the same filesystem.

  49.     If this option is repeated, rsync omits all mount-point directories from the copy. Otherwise, it includes an empty directory at each mount-point it encounters (using the attributes of the mounted directory because those of the underlying mount-point directory are inaccessible).

  50.     If rsync has been told to collapse symlinks (via --copy-links or --copy-unsafe-links), a symlink to a directory on another device is treated like a mount-point. Symlinks to non-directories are unaffected by this option.

  51. --existing, --ignore-non-existing
  52.     This tells rsync to skip creating files (including directories) that do not exist yet on the destination. If this option is combined with the --ignore-existing option, no files will be updated (which can be useful if all you want to do is delete extraneous files).
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP