如何告訴 systemctl 在空閒時自動卸載驅動器並在卸載後刪除目錄?

如何告訴 systemctl 在空閒時自動卸載驅動器並在卸載後刪除目錄?

我在 fstab 中有此條目:

LABEL=cache /disks/cache ext4 rw,user,x-mount.mkdir,relatime,noauto,errors=remount-ro,x-systemd.idle-timeout=120min  0 0

我期望要做的是:

  1. 每當我需要時,將帶有標籤快取的磁碟安裝在 /disks/cache 上
  2. 建立路徑 /dsisks/cache(如果不存在)
  3. 向我的用戶或任何有缺陷的用戶授予 +rwx 權限
  4. 如果磁碟在 1 小時後空閒,則自動卸載該磁碟

為什麼步驟 4 不起作用以及如何在卸載後刪除該資料夾,是否有 x-umount.rmdir 選項?

答案1

您所描述的內容無法在 fstab 中完成。

以下是典型的磁碟掛載方式:

  • 將它們新增至 fstab 中,以便在啟動時自動安裝它們。 (fstab 中的defaultsor選項auto可以執行此操作。)
  • 手動掛載它們,可以以 root 身份指定所有參數,也可以僅作為掛載點或設備手動掛載,並使用 fstab 中的其餘選項,或者以用戶身份使用 fstab 中列出的條目並使用noauto,user第四列中的選項。
  • 使用udisk自動掛載熱插入磁碟,例如CDROM和U盤,通常會掛載在/media目錄上。然而,這僅根據用戶需求卸載。 U 碟通常安裝在裝置插入上,但也可以從命令列觸發。
  • 當引用目錄時,使用 autofs 按需掛載它們,並在逾時後卸載它們,並且不再使用它們。

Autofs 的設定方式是,每行列出一個託管頂級目錄,/etc/auto.master每個託管目錄都有一個設定文件,每個設定檔都列出託管目錄的子目錄。

例如,auto.master 可以列出,/etc/auto.misc而 auto.master 又可以列出許多檔案系統或具有潛在檔案系統的裝置。 autofs 隨附的預設 auto.misc 清單(預設會被註解掉)如果被存取且檔案系統在該裝置上可用,floppy則會掛載該清單。/misc/floppy

來自 auto.master 的範例行:

/misc  /etc/auto.misc
/home  /etc/auto.home
/disks  /etc/auto.disks   --timeout=3600

auto.misc 中的範例行:

floppy         -fstype=auto            :/dev/fd0

來自 auto.home 的範例行:

someuser         homeserver:/export/home/someuser

Autofs 可以執行您要求的所有操作,除了設定權限(通常從已掛載檔案系統上的根目錄的權限繼承)或掛載選項(如果檔案系統支援)。上面的(未經測試的)磁碟行需要一個相應的/etc/auto.disks檔案來描述您想要安裝的檔案系統/disks/

答案2

透過建立每個裝置的自動掛載檔案systemd。為此,請建立一個/etc/systemd/system/diskname.automount包含以下內容的檔案:

[Unit]
Description=Automountaje de discos de usuario
After=blockdev@dev-disk-by\x2dlabel-cch.target

[Automount]
Where= mountpoint
TimeoutIdleSec=10

[Install]
WantedBy=multi-user.target

將 mountpoint 替換為所需位置,並確保該位置已正確指派給 中的單元磁碟機/etc/fstab

它應該直接工作。

相關內容