我想要進行備份,但我的磁帶沒有空間容納所有內容,因此我決定不備份虛擬機器(超過 1tb)。
我有虛擬機.local/share/libvirt/images
我用了這個命令
tar cvf - /home/user -X altro/file.esclude | openssl aes-256-cbc -salt -k "password" | dd bs=80M of=/dev/st0
我altro/file.esclude
把這一行/home/user/.local/share/libvirt/images
但 tar 會忽略排除檔案並備份所有內容!
所以我用
tar cvf - /home/user --exclude '/home/user/.local/share/libvirt/images' | openssl aes-256-cbc -salt -k "password" | dd bs=80M of=/dev/st0
還有……同樣的事情!
為什麼?
系統是帶有 gnu tar 的 Slackware 14.2
答案1
X 必須位於要包含在 tar 檔案中的路徑之前。
所以:
tar cvf - /home/user -X altro/file.esclude | openssl aes-256-cbc -salt -k "password" | dd bs=80M of=/dev/st0
是錯的。
這:
tar cvf - -X /home/user/altro/file.esclude /home/user | openssl aes-256-cbc -salt -k "pass" | dd bs=80M of=/dev/st0
是對的
在排除文件中,我使用
/home/user/.local/share/libvirt/images/*