Как автоматически обрабатывать небольшое дисковое пространство?

В настоящее время один из наших прототипов имеет очень плохую систему кэширования. В течение нескольких минут он заполняет жесткий диск и делает систему непригодной для использования. Что мне нужно сделать, так это перезапустить службу mysql, чтобы освободить место.

Мой вопрос: есть ли способ перезапустить службу mysql, когда диск получает более 95% использования?

Я знаю, что это совершенно неортодоксально. И да, я знаю, что на самом деле это не решение, но мы говорим о прототипе, который должен работать для презентации и других целей тестирования, а не быть стабильным и правильным.

  • SFTP с паролем пользователя MySQL вместо PAM
  • Как подписать скрипт Bash в качестве клиента MQTT
  • Ошибка обновления MySQL (debian)
  • Обнаружение сценария, вызвавшего неудачные соединения MySQL
  • Добавление к CSV-файлу после получения базы данных из базы данных
  • Как использовать туннель SSH для подключения к удаленному серверу MySQL?
  • Modoboa 1.1.1 Ошибки развертывания
  • Shell: Как удалить все связанные пакеты с определенным? / Ubuntu
  • 3 Solutions collect form web for “Как автоматически обрабатывать небольшое дисковое пространство?”

    Если вы используете systemd для запуска mysql вы можете добавить LimitFSIZE в файл устройства.

    Без systemd вы можете использовать ulimit :

     bash -c 'ulimit -f 100; dd if=/dev/zero of=bigfile bs=10M count=1; echo foo' 

    Однако оба подхода не относятся к свободному пространству. Вы должны заранее рассчитать, сколько они могут потреблять.

    Возможно, квота файловой системы более гибкая (я не знаком с ними). Это будет вариант, если у вас есть учетная запись пользователя, которая просто запускает mysql (что, вероятно, так или иначе).

    Как вы говорите, вы просите неортодоксальное решение, но, поскольку вы это признаете, вы можете проверить свободное пространство с помощью df

     df /partition/you/need/to/monitor 

    Разберите вывод этого и на основе того, что вы найдете, перезапустите службу mysql. Вероятно, для этого вам понадобятся привилегии root, поэтому вам может потребоваться разрешение перезапуска службы с настройкой sudo без пароля .

    Вы можете автоматизировать все это с помощью cron.

    Если вы используете monit, вы можете сделать это, чтобы контролировать файловую систему и перезапускать mysql-сервисы, когда дисковое пространство слишком низкое.

    Проверьте https://mmonit.com/monit/documentation/monit.html#filesystem_flags_testing

    Linux и Unix - лучшая ОС в мире.