Существует ли умный способ выполнить сценарий, когда дисковое пространство является низким? Я знаю, что могу вручную проверить дисковое пространство, но оно походит на типичную проблему хотеть удалить файлы журнала, когда дисковое пространство является низким (например), который является тем, что я хочу сделать.
Если Вы конкретно не обеспокоены своими файлами журнала, Вы могли бы поместить сценарий для проверки дискового пространства в крон.
Автоматически очищающиеся старые журналы - то, для чего logrotate
.
Вы можете использовать df
и однострочный сценарий оболочки.
Во-первых, нам нужно сообщить df
, чтобы он печатал только используемый процент:
df / --output='pcent'
Объедините это с grep, чтобы получить только число:
df / --output='pcent' | grep -o "[0-9]*"
Это даст, например, «55», если диск заполнен на 55%.
Теперь в crontab мы можем использовать это так:
@daily sh -c "if [ $(df / --output='pcent' | grep -o "[0-9]*") -gt 90 ]; then docker system prune -af; fi
В этом примере мы запускаем docker system prune -af
, если диск заполнен более чем на 90%. Отрегулируйте по мере необходимости.