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

Что создает файлы / var / tmp / sort *?

Иногда на моем сервере Linux Debian я обнаруживал кучу файлов sort * (sort0ylf0b, sort8KXDHC, sortCoMKVq) размером более 30 МБ каждый. Кто создает эти файлы в / var / tmp?

Я пытаюсь гуглить, но ничего.

Любые идеи? Спасибо.

Я не уверен, что могло вызвать это. Если файлы все еще открыты, вы можете увидеть, в каком процессе они были открыты, с помощью утилиты lsof (что означает «список открытых файлов»):

lsof /var/tmp/sort*

Если какой-либо из этих файлов в настоящее время открыт, вы увидите результат, который выглядит примерно так (за исключением того, что я запускал lsof для / tmp / *):

COMMAND   PID    USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
xmms2d  28523 jonhall    3u  unix 0xffff880025052100      0t0 2272384 /tmp/xmms-ipc-jonhall
xmms2d  28523 jonhall   11u  unix 0xffff880194d7de00      0t0 2272401 /tmp/xmms-ipc-jonhall

Единственная информация, которая вам действительно важна в выводе, - это PID. Попробуй это:

ps 28523  # Replace the number with the PID from your own output, obviously

И вы должны увидеть виновника:

  PID TTY      STAT   TIME COMMAND
28523 ?        SLl   11:30 /usr/bin/xmms2d --status-fd=4

В моем случае файлы открыты именно через xmms2d.

Все это зависит от того, что lsof даст вам полезный результат. Если это не так, попробуйте запустить одну и ту же команду lsof несколько раз. Если размер этих временных файлов составляет 30 МБ, потребуется немного времени (возможно, пара секунд?), Чтобы их записать, поэтому, если вы можете «поймать это в действии», lsof должен сообщить вам то, что вам нужно знать. Конечно, все зависит от того, как часто эти файлы записываются.

Удачи!

Эти файлы, вероятно, были созданы из-за периодического запуска updatedb (для locate команда). На самом деле я обнаружил ту же проблему в cygwin, где /var/tmp несколько лет назад было более 5 ГБ старых файлов. (в моей системе updatedb это сценарий, который вызывает mktemp который использует что угодно $TMPDIR в настоящее время установлено значение; updatedb устанавливает это в /var/tmp)

В /var/tmp dir традиционно не удаляется при перезагрузке, а /tmp было бы; аналогично, /var/tmp обычно это больший раздел, поддерживаемый диском, тогда как /tmp может быть просто память (вызывающая updatedb отказать или исчерпать пространство (память), если оно использовалось.) Эти предположения могут не соответствовать вашей системе; в случае «фиксации» updatedb, вы можете (в зависимости от платформы) обновить /etc/updatedb.conf написать в /tmp вместо того /var/tmp. (Или запустите задание cron, которое периодически очищает старые /var/tmp/sort* файлы.)

Для справки см. Это ошибка debian (закрыто как «не ошибка», так как это изменение конфигурации).

Кто владелец этих файлов? Иногда это может дать вам подсказку.

Обычно эти файлы создаются, если sort приходится прочесывать массивный файл. Он использует эти файлы как временные файлы при сортировке больших объемов данных.