195 lines
4.9 KiB
Bash
195 lines
4.9 KiB
Bash
#!/bin/bash
|
||
# 宝塔完全清理脚本 - 释放最大空间
|
||
|
||
echo "==============================="
|
||
echo "宝塔完全清理脚本"
|
||
echo "正在清理,请稍候..."
|
||
echo "==============================="
|
||
|
||
# 1. 停止宝塔服务
|
||
echo "1. 停止宝塔服务..."
|
||
/etc/init.d/bt stop 2>/dev/null
|
||
systemctl stop bt 2>/dev/null
|
||
pkill -9 bt 2>/dev/null
|
||
pkill -9 panel 2>/dev/null
|
||
|
||
# 2. 卸载宝塔面板
|
||
echo "2. 卸载宝塔面板..."
|
||
curl -sSO http://download.bt.cn/install/bt-uninstall.sh
|
||
bash bt-uninstall.sh >> /dev/null 2>&1
|
||
rm -f bt-uninstall.sh
|
||
|
||
# 3. 删除所有宝塔目录
|
||
echo "3. 删除宝塔目录..."
|
||
rm -rf /www/server
|
||
rm -rf /www/backup
|
||
rm -rf /www/wwwlogs
|
||
rm -rf /www/wwwroot
|
||
rm -rf /www/Recycle_bin
|
||
rm -rf /tmp/.bt_shell
|
||
|
||
# 4. 删除宝塔系统文件
|
||
echo "4. 删除系统文件..."
|
||
rm -f /etc/init.d/bt
|
||
rm -f /usr/bin/bt
|
||
rm -f /usr/local/bin/bt
|
||
rm -rf /etc/systemd/system/bt.service
|
||
rm -rf /usr/lib/systemd/system/bt.service
|
||
rm -f /etc/cron.d/bt
|
||
rm -f /root/.bash_profile
|
||
rm -f /root/.bashrc
|
||
|
||
# 5. 清理安装包和缓存
|
||
echo "5. 清理安装包缓存..."
|
||
# Debian/Ubuntu
|
||
if [ -f /etc/debian_version ]; then
|
||
apt autoremove --purge -y >> /dev/null 2>&1
|
||
apt clean >> /dev/null 2>&1
|
||
apt autoclean >> /dev/null 2>&1
|
||
rm -rf /var/lib/apt/lists/*
|
||
fi
|
||
|
||
# CentOS/RHEL
|
||
if [ -f /etc/redhat-release ]; then
|
||
yum autoremove -y >> /dev/null 2>&1
|
||
yum clean all >> /dev/null 2>&1
|
||
rm -rf /var/cache/yum
|
||
fi
|
||
|
||
# 6. 删除所有源码编译文件
|
||
echo "6. 删除源码文件..."
|
||
find / -name "*.o" -delete 2>/dev/null
|
||
find / -name "*.a" -delete 2>/dev/null
|
||
find / -name "*.so" -delete 2>/dev/null
|
||
find / -name "Makefile" -delete 2>/dev/null
|
||
find / -name "configure" -delete 2>/dev/null
|
||
find / -name "config.log" -delete 2>/dev/null
|
||
find / -name "config.status" -delete 2>/dev/null
|
||
rm -rf /usr/local/src/*
|
||
|
||
# 7. 清理日志文件
|
||
echo "7. 清理日志文件..."
|
||
rm -rf /var/log/bt*
|
||
rm -rf /var/log/nginx
|
||
rm -rf /var/log/apache2
|
||
rm -rf /var/log/httpd
|
||
rm -rf /var/log/mysql
|
||
rm -rf /var/log/mariadb
|
||
rm -rf /tmp/panel*
|
||
rm -rf /tmp/bt*
|
||
journalctl --vacuum-time=1d >> /dev/null 2>&1
|
||
|
||
# 8. 清理临时文件
|
||
echo "8. 清理临时文件..."
|
||
rm -rf /tmp/*
|
||
rm -rf /var/tmp/*
|
||
rm -rf /root/.cache
|
||
rm -rf /root/.npm
|
||
rm -rf /root/.composer
|
||
rm -rf /root/.pip
|
||
|
||
# 9. 清理Python缓存
|
||
echo "9. 清理Python缓存..."
|
||
find / -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null
|
||
find / -name "*.pyc" -delete 2>/dev/null
|
||
find / -name "*.pyo" -delete 2>/dev/null
|
||
find / -name ".pytest_cache" -type d -exec rm -rf {} + 2>/dev/null
|
||
|
||
# 10. 清理PHP缓存
|
||
echo "10. 清理PHP缓存..."
|
||
rm -rf /tmp/php_sessions/*
|
||
rm -rf /var/lib/php/sessions/*
|
||
rm -rf /root/.php_history
|
||
|
||
# 11. 清理Node.js缓存
|
||
echo "11. 清理Node.js缓存..."
|
||
rm -rf /root/.npm/_cacache
|
||
rm -rf /usr/lib/node_modules
|
||
rm -rf /usr/local/lib/node_modules
|
||
|
||
# 12. 清理Docker(如果存在)
|
||
echo "12. 清理Docker..."
|
||
docker system prune -af --volumes 2>/dev/null
|
||
rm -rf /var/lib/docker/tmp
|
||
|
||
# 13. 清理内核旧文件
|
||
echo "13. 清理旧内核..."
|
||
if [ -f /etc/debian_version ]; then
|
||
apt purge $(dpkg -l | awk '/^rc/ {print $2}') -y 2>/dev/null
|
||
fi
|
||
|
||
# 14. 清理系统journal日志
|
||
echo "14. 清理系统日志..."
|
||
journalctl --rotate
|
||
journalctl --vacuum-time=1d
|
||
journalctl --vacuum-size=100M
|
||
rm -rf /var/log/journal/*
|
||
|
||
# 15. 清理软件包管理缓存
|
||
echo "15. 清理包管理缓存..."
|
||
# 清理所有包管理器缓存
|
||
for cmd in apt-get yum dnf pacman zypper; do
|
||
if command -v $cmd >/dev/null 2>&1; then
|
||
case $cmd in
|
||
apt-get) apt-get clean ;;
|
||
yum) yum clean all ;;
|
||
dnf) dnf clean all ;;
|
||
pacman) pacman -Sc --noconfirm ;;
|
||
zypper) zypper clean ;;
|
||
esac
|
||
fi
|
||
done
|
||
|
||
# 16. 清理缩略图缓存
|
||
echo "16. 清理缩略图缓存..."
|
||
rm -rf /root/.thumbnails
|
||
rm -rf /home/*/.thumbnails 2>/dev/null
|
||
rm -rf /root/.cache/thumbnails
|
||
|
||
# 17. 清理邮件队列
|
||
echo "17. 清理邮件队列..."
|
||
rm -rf /var/mail/*
|
||
rm -rf /var/spool/mail/*
|
||
rm -rf /var/spool/postfix/*
|
||
|
||
# 18. 清理崩溃报告
|
||
echo "18. 清理崩溃报告..."
|
||
rm -rf /var/crash/*
|
||
rm -rf /var/spool/abrt/*
|
||
|
||
# 19. 清理旧配置文件
|
||
echo "19. 清理旧配置文件..."
|
||
find /etc -name "*.bak" -delete
|
||
find /etc -name "*.old" -delete
|
||
find /etc -name "*~" -delete
|
||
find /root -name "*.bak" -delete
|
||
|
||
# 20. 最后清理和检查
|
||
echo "20. 最终清理..."
|
||
sync
|
||
echo 3 > /proc/sys/vm/drop_caches
|
||
|
||
# 显示清理结果
|
||
echo ""
|
||
echo "==============================="
|
||
echo "清理完成!释放的空间统计:"
|
||
echo "==============================="
|
||
df -h /
|
||
|
||
# 检查宝塔是否完全删除
|
||
echo ""
|
||
echo "宝塔残留检查:"
|
||
if [ ! -d "/www/server" ] && [ ! -f "/usr/bin/bt" ]; then
|
||
echo "✓ 宝塔已完全删除"
|
||
else
|
||
echo "✗ 发现宝塔残留文件"
|
||
find / -name "*bt*" -o -name "*panel*" 2>/dev/null | grep -v "proc"
|
||
fi
|
||
|
||
echo ""
|
||
echo "当前磁盘使用情况:"
|
||
df -h
|
||
echo ""
|
||
echo "前10大目录:"
|
||
du -sh /* 2>/dev/null | sort -hr | head -10
|