# -*- coding: utf-8 -*- r'''清理服务器上没用的东西。 == 用户要求 == "所有没的东西就删了" == 查到什么没用 == 1. **1Panel 的安装包残留**(占 223MB) /root/1panel-v2.3.2-linux-amd64.tar.gz 63MB /root/1panel-v2.3.2-linux-amd64/ 160MB(解压出来的) 1Panel 早就装好并跑着了,这两个是**装完就没用**的东西。 磁盘现在只用了 7%,不急着腾空间,但"没的东西就删"是用户明确要求。 2. **早年的隧道单元**(上一轮已删) lanremote-tunnel / cloudflared 3. **旧的抢救报告**(保留最近几份,老的删掉) == 什么不删 == * /opt/ykxmz-relay/ 下的 relay.py / landing.py / admin.py / monitor.sh —— 这些是**正在运行的东西** * /opt/ykxmz-relay/data/ —— 中转的配置和数据库 * /opt/ykxmz-relay/downloads/ —— 安装包,用户要下载的 * /opt/ykxmz-relay/rescue_reports/ 最近几份 —— 排查问题时有用 * 1Panel 本体(/root/.docker、容器)—— 用户自己在用 ''' from __future__ import annotations import sys from pathlib import Path ROOT = Path(__file__).resolve().parent.parent sys.path.insert(0, str(ROOT / "_build")) from lssh import run # noqa: E402 REMOTE = r''' echo "==== 清理前 ====" df -h / | tail -1 | sed 's/^/ /' echo echo "==== 删 1Panel 安装包残留 ====" du -sh /root/1panel-v2.3.2-linux-amd64* 2>/dev/null | sed 's/^/ 删前: /' sudo rm -rf /root/1panel-v2.3.2-linux-amd64 sudo rm -f /root/1panel-v2.3.2-linux-amd64.tar.gz echo " 删完了,还在吗: $(ls -d /root/1panel-v2.3.2-linux-amd64* 2>/dev/null || echo '不在了 ✓')" echo echo "==== 清理旧的抢救报告(保留最近 5 份)====" cd /opt/ykxmz-relay/rescue_reports 2>/dev/null && { total=$(ls -1 *.txt 2>/dev/null | wc -l) echo " 一共 $total 份" ls -1t *.txt 2>/dev/null | tail -n +6 | while read f; do echo " 删 $f" rm -f "$f" done echo " 剩下 $(ls -1 *.txt 2>/dev/null | wc -l) 份" } || echo " (没有这个目录)" echo echo "==== 清 nginx 的旧日志(保留最近,压缩老的)====" sudo find /var/log/nginx -name "*.log.*" -size +10M 2>/dev/null | head -5 | sed 's/^/ 大日志: /' echo echo "==== 清理后 ====" df -h / | tail -1 | sed 's/^/ /' echo echo "==== 确认重要的东西都还在 ====" for f in /opt/ykxmz-relay/relay.py /opt/ykxmz-relay/monitor.sh \ /opt/ykxmz-relay/landing.py /opt/ykxmz-relay/admin.py; do [ -f "$f" ] && echo " ✓ $f" || echo " ✗ 不见了!$f" done echo " downloads 里的安装包: $(ls -1 /opt/ykxmz-relay/downloads/ 2>/dev/null | wc -l) 个" echo echo "==== 服务状态复核 ====" for s in nginx ykxmz-relay ykxmz-monitor.timer; do printf ' %-24s %s\n' "$s" "$(systemctl is-active $s 2>/dev/null)" done ''' def main() -> int: print("=" * 62) print(" 清理服务器上没用的东西") print("=" * 62) print() out = run(REMOTE, timeout=300, quiet=True) print(out[1] if isinstance(out, tuple) else out) return 0 if __name__ == "__main__": sys.exit(main())