Rsync
如何在 rsync/rsnapshot 中排除符號連結
我
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
,這是一個目錄
除非您在配置文件中設置
rsync_short_args
或,否則您將使用它來執行複制。rsync_long_args``rsnapshot``rsync -a
的預設操作
rsync -a
是將符號連結複製為符號連結,並忽略符號連結的目標。(顯然,如果符號連結的目標在您的源文件樹中,它將被複製,但這是因為它的位置而不是因為它是包含符號連結的目標。)如果要排除符號連結本身,只需在
exclude
一行中引用它:exclude /foo/bar
我沒有包括前導
/home
,因為那是原始碼樹的根,過濾器總是基於源的根。