Назад | Перейти на главную страницу

Файловая система на виртуальной машине медленно заполняется каждые два часа, а затем внезапно возвращается в исходное состояние.

Позвольте мне начать говорить, что я не системный администратор, я программист на php, мало разбирающийся в системах unix, так что извините, если я скажу какую-то ерунду.

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

Поскольку я недавно очистил оболочку, установленную в файловой системе, через дыру в одной из многих устаревших установок WordPress, теперь я предполагаю, что это вызывает какое-то вредоносное ПО (или, может быть, какой-то ужасный сценарий, написанный идиотом).

Снимок экрана, показывающий использование диска веб-монитором Glances + Grafana

С участием df Я вижу, что диск постоянно сам заполняется, пока не остается места.

С участием du Я только вижу, что только каталоги /var/log/ и /var/lib/php5/sessions увеличивают свои размеры, как это обычно бывает

Я подозревал, что во временной папке что-то есть и, действительно, с inotifywait -m /tmp/ -r -e create -e moved_to -e modify а на выходе - бесконечная подпоследовательность /tmp/ MODIFY tmpf9dIVwz. Имя файла остается неизменным во время заливки и в следующий раз будет другим. Я попытался выяснить, что это за файл и какой процесс его пишет / редактирует, но папка / tmp / всегда пуста, а файл не существует ..

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

Нашел.

ps aux | grep php показал мне, какой скрипт php был запущен, и pid совпал с показанными ls -d /proc/[1-9]*/fd/* | grep tmp.

Это плохо написанный скрипт php, который пытается сделать SQL UPDATE несуществующих данных (плохо проанализированный CSV-файл) в бесконечном while петля.

Теперь я предполагаю, что неудача UPDATE оператор (который запускает PHP FATAL, который нигде не регистрируется) является причиной насыщения /tmp папка