Я использую VPS с веб-сервером (Apache + PHP), базой данных (MySQL) и сервером smtp (Exim). ОС: Debian Lenny. Оперативная память: 512 МБ. Использование (квота) (http://packages.debian.org/lenny/quota).
На данный момент у меня /tmp
установлен как tmpfs. Это не идеально, так как у меня всего 512 МБ ОЗУ, и поэтому /tmp
всего 256 МБ. Я решил создать файл раздела ext3 размером 1 ГБ (или как там он называется) на /var/tmpdisk
. (решение об использовании ext3 было принято после прочтения Askubuntu.com: хорошая файловая система для / tmp?)
Чтобы сохранить / tmp в чистоте во время работы, я нашел tmpreaper: serverfault.com: Очистка / tmp
Что бы порекомендовали для быстрого протирания /var/tmpdisk
, при сохранении настроек квоты?
В настоящее время я подумываю сделать следующее при запуске (/etc/rc.local
?):
/var/tmpdisk
. если его нет, запустите dd if=/dev/zero of=/var/tmpdisk bs=1K count=1000000
/var/tmpdisk
. Для меня это был самый быстрый способ очистить "диск". Команда: mkfs.ext3 -F /var/tmpdisk
/tmp
: mount -t ext3 -o loop,rw,nodev,noexec,nosuid,quota /var/tmpdisk /tmp
В этом черновике я не добавил способ сохранения настроек квоты. Любые идеи?
Большинство моих требований уже доступны в Debian.
По умолчанию, /etc/default/rcS
устанавливает переменную среды TMPTIME=0
.
$ man rcS
:
ВРЕМЯ
При загрузке файлы в / 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
.