マニュアルbtrfs-scrub
ページには次のように記載されています。
ユーザーは手動で実行するか、スケジュールされたシステムサービスを介して実行する必要があります。推奨期間は1ヶ月ですが、短い場合があります。
systemd
すべての出力をログにキャプチャして、ユーザーのためにこれをどのように自動化できますか?
私はArch Linuxに基づいてManjaroを実行しています。
答え1
btrfs-scrub
Arch Linuxには、次の方法で有効にできるbtrfs-progs用の.timerユニットファイルが用意されています。
systemctl enable [email protected]
@記号の後のダッシュ( "-")は、ルートディレクトリを表すために使用されます。詳しくはArchWikiのページをご覧ください。
https://wiki.archlinux.org/index.php/Btrfs#Start_with_a_service_or_timer
ステータスを確認するには、以下を使用してください。
systemctl list-timers
または:
journalctl -u btrfs-scrub@-.{timer,service}
答え2
になるフレンドリーな怠惰[email protected]
sysadmin、現在マウントされているすべてのファイルシステム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に感謝します。