定期运行 btrfs-scrub

定期运行 btrfs-scrub

手册btrfs-scrub页说:

用户应该手动或通过定期系统服务运行它。建议的期限是一个月,但也可以更短。

对于systemd用户来说,这是如何自动化的,捕获日志中的所有输出?

我正在运行基于 Arch Linux 的 Manjaro。

答案1

Arch Linux 为 btrfs-progs 提供了一个 .timer 单元文件,btrfs-scrub可以通过以下方式激活:

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

成为一个善良的懒惰sysadmin,我想出了以下内容,它将[email protected]在所有当前安装的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 为我指明了正确的方向。

相关内容