我用来rsnapshot
管理我的备份。该文件/home/foo/bar
是文件夹的符号链接,我想排除它。该--exclude
选项不起作用,因为如果模式以 a 结尾,/
那么它将仅匹配目录,而不匹配符号链接。
我怎么能这样做呢?
手册rsync
页说:
如果模式以 a 结尾,
/
则它将仅匹配目录,而不匹配常规文件、符号链接或设备。
所以我要问的是:如何从rsnapshot
文件夹的符号链接中排除?
如果链接是/home/foo/bar
,则以下哪一行配置是正确的?
exclude /home/foo/bar/
exclude /home/foo/bar
exclude /home/foo/bar**
exclude /home/foo/bar***
这是我现在使用的配置文件:
config_version 1.2
snapshot_root /media/satellite/rsnapshot/
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_logger /usr/bin/logger
retain hourly 6
retain daily 7
retain weekly 4
verbose 2
loglevel 3
lockfile /var/run/rsnapshot.pid
exclude /home/roberto/media/
exclude /home/roberto/media
exclude /home/roberto/media**
exclude /home/roberto/media***
backup /home/ localhost/
backup /etc/ localhost/
backup /usr/local/ localhost/
backup /var/www/ localhost/
/home/roberto/media
符号链接在哪里/media
,即目录
答案1
除非您在配置文件中设置rsync_short_args
或,否则您将使用 来执行复制。rsync_long_args
rsnapshot
rsync -a
默认操作是rsync -a
将符号链接复制为符号链接,并忽略符号链接的目标。 (显然,如果符号链接的目标位于源文件树中,它将被复制,但这是因为它的位置而不是因为它是包含的符号链接的目标。)
如果你想排除符号链接本身,你只需要在一行中引用它exclude
:
exclude /foo/bar
我没有包含前导,/home
因为这是源树的根,并且过滤器始终基于源的根。