Какой самый эффективный способ обработки /tmp и дисковых квот в Linux

Я использую VPS с веб-сервером (Apache+PHP), базой данных (MySQL) и сервером SMTP (Exim). ОС: Debian Ленни. Оперативная память: 512 МБ. Использование (quota] ( http://packages.debian.org/lenny/quota).

На данный момент я /tmp монтируется как tmpfs. Это не идеально, так как у меня всего 512 МБ ОЗУ и, таким образом, /tmp только 256 МБ. Я решил создать файл раздела ext3 объемом 1 ГБ (или как он там называется) на /var/tmpdisk, (решение об использовании ext3 было принято после прочтения Askubuntu.com: Хорошая файловая система для /tmp?)

Для поддержания чистоты /tmp во время работы я нашел tmpreaper: faultserver.ru: Очистка /tmp

Что бы порекомендовать для быстрого вытирания /var/tmpdisk при сохранении настроек квоты?

В настоящее время я думаю сделать следующее при запуске (/etc/rc.local?):

  1. Проверить на наличие /var/tmpdisk, если он не существует, запустите dd if=/dev/zero of=/var/tmpdisk bs=1K count=1000000
  2. Создайте файловую систему ext3 в /var/tmpdisk, Для меня это был самый быстрый способ очистки "диска". Команда: mkfs.ext3 -F /var/tmpdisk
  3. Смонтировать его на /tmp: mount -t ext3 -o loop,rw,nodev,noexec,nosuid,quota /var/tmpdisk /tmp

В этом черновике я не добавил способ сохранения настроек квоты. Есть идеи?

1 ответ

Большинство моих требований уже были доступны в Debian.

По умолчанию, /etc/default/rcS устанавливает переменную окружения TMPTIME=0,

$ man rcS:

TMPTIME

При загрузке файлы в /tmp будут удалены, если время их изменения больше, чем TMPTIME дней назад. Значение 0 означает, что файлы удаляются независимо от возраста. Если вы не хотите, чтобы система очищала /tmp, тогда установите TMPTIME в отрицательное значение (например, -1) или в слово бесконечное.

Глядя в /lib/init/bootclean.shЯ узнал, что файл квоты './aquota.user(owned by root) is excluded from removing. Conclusion: quota settings will persist during reboots andTMPTIME = 0can safely be set in/ И т.д. / по умолчанию /rcS`.

Хранить /tmp чистый во время работы, я установил tmpreaper, Чтобы активировать его, SHOWWARNING=true следует прокомментировать. Более того, TMPREAPER_TIME=7d должен быть закомментирован для очистки файлов старше 7 дней.

Временный диск объемом 1 ГБ был создан и отформатирован в ext3:

# dd if=/dev/zero of=/var/tmpdisk bs=1K count=1000000
# mkfs.ext3 -F /var/tmpdisk

Монтирование во время загрузки потребовало изменения /etc/fstab:

# /var/tmpdisk /tmp ext3 loop,rw,nosuid,noexec,nodev,quota 0 0

поскольку /var/tmpdisk это не реальное устройство, оно должно быть установлено как петлевое устройство, следовательно loop, nosuid,noexec,nodev были добавлены в качестве слоя безопасности для предотвращения злоупотребления общими наборами эксплойтов /tmp, В заключение, quota включает квоту на диск.

После модификации /etc/fstabЯ побежал mount -a смонтировать новый /tmp диск. поскольку /tmp должно быть доступно для записи всем пользователям, и пользователи не должны иметь возможность удалять файлы, которые им не принадлежат; права доступа к каталогу также должны быть изменены:

# chmod 1777 /tmp

Активировать квоты:

# quotacheck /tmp
# quotaon /tmp

В настоящее время /tmp полностью соответствует моим потребностям с активированными квотами и автоматической очисткой ненужных файлов. Единственное, что мне нужно сделать, это добавить квоты для каждого пользователя, запустив edquota username,

Другие вопросы по тегам