📄 Viewing: //scripts/clean_logs
#!/bin/bash
# Script to clear server logs modularly and inspect disk usage based on arguments
# Function to show usage options when no arguments are provided
show_help() {
echo "======================================================="
echo "Usage: $0 [option1] [option2] ..."
echo "======================================================="
echo "Available logging profiles to clean / actions:"
echo " check - Inspects disk usage across all primary log and data directories"
echo " system - Cleans core system logs (messages, maillog, root mail)"
echo " apache_domains - Cleans client individual domain tracking logs"
echo " apache_services - Cleans main Apache service logs and zipped archives"
echo " php - Cleans PHP-FPM execution log outputs"
echo " tmp - Cleans stale session hashes and request bodies from /tmp"
echo " acme - Cleans SSL certificate management logs (.acme.sh)"
echo " cwpsrv - Cleans CentOS Web Panel internal service tracking logs"
echo " all - Executes all cleaning profiles simultaneously (excludes check)"
echo "======================================================="
echo "Example: $0 check apache_domains php"
}
# Check if at least one argument was passed
if [ $# -eq 0 ]; then
show_help
exit 0
fi
# Action function for disk usage checks
check_disk_usage() {
echo "======================================================="
echo "[CHECKING] Current Server Disk Usage Patterns:"
echo "======================================================="
du -hs /var/log/ 2>/dev/null
du -hs /usr/local/apache/logs/ 2>/dev/null
du -hs /usr/local/apache/domlogs/ 2>/dev/null
du -hs /usr/local/cwp/php71/var/log/ 2>/dev/null
du -hs /usr/local/cwpsrv/logs/ 2>/dev/null
du -hs /var/spool/ 2>/dev/null
du -hs /tmp 2>/dev/null
du -hs /root 2>/dev/null
du -hs /var/lib/mysql/ 2>/dev/null
du -hs /opt 2>/dev/null
echo "======================================================="
}
# Individual cleaning profile functions
clean_system() {
echo "[CLEANING] System Logs..."
rm -f /var/log/messages-*
rm -f /var/log/maillog-*
echo "" > /var/log/messages
echo "" > /var/log/maillog
echo "" > /var/spool/mail/root
}
clean_apache_domains() {
echo "[CLEANING] Apache Client Domain Logs..."
for i in /usr/local/apache/domlogs/*.log; do
[ -f "$i" ] && echo "" > "$i"
done
}
clean_apache_services() {
echo "[CLEANING] Main Apache Service Logs..."
rm -f /usr/local/apache/logs/*.gz
for i in /usr/local/apache/logs/*log; do
[ -f "$i" ] && echo "" > "$i"
done
}
clean_php() {
echo "[CLEANING] PHP-FPM Logs..."
for i in /opt/alt/php-fpm*/usr/var/log/php-fpm.log; do
[ -f "$i" ] && echo "" > "$i"
done
}
clean_tmp() {
echo "[CLEANING] /tmp Directory Junk..."
find /tmp/ -type f -name "sess_*" -exec rm -f {} \;
rm -f /tmp/202*request_body-*
}
clean_acme() {
echo "[CLEANING] Acme.sh Certificate Management Logs..."
if [ -f "/root/.acme.sh/acme.sh.log" ]; then
echo "" > /root/.acme.sh/acme.sh.log
fi
}
clean_cwpsrv() {
echo "[CLEANING] Regular CWPsrv Web Panel Service Logs..."
for i in /usr/local/cwpsrv/logs/*log; do
[ -f "$i" ] && echo "" > "$i"
done
}
# Main loop to parse multiple arguments separated by spaces
for argument in "$@"; do
case "$argument" in
check)
check_disk_usage
;;
system)
clean_system
;;
apache_domains)
clean_apache_domains
;;
apache_services)
clean_apache_services
;;
php)
clean_php
;;
tmp)
clean_tmp
;;
acme)
clean_acme
;;
cwpsrv)
clean_cwpsrv
;;
all)
echo "Executing global cleanup sequence..."
clean_system
clean_apache_domains
clean_apache_services
clean_php
clean_tmp
clean_acme
clean_cwpsrv
break
;;
*)
echo "[WARNING] Unknown option: '$argument' (Skipping)"
;;
esac
done
echo "=== Tasks completed successfully! ==="
← Back to directory