2

У меня есть скрипт, который генерирует файлы журналов, которые я помещаю в /tmp Я запускаю его в Linux RedHat, Ubuntu, Solaris и AIX.

Мне интересно, я должен периодически чистить журналы самостоятельно (например, через 14 дней), или операционные системы могут очищать их самостоятельно, так как они находятся в /tmp?

3 ответа3

3

Если ваша ОС не очищает /tmp автоматически, установите tmpreaper или tmpwatch. Они могут быть установлены как cronjobs, так что очистка происходит автоматически. Они легко настраиваются в соответствии с вашими предпочтениями: что хранить, что чистить и когда чистить.

В Debian-подобной системе выполните apt-get install tmpreaper . Файл конфигурации, как правило, /etc/tmpreaper.conf .

Как узнать, установлен ли один из них? Один из способов - запустить locate tmpreaper locate tmpwatch и посмотреть, что получится. Если они установлены, вы можете проверить их конфигурационные файлы (в /etc/). В системах, подобных debian, необходимо вручную изменить /etc/tmpreaper.conf чтобы tmpreaper мог работать под cron .

Обычно все файлы в /tmp удаляются при каждой перезагрузке. Следовательно, такие программы, как tmpreaper , нужны только на машинах с длительным временем работы.

1

Вы можете проверить с помощью df -T и посмотреть, смонтирована ли /tmp как отдельная файловая система. Если это не так, существует высокая вероятность того, что он не будет очищен автоматически. Например, в моем окне CentOS 7.1 /tmp является лишь частью корневой файловой системы (/) и содержит старые файлы до последней перезагрузки.

На моем ноутбуке df -T дает мне:

Filesystem           Type        1K-blocks       Used  Available Use% Mounted on
dev                  devtmpfs      1912020          0    1912020   0% /dev
run                  tmpfs         1919840       1008    1918832   1% /run
/dev/mapper/vg0-root ext4        118698260   89524160   23121444  80% /
tmpfs                tmpfs         1919840     168044    1751796   9% /dev/shm
tmpfs                tmpfs         1919840          0    1919840   0% /sys/fs/cgroup
tmpfs                tmpfs         4194304        168    4194136   1% /tmp
/dev/sda1            ext4            95054      59743      28143  68% /boot
tmpfs                tmpfs          383968        104     383864   1% /run/user/1000

Все tmpfs находятся в оперативной памяти и очищаются при перезагрузке.

Если /tmp не монтируется отдельно, вы можете добавить запись в /etc/fstab например:

tmpfs /tmp tmpfs nodev,nosuid,size=nG 0 0

Это позволит создать файловую систему RAM размером n Гига. Обязательно укажите меньшее число, чем объем доступной памяти.


В качестве альтернативы user3163621 , вы можете просто добавить запись в crontab, например:

@reboot rm -rf /tmp/* /tmp/.*

0

Linux, Ubuntu и Solaris очистят ваш /tmp при перезагрузке. Но не AIX, файл в /tmp останется там.

Вы можете настроить cronjob, чтобы сделать это для вас как root

0 1 * * * find /tmp -atime -14 -exec rm {} \;

В 1:00 утра каждый день он находит и удаляет файлы, к которым последний раз обращались 14 дней назад. или вы можете поставить -mtime -14 для последних измененных файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .