Hostxpeed
Login Get Started →
Server Management

How to Set Up Weekly Server Report

6 min read
23 views
Jun 10, 2026

Prerequisites

Before setting up server reports, make sure you have:

  • SSH access to your VPS
  • Root or sudo privileges
  • Mailutils installed

Step 1: Create the Report Script

Connect to your VPS:

ssh hxroot@YOUR_SERVER_IP -p 22
sudo nano /usr/local/bin/weekly-report.sh

Add content:

#!/bin/bash
REPORT_FILE="/tmp/server_report_$(date +%Y%m%d).txt"

echo "=============================================" > $REPORT_FILE
echo "Server Report: $(hostname)" >> $REPORT_FILE
echo "Date: $(date)" >> $REPORT_FILE
echo "=============================================" >> $REPORT_FILE
echo "" >> $REPORT_FILE

echo "--- Uptime ---" >> $REPORT_FILE
uptime >> $REPORT_FILE
echo "" >> $REPORT_FILE

echo "--- CPU Usage ---" >> $REPORT_FILE
top -bn1 | grep "Cpu(s)" >> $REPORT_FILE
echo "" >> $REPORT_FILE

echo "--- Memory Usage ---" >> $REPORT_FILE
free -h >> $REPORT_FILE
echo "" >> $REPORT_FILE

echo "--- Disk Usage ---" >> $REPORT_FILE
df -h >> $REPORT_FILE
echo "" >> $REPORT_FILE

echo "--- Top 5 CPU Processes ---" >> $REPORT_FILE
ps aux --sort=-%cpu | head -6 >> $REPORT_FILE
echo "" >> $REPORT_FILE

echo "--- Top 5 Memory Processes ---" >> $REPORT_FILE
ps aux --sort=-%mem | head -6 >> $REPORT_FILE
echo "" >> $REPORT_FILE

echo "--- Network Connections ---" >> $REPORT_FILE
ss -tunap | wc -l >> $REPORT_FILE
echo "" >> $REPORT_FILE

echo "--- Failed SSH Attempts (last 7 days) ---" >> $REPORT_FILE
awk -v date="$(date --date="7 days ago" +%b %e)" "$0 > date" /var/log/auth.log | grep "Failed password" | wc -l >> $REPORT_FILE

echo "=============================================" >> $REPORT_FILE
echo "End of Report" >> $REPORT_FILE

mail -s "Weekly Server Report: $(hostname)" admin@example.com < $REPORT_FILE

rm $REPORT_FILE

✅ Weekly server report configured. You will receive regular health summaries.

Was this article helpful?