Какой самый эффективный способ обработки /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
?):
- Проверить на наличие
/var/tmpdisk
, если он не существует, запуститеdd if=/dev/zero of=/var/tmpdisk bs=1K count=1000000
- Создайте файловую систему ext3 в
/var/tmpdisk
, Для меня это был самый быстрый способ очистки "диска". Команда:mkfs.ext3 -F /var/tmpdisk
- Смонтировать его на
/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 and
TMPTIME = 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
,