Backup
使用 rsync 或 cp 時如何保持文件和目錄的 mtime?用於備份/增量備份
我有一個新的 NAS 盒,在查看了許多備份解決方案後,我發現通過 PuTTy 手動操作效果最好。
通過 PuTTy 以 root 身份登錄到盒子後,我首先需要將整個磁碟複製到 USB 硬碟上(每週一次)。我一直在使用:
cp -Rp /data/Backup /media/USB_HDD_3/Backup
我已經嘗試過
rysnc -a
,我得到了類似的結果,因為文件本身保留了 mtime,但目錄沒有。然後每天我都會做一個增量備份。我一直在為此建造:
find . -mtime -2 -exec cp -Rp {} /media/USB_FLASH_1/ \;
再次,我嘗試替換
cp - Rp
無濟於事rsync -a
。我最終只是將整個備份轉移了,就像它甚至沒有查看 mtime 一樣。我對 Linux 和 Unix 還很陌生,所以我從網上找到的東西改編了其中的大部分內容,然後嘗試將它們放在一起,這可能是它不起作用的原因。
rsync -a
如果你只是這樣做應該可以工作:rsync -av /data/Backup /media/USB_HDD_3
如果它不保留目錄時間戳,這可能是
rsync
版本中的一個錯誤。作為替代方案,您可以嘗試 GNUcpio
:find . -mtime -2 -print0 | cpio -0mdp /media/USB_FLASH_1
或者更便攜(不會處理帶有換行符的文件名):
find . -mtime -2 | cpio -mdp /media/USB_FLASH_1
請注意,
BusyBox
建構通常包含各種工具的精簡版本。即使完全建構,它也不完全符合 POSIX,cpio
實際上也POSIX
不再符合標準。您的版本很可能BusyBox
是在不支持該-p
選項的情況下建構的。您需要在cpio
啟用這些選項的情況下使用 a。我用 GNU 測試了上述內容
cpio
。我找不到它的舊標準的連結,但很可能任何符合它的東西都會支持所有這些選項,除了-0
.