手册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 为我指明了正确的方向。