Keep your Linux server healthy with regular maintenance tasks every sysadmin should know.
Category: Server
System Updates
# Update package lists and upgrade all packages
sudo apt update && sudo apt upgrade -y
# Remove unused packages
sudo apt autoremove -y && sudo apt autoclean
# Check if a reboot is needed
cat /var/run/reboot-required 2>/dev/null && echo "Reboot required" || echo "No reboot needed"
Disk Usage
# Overall disk usage
df -h
# Find the largest directories
du -sh /* 2>/dev/null | sort -rh | head -20
# Find large files
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null
# Clean up old logs
sudo journalctl --vacuum-time=30d
sudo journalctl --vacuum-size=500M
Check System Health
# CPU and memory overview
top
htop # if installed
# Memory usage
free -h
# Load average (1m, 5m, 15m)
uptime
# Check for failed services
systemctl --failed
Review Logs
# System log (last 100 lines)
journalctl -n 100 -p warning
# Authentication failures
grep "Failed password" /var/log/auth.log | tail -20
# Kernel messages
dmesg | tail -30
User and Session Management
# List logged-in users
who
# List all user accounts
cut -d: -f1 /etc/passwd
# Last login history
last -20
# Lock an unused account
sudo passwd -l username
Schedule Maintenance with Cron
sudo crontab -e
# Daily update at 3 AM
0 3 * * * apt update && apt upgrade -y >> /var/log/autoupdate.log 2>&1
# Weekly disk cleanup
0 4 * * 0 apt autoremove -y && journalctl --vacuum-time=30d