宝塔企业版才有的服务器空间占用系统优化清理功能脚本【全网首发 免费分享 专业企业级Linux系统磁盘清理安全脚本】
2026/02/27 16:59:32
瀹濆浼佷笟鐗堟墠鏈夌殑鏈嶅姟鍣ㄧ┖闂村崰鐢ㄧ郴缁熶紭鍖栨竻鐞嗗姛鑳借剼鏈€愬叏缃戦鍙 鍏嶈垂鍒嗕韩 涓撲笟浼佷笟绾inux绯荤粺纾佺洏娓呯悊瀹夊叏鑴氭湰銆戯細
鐪熸浼佷笟绾с€侀珮鍙敤鐨勮В鍐虫柟妗堬細鑴辩瀹濆锛屼娇鐢 Systemd 瀹堟姢杩涚▼
绗竴姝ワ細鍒涘缓鏍稿績鐩戞帶鑴氭湰璧嬩簣鎵ц鏉冮檺
绗簩姝ワ細娉ㄥ唽 Systemd 绯荤粺鏈嶅姟绗笁姝ワ細鍚姩骞舵縺娲诲畧鎶よ繘绋
閫氳繃 systemctl status bt-disk-guard 纭繚瀹冭繍琛屾甯搞€傛湁浜嗚繖濂楅€昏緫鍔犳寔锛屼綘鐨勬湇鍔″櫒灏卞叿澶囦簡鍍忓ぇ鍘備簯涓绘満涓€鏍风殑鈥滅鐩樿嚜鎰堚€濊兘鍔涖€
鐪熸浼佷笟绾с€侀珮鍙敤鐨勮В鍐虫柟妗堬細鑴辩瀹濆锛屼娇鐢 Systemd 瀹堟姢杩涚▼
涓轰簡鍋氬埌鈥滄瀬搴﹀彲闈犫€濓紝鎴戜滑蹇呴』鎶涘純瀹濆鐨勮鍒掍换鍔★紝鐩存帴鍦 Debian 绯荤粺鐨勫唴鏍歌皟搴﹀眰锛圫ystemd锛夋敞鍐屼竴涓鐙珛鐨勫悗鍙板畧鎶よ繘绋 (Daemon)銆
- 鏋佷綆娑堣€锛氬畠鍦ㄥ悗鍙版瘡 30 绉掓鏌ヤ竴娆$鐩橈紝浣跨敤鐨 df 鍛戒护瀵圭郴缁熸€ц兘鐨勬秷鑰楀嚑涔庝负 0銆
- 缁濆鐙珛锛氬摢鎬曞疂濉旈潰鏉垮交搴曟鏈恒€丯ginx 宕╂簝銆丼SH 鍗¢】锛屽彧瑕 Debian 绯荤粺鍐呮牳杩樺湪璺戯紝杩欎釜鑴氭湰灏变細濡傛湡鎵ц锛屾壆婕斺€滄晳鐏槦闀库€濈殑瑙掕壊銆
- 鏋佽嚧鎬ц兘锛氱粨鍚堜箣鍓嶁€滄枃浠跺お澶氭棤娉 rm鈥濈殑鏁欒锛屾垜浣跨敤 xargs 瀵规竻鐞嗛€昏緫杩涜浜嗗绾跨▼绾у埆鐨勪紭鍖栥€
- APT 娣卞害娓呯悊 (autoremove --purge & autoclean)锛 绯荤粺鍦ㄧ粡鍘嗗唴鏍稿崌绾с€佽蒋浠剁紪璇戯紙濡 PHP 缂栬瘧瀹夎锛夊悗锛屼細鐣欎笅澶ч噺瀛ゅ効渚濊禆鍖呭拰澶存枃浠躲€俈3 鍔犲叆浜嗛潤榛樻ā寮忕殑鍗歌浇鍜屾繁搴︽竻鐞嗭紝涓€娆℃€ц吘鍑哄嚑鐧惧厗鐢氳嚦涓 G 鐨勭┖闂翠笉鏄棶棰樸€
- 绯荤粺杞浆鏃ュ織鐚庢潃 (find /var/log -name "*.gz")锛 Debian 榛樿鐨 logrotate 鏈哄埗浼氭妸鏃х殑 syslog銆auth.log 鎵撳寘鎴 .gz 闀挎湡瀛樻斁鍦 /var/log/ 涓嬨€傛棦鐒剁鐩樺凡缁 90% 浜嗭紝杩欎簺鍘嗗彶绯荤粺鏃ュ織瀹屽叏鍙互浣滀负鈥滃瀮鍦锯€濊鐩存帴 delete 鎺夈€
- 鏇村簳灞傜殑鍙岄噸鎴柇鏈哄埗锛 涓嶄粎浠呮槸瀵 wwwlogs 鍔ㄦ墜锛岃剼鏈幇鍦ㄨ繕浼氱洿鎺ヤ娇鐢 truncate 娓呯┖ /var/log/syslog銆messages 鍜 auth.log锛堝鏋滄槸琚绻佹毚鍔涚牬瑙 SSH 鏀诲嚮锛auth.log 浼氶潪甯稿ぇ锛夈€
- /var/tmp 鐨勮鐩锛 澶ч儴鍒嗕汉鍙煡閬撴竻 /tmp锛屼絾鐪熸椤藉浐鐨勪复鏃舵枃浠跺叾瀹炲湪 /var/tmp锛堣鐩綍榛樿绯荤粺淇濈暀鏃堕棿姣 /tmp 闀垮緱澶氾級銆
- 鍙岄噸闄嶇骇淇濇姢 (ionice + nice)锛 鎴戝湪鍚庡彴鎵ц鍧楀悓鏃跺姞涓婁簡 ionice -c 2 -n 7锛堢鐩橀檷绾э級鍜 nice -n 19锛圕PU闄嶇骇锛夈€傝繖鎰忓懗鐫€锛屽摢鎬曞悗鍙板湪鐤媯璋冪敤 apt-get 娓呯悊渚濊禆锛屾垨鑰呴亶鍘嗗垹闄ゆ暟涓囦釜 WAF 纰庣墖鏂囦欢锛屽畠鍗犵敤鐨勭郴缁熻祫婧愪篃鏄渶浣庣殑锛屽畬鍏ㄧ粰浣犵殑 Web 涓氬姟锛圢ginx/PHP/MySQL锛夎璺€
绗竴姝ワ細鍒涘缓鏍稿績鐩戞帶鑴氭湰
鍦 SSH缁堢涓墽琛屼互涓嬪懡浠わ紝鍒涘缓瀹堟姢鑴氭湰锛
- cat > /usr/local/bin/bt_disk_guard.sh << 'EOF'
- #!/bin/bash
- # ==========================================================
- # 浼佷笟绾х鐩橀珮鍙敤鐩戞帶瀹堟姢杩涚▼ V3 (鍏ㄦ爤娣卞害浼樺寲鐗)
- # 娑电洊锛氬疂濉旀繁搴︽竻鐞 + Debian 搴曞眰娣卞害娓呯悊 + 寮傛IO浼樺寲
- # ==========================================================
- THRESHOLD=90
- LOG_FILE="/var/log/bt_disk_guard.log"
- while true; do
- # 鑾峰彇鏍圭洰褰曚娇鐢ㄧ巼
- USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
-
- if [ "$USAGE" -ge "$THRESHOLD" ]; then
- echo "======================================================" >> $LOG_FILE
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] 馃毃 绱ф€ワ細纾佺洏杈 ${USAGE}%锛屽惎鍔ㄥ叏鏍堟繁搴︽姠鏁戞ā寮忥紒" >> $LOG_FILE
- # ---------------------------------------------------------
- # 銆愮涓€姊槦銆戯細绉掔骇鎬ユ晳锛堢灛闂撮噴鏀剧┖闂达紝鎭㈠绯荤粺蹇冭烦锛
- # ---------------------------------------------------------
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] -> [1/3] 鎵ц绉掔骇鎶㈡晳锛氭竻绌烘湇鍔℃棩蹇椾笌绯荤粺缂撳瓨..." >> $LOG_FILE
-
- # 1. 瀹濆鍙婂簲鐢ㄧ骇鏃ュ織鏋侀€熸竻绌 (truncate 鎴柇涓嶅垹鏂囦欢)
- find /www/wwwlogs -type f -name "*.log" -print0 | xargs -0 truncate -s 0 2>/dev/null
- find /www/server/panel/logs -type f -name "*.log" -print0 | xargs -0 truncate -s 0 2>/dev/null
- # 娓呯悊 PHP 鎱㈡棩蹇楀拰 FPM 鏃ュ織
- find /www/server/php -type f -name "*.log" -print0 | xargs -0 truncate -s 0 2>/dev/null
-
- if [ -d "/www/server/total/logs" ]; then
- find /www/server/total/logs -type f -print0 | xargs -0 truncate -s 0 2>/dev/null
- fi
-
- # 2. Debian 绯荤粺绾ф棩蹇楁瀬閫熸埅鏂 (娓呯┖甯歌鐨勯珮棰戝闀挎棩蹇)
- truncate -s 0 /var/log/syslog /var/log/messages /var/log/auth.log /var/log/kern.log /var/log/daemon.log 2>/dev/null
-
- # 3. 瀹濆涓庣郴缁熶复鏃剁洰褰曟瀬閫熸竻鐞
- rm -rf /www/server/panel/temp/* 2>/dev/null
-
- # 4. 寮哄埗閲嶈浇鏍稿績鏈嶅姟閲婃斁鍙ユ焺
- /etc/init.d/nginx reload >/dev/null 2>&1
- bt reload >/dev/null 2>&1
-
- FAST_USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] -> [2/3] 绉掔骇鎬ユ晳瀹屾垚锛佸綋鍓嶇郴缁熶娇鐢ㄧ巼闄嶈嚦: ${FAST_USAGE}%" >> $LOG_FILE
- # ---------------------------------------------------------
- # 銆愮浜屾闃熴€戯細閲嶅害涓庣郴缁熺骇娓呯悊锛堟寕杞藉悗鍙颁綆 I/O 杩愯锛屼笉鍗¢】锛
- # ---------------------------------------------------------
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] -> [3/3] 鍚姩鍚庡彴闈欓粯娣卞害娓呯悊 (APT/Journal/GZ/WAF)..." >> $LOG_FILE
-
- (
- # 灏嗘墍鏈夐噸鍨嬫搷浣滅殑 I/O 浼樺厛绾ч檷鑷虫渶浣庯紝CPU 璋冨害闄嶈嚦鏈€浣
- ionice -c 2 -n 7 nice -n 19 bash -c '
- # --- A. 瀹濆 WAF 娴烽噺灏忔枃浠舵竻鐞 ---
- rm -rf /www/server/btwaf/totla_db/http_log 2>/dev/null
- rm -f /www/server/btwaf/totla_db/*.db 2>/dev/null
- mkdir -p /www/server/btwaf/totla_db/http_log
- chown -R www:www /www/server/btwaf/totla_db/
-
- # --- B. Debian 绯荤粺搴曞眰娣卞害娓呯悊 ---
- # 1. 褰诲簳娓呯悊 Systemd 鏃ュ織 (浠呬繚鐣欐渶杩2澶╋紝闄愬埗鏈€澶50M)
- journalctl --vacuum-time=2d >/dev/null 2>&1
- journalctl --vacuum-size=50M >/dev/null 2>&1
-
- # 2. APT 鍖呯鐞嗗櫒娣卞害娓呯悊
- export DEBIAN_FRONTEND=noninteractive
- apt-get autoremove --purge -y >/dev/null 2>&1 # 鍗歌浇瀛ゅ効渚濊禆骞舵竻鐞嗛厤缃枃浠
- apt-get autoclean -y >/dev/null 2>&1 # 娓呴櫎杩囨湡鐨勫寘缂撳瓨
- apt-get clean -y >/dev/null 2>&1 # 娓呴櫎鎵€鏈変笅杞界殑褰掓。鍖
-
- # 3. 娓呯悊绯荤粺鏃ц疆杞棩蹇 (鎵撳寘鐨 .gz 鍜 .1 鏂囦欢)
- find /var/log -type f -name "*.gz" -delete
- find /var/log -type f -name "*.1" -delete
-
- # 4. 娣卞害娓呯悊涓存椂鐩綍 (娑电洊 /tmp, /var/tmp 浠ュ強瀹濆鐗瑰畾缂撳瓨)
- find /tmp -type f -mtime +2 -delete
- find /var/tmp -type f -mtime +2 -delete
- rm -rf /var/crash/* 2>/dev/null
- '
- ) &
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] 鉁 鎶㈡晳鍙婄紪鎺掔粨鏉燂紝绯荤粺瀹夊叏杩愯浆銆傞噸搴︽竻鐞嗕换鍔″凡鍦ㄥ悗鍙版墽琛屻€" >> $LOG_FILE
- echo "======================================================" >> $LOG_FILE
- # 鍐峰嵈 5 鍒嗛挓
- sleep 300
- else
- # 瀹夊叏鐘舵€侊紝姣 30 绉掕疆璇
- sleep 30
- fi
- done
- EOF
- chmod +x /usr/local/bin/bt_disk_guard.sh
绗簩姝ワ細娉ㄥ唽 Systemd 绯荤粺鏈嶅姟
灏嗚繖涓剼鏈敞鍐屼负 Debian 鐨勫簳灞傜郴缁熸湇鍔★紝璁╁畠寮€鏈鸿嚜鍚紝骞跺叿澶囧穿婧冭嚜鍔ㄩ噸鍚殑鑳藉姏锛
- cat > /etc/systemd/system/bt-disk-guard.service << 'EOF'
- [Unit]
- Description=BT Panel Disk Space Guard Daemon
- After=network.target
- [Service]
- Type=simple
- ExecStart=/usr/local/bin/bt_disk_guard.sh
- Restart=always
- RestartSec=10
- StandardOutput=syslog
- StandardError=syslog
- SyslogIdentifier=bt-disk-guard
- [Install]
- WantedBy=multi-user.target
- EOF
- # 閲嶆柊鍔犺浇 systemd 閰嶇疆
- systemctl daemon-reload
- # 鍚姩瀹堟姢杩涚▼
- systemctl start bt-disk-guard
- # 璁剧疆寮€鏈鸿嚜鍔ㄥ惎鍔
- systemctl enable bt-disk-guard
閫氳繃 systemctl status bt-disk-guard 纭繚瀹冭繍琛屾甯搞€傛湁浜嗚繖濂楅€昏緫鍔犳寔锛屼綘鐨勬湇鍔″櫒灏卞叿澶囦簡鍍忓ぇ鍘備簯涓绘満涓€鏍风殑鈥滅鐩樿嚜鎰堚€濊兘鍔涖€