Create 卸载宝塔命令

卸载宝塔命令
This commit is contained in:
2025-12-24 13:13:30 +08:00
committed by GitHub
parent 0cd1bd1fda
commit 96b9a0129b

194
卸载宝塔命令 Normal file
View File

@@ -0,0 +1,194 @@
#!/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