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

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

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

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

  • Как я могу заставить apache автоматически запускаться в linux mint?
  • Идентификатор сервера MySQL не устанавливается с помощью Fedora 16
  • MySQL не запускается в Linux
  • Заполнение вкладки не работает в клиенте командной строки MySQL
  • Debian 8 - установить последнюю версию MySQL
  • apt-get продолжает пытаться установить пакет, который уже установлен
  • Корневая учетная запись MySQL без пароля?
  • phpmyadmin перечисляет версию моего сервера и версию клиента как отличающуюся
  • 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 - лучшая ОС в мире.