我正在运行一个Web服务器(Apache + PHP),数据库(MySQL)和SMTP服务器(Exim)的VPS。 操作系统:Debian Lenny。 内存:512MB。 使用(配额)( http://packages.debian.org/lenny/quota )。
目前,我已经将/tmp挂载为tmpfs。 这并不理想,因为我只有512MB RAM,因此/tmp只有256MB。 我决定在/var/tmpdisk上创build一个1GB的ext3分区文件(或者其他名称)。 (关于使用ext3的决定是在阅读Askubuntu.com之后做出的:用于/ tmp的好文件系统? )
为了在运行时保持/ tmp干净,我find了tmpreaper: serverfault.com:清除/ tmp
什么build议快速擦除/var/tmpdisk ,同时保留配额设置?
目前,我正在考虑在启动时执行以下操作( /etc/rc.local ?):
/var/tmpdisk的存在。 如果不存在,则运行dd if=/dev/zero of=/var/tmpdisk bs=1K count=1000000 /var/tmpdisk创buildext3文件系统。 这是我清除“磁盘”最快的方法。 命令: mkfs.ext3 -F /var/tmpdisk /tmp : mount -t ext3 -o loop,rw,nodev,noexec,nosuid,quota /var/tmpdisk /tmp 在这个草案中,我没有添加保留配额设置的方法。 有任何想法吗?
我的大多数需求已经在Debian中可用。
默认情况下, /etc/default/rcS设置环境variablesTMPTIME=0 。
$ man rcS :
TMPTIME
启动时,如果修改时间超过TMPTIME天数,/ tmp中的文件将被删除。 值为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 (owned by root) is excluded from removing. Conclusion: quota settings will persist during reboots and不变, (owned by root) is excluded from removing. Conclusion: quota settings will persist during reboots and can safely be set in / etc / default / rcS中can safely be set in TMPTIME = 0。
为了在运行时保持/tmp清洁,我安装了tmpreaper 。 要激活它,应该评论SHOWWARNING=true 。 此外, TMPREAPER_TIME=7d应该取消注释,以清理超过7天的文件。
一个1GB的临时磁盘被创build并格式化为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每个用户添加配额。