Периодический запуск btrfs-scrub

Поскольку вывод в stderr приведен ниже, это означает, что переменная $ AEM_CONFIG не устанавливается. Вот почему работа терпит неудачу.

/global/appaem/aem/bin/aem-test.sh: line 5: /aem-wrap.conf: No such file or directory

Чтобы решить эту проблему, измените сценарий, указав источник соответствующего файла, который устанавливает $ AEM_CONFIG .

Как вы указываете, переменная определена в .bashrc, см. cron игнорирует переменные, определенные в «.bashrc» и «.bash_profile» . Вам нужно добавить в свой скрипт такую ​​строку, как source ~ / .bashrc . Пример:

#!/bin/bash
declare -r PATH='/sbin:/bin:/usr/sbin:/usr/bin'
source ~/.bashrc
source $AEM_CONFIG/aem-wrap.conf

2
05.02.2017, 14:58
2 ответа

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}

4
27.01.2020, 21:59

Будучи добродетельно ленивым сисадмином, я придумал следующее, что запустит и включит 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 за указание правильного направления.

1
27.01.2020, 21:59

Теги

Похожие вопросы