Arch-Linux

定期執行 btrfs-scrub

  • February 8, 2017

btrfs-scrub手冊頁說:

使用者應該手動或通過定期系統服務執行它。建議的時間是一個月,但可能會更少。

對於systemd使用者來說,這是如何自動化的,擷取日誌中的所有輸出?

我正在執行基於 Arch Linux 的 Manjaro。

作為一個非常懶惰的系統管理員,我想出了以下內容,它將啟動並啟用btrfs-scrub@XXX.timer所有目前安裝的btrfs文件系統:

awk '$3=="btrfs" { system("systemd-escape " $2 "| cut -c2-") }' /etc/fstab | while read -r fs; do
   [[ -z $fs ]] && fs=- # Set to '-' for the root FS
   sudo systemctl enable btrfs-scrub@"$fs".timer
   sudo systemctl start btrfs-scrub@"$fs".timer
done

感謝@Head_on_a_Stick 為我指明了正確的方向。

Arch Linux 為 btrfs-progs 提供了一個 .timer 單元文件btrfs-scrub,可以通過以下方式啟動它:

systemctl enable btrfs-scrub@-.timer

@ 符號後面的破折號(“-”)用於表示根目錄,有關更多資訊,請參見 ArchWiki 頁面:

https://wiki.archlinux.org/index.php/Btrfs#Start_with_a_service_or_timer

要檢查狀態,請使用:

systemctl list-timers

或者:

journalctl -u btrfs-scrub@-.{timer,service}

引用自:https://unix.stackexchange.com/questions/342642