Linux
防止將數據寫入未掛載的掛載點目錄的可能性
我有一個 Ubuntu 伺服器,每次啟動都會自動安裝一個外部硬碟驅動器。
為此,我在根分區上創建了一個空文件夾,並將驅動器安裝在該文件夾的“內部”。
但是,如果我在未正確安裝驅動器的情況下執行此路徑的備份怎麼辦?備份會填滿我的根分區!
我可以通過執行以下操作確保每次都安裝驅動器:
sudo mount -a
…在每次備份之前。
但是,確保數據永遠不會寫入空安裝文件夾的最佳做法是什麼(除非真正安裝了外部硬碟驅動器)?
這可以在沒有腳本的情況下解決嗎?比如說權限?最佳實踐是什麼?
我更進一步,總是使用**chattr**將我的掛載點目錄的屬性設置為不可變的。
這是通過
chattr +i /mountpoint
(解除安裝安裝)完成的。這會在新的寫入活動中出錯,並且還會在其他情況下保護掛載點。
但我想你也可以使用mountpoint 命令;)
為了擴展關於 using 的評論
mountpoint
,當我需要檢查這些事情時,這大致是我放入腳本中的內容:DEST='/mnt/backup' if ! mountpoint -q "$DEST" ; then echo "Destination is not mounted; attempting to mount" mount $DEST if ! mountpoint -q "$DEST" ; then echo "Unable to mount $DEST; Aborting" exit 1 fi echo "Mounted $DEST; Continuing backup" fi
這假設 $DEST 存在於
/etc/fstab
; 不管是掛載點auto
還是noauto
掛載點。根據
mount
手冊頁:如果只給出目錄或設備,例如:
mount /dir
然後 mount 查找掛載點,如果未找到,則在 /etc/fstab 文件中查找設備。可以使用 –tar-get 或 –source 選項來避免對給定參數的矛盾解釋。例如
mount --target /mountpoint