정기적으로 btrfs-scrub 실행

정기적으로 btrfs-scrub 실행

매뉴얼 btrfs-scrub페이지에는 다음과 같이 나와 있습니다.

사용자는 수동으로 실행하거나 예약된 시스템 서비스를 통해 실행해야 합니다. 권장 기간은 1개월이지만, 더 짧을 수도 있습니다.

systemd모든 출력을 로그에 캡처하여 사용자를 위해 이를 어떻게 자동화할 수 있습니까?

저는 Arch Linux를 기반으로 Manjaro를 실행하고 있습니다.

답변1

btrfs-scrubArch 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에게 감사드립니다.

관련 정보