# 1. 配置临时目录大小限制
echo -e “ntmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G,nodiratime 0 0ntmpfs /var/tmp tmpfs defaults,noexec,nosuid,nodev,size=1G,nodiratime 0 0” >> /etc/fstab
mount -o remount /tmp
mount -o remount /var/tmp
# 2. 配置日志封顶轮转
sed -i ‘s/^#?weekly.*/weekly/’ /etc/logrotate.conf
sed -i ‘s/^#?rotate.*/rotate 4/’ /etc/logrotate.conf
sed -i ‘s/^#?size.*/size 100M/’ /etc/logrotate.conf
sed -i ‘s/^#?maxage.*/maxage 7/’ /etc/logrotate.conf
logrotate -f /etc/logrotate.conf

# 3. 创建安全清盘脚本
cat > /usr/local/bin/clean_disk_safe.sh << ‘EOF’
#!/bin/bash
# 神人佛专属:宝塔/网站安全清盘脚本 绝对不碰业务数据
find /tmp -type f -mtime +7 -delete 2>/dev/null
find /var/tmp -type f -mtime +7 -delete 2>/dev/null
yum clean all 2>/dev/null
apt clean 2>/dev/null
find /var/log -type f -name “*.old” -mtime +30 -delete 2>/dev/null
find /var/log -type f -name “*.gz” -mtime +30 -delete 2>/dev/null
logrotate -f /etc/logrotate.conf
DISK_USAGE=$(df -h / | grep / | awk ‘{print $5}’)
echo “[$(date ‘+%Y-%m-%d %H:%M:%S’)] 安全清理完成,系统盘当前使用率:${DISK_USAGE}” >> /var/log/clean_disk_safe.log
EOF
chmod +x /usr/local/bin/clean_disk_safe.sh
# 4. 创建磁盘防护脚本
cat > /usr/local/bin/disk_protect.sh << ‘EOF’
#!/bin/bash
THRESHOLD=85
DISK_USE=$(df -h / | grep / | awk ‘{print $5}’ | sed ‘s/%//g’)
if [ ${DISK_USE} -ge ${THRESHOLD} ]; then
/usr/local/bin/clean_disk_safe.sh
sync; echo 3 > /proc/sys/vm/drop_caches
echo “[$(date ‘+%Y-%m-%d %H:%M:%S’)] 【紧急告警】系统盘使用率超${THRESHOLD}%,已强制清理,当前使用率:${DISK_USE}%” >> /var/log/clean_disk_safe.log
fi
EOF
chmod +x /usr/local/bin/disk_protect.sh
# 5. 设置定时任务
(crontab -l 2>/dev/null; echo “*/30 * * * * /usr/local/bin/clean_disk_safe.sh”) | crontab –
(crontab -l 2>/dev/null; echo “*/10 * * * * /usr/local/bin/disk_protect.sh”) | crontab –
三、给你修复临时目录的正确方法(100%兼容宝塔,不影响业务)
第一步:先还原错误的 /etc/fstab
# 备份原文件
cp /etc/fstab /etc/fstab.bak
# 编辑文件,删除你刚才加的错误行
vi /etc/fstab
我们用 tmpfs 挂载的正确方式,不破坏原有目录,不影响宝塔运行:
# 1. 先清空/tmp,避免挂载失败
rm -rf /tmp/* /var/tmp/* 2>/dev/null
# 2. 正确写入fstab(直接复制,一行都别改)
cat >> /etc/fstab << ‘EOF’
# 神人佛专属:临时目录大小限制,不影响宝塔/网站
tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G,nodiratime 0 0
tmpfs /var/tmp tmpfs defaults,noexec,nosuid,nodev,size=1G,nodiratime 0 0
EOF
# 3. 重新挂载(这次不会报错)
mount /tmp
mount /var/tmp
验证是否成功?
df -h /tmp /var/tmp
成功会显示以下
Filesystem Size Used Avail Use% Mounted on
tmpfs 2.0G 0 2.0G 0% /tmp
tmpfs 1.0G 0 1.0G 0% /var/tmp
暂无评论内容