73 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Copyright (c) 2021-2025 tteck
 | |
| # Author: tteck (tteckster)
 | |
| # License: MIT
 | |
| # https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | |
| 
 | |
| set -euo pipefail
 | |
| 
 | |
| function header_info() {
 | |
|   clear
 | |
|   cat <<"EOF"
 | |
|    ________                    __   _  ________
 | |
|   / ____/ /__  ____ _____     / /  | |/ / ____/
 | |
|  / /   / / _ \/ __ `/ __ \   / /   |   / /
 | |
| / /___/ /  __/ /_/ / / / /  / /___/   / /___
 | |
| \____/_/\___/\__,_/_/ /_/  /_____/_/|_\____/
 | |
| 
 | |
| EOF
 | |
| }
 | |
| 
 | |
| BL="\033[36m"
 | |
| GN="\033[1;92m"
 | |
| CL="\033[m"
 | |
| name=$(hostname)
 | |
| 
 | |
| header_info
 | |
| echo -e "${BL}[Info]${GN} Cleaning $name${CL} \n"
 | |
| 
 | |
| # OS-Detection
 | |
| if [ -f /etc/alpine-release ]; then
 | |
|   OS="alpine"
 | |
| elif [ -f /etc/debian_version ] || grep -qi ubuntu /etc/issue 2>/dev/null; then
 | |
|   OS="debian"
 | |
| else
 | |
|   OS="unknown"
 | |
| fi
 | |
| 
 | |
| # Universal Cleaning
 | |
| function clean_universal() {
 | |
|   # Caches
 | |
|   find /var/cache/ -type f -delete 2>/dev/null || true
 | |
|   # Logs
 | |
|   find /var/log/ -type f -delete 2>/dev/null || true
 | |
|   # Tmp
 | |
|   find /tmp/ -mindepth 1 -delete 2>/dev/null || true
 | |
|   find /var/tmp/ -mindepth 1 -delete 2>/dev/null || true
 | |
|   # User Trash (Desktop-Umgebungen)
 | |
|   for u in /home/* /root; do
 | |
|     find "$u/.local/share/Trash/" -type f -delete 2>/dev/null || true
 | |
|   done
 | |
| }
 | |
| 
 | |
| clean_universal
 | |
| 
 | |
| if [ "$OS" = "alpine" ]; then
 | |
|   echo -e "${BL}[Info]${GN} Alpine detected: Cleaning apk cache...${CL}"
 | |
|   rm -rf /var/cache/apk/* 2>/dev/null || true
 | |
|   apk cache clean 2>/dev/null || true
 | |
|   rm -rf /etc/apk/cache/* 2>/dev/null || true
 | |
| 
 | |
| elif [ "$OS" = "debian" ]; then
 | |
|   echo -e "${BL}[Info]${GN} Debian/Ubuntu detected: Cleaning apt and journal...${CL}"
 | |
|   apt-get -y autoremove --purge >/dev/null 2>&1 || true
 | |
|   apt-get -y autoclean >/dev/null 2>&1 || true
 | |
|   apt-get -y clean >/dev/null 2>&1 || true
 | |
|   journalctl --vacuum-time=2d --rotate >/dev/null 2>&1 || true
 | |
|   rm -rf /var/lib/apt/lists/* 2>/dev/null || true
 | |
|   apt-get update >/dev/null 2>&1 || true
 | |
| fi
 | |
| 
 | |
| echo -e "${GN}Cleanup completed for $name ($OS)${CL}\n"
 | 
