Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /usr/local/bin/ drwxr-xr-x | |
| Viewing file: Select action/file-type: #!/bin/bash
# MySQL Monitor Script (Gmail SMTP version)
# Checks if MySQL is down, collects crash logs, emails detailed report.
SERVICE="mysql"
EMAIL="hmtuhinhossain@gmail.com"
HOSTNAME=$(hostname)
DATE=$(date '+%Y-%m-%d %H:%M:%S')
LOGFILE="/var/log/mysql/error.log"
TMPLOG="/tmp/mysql_crash_report.txt"
check_and_report() {
echo "=== MySQL Crash Report ===" > "$TMPLOG"
echo "Host: $HOSTNAME" >> "$TMPLOG"
echo "Date: $DATE" >> "$TMPLOG"
echo "-----------------------------------" >> "$TMPLOG"
echo "" >> "$TMPLOG"
echo ">>> Recent systemd MySQL logs:" >> "$TMPLOG"
journalctl -u mysql -n 40 --no-pager >> "$TMPLOG" 2>&1
echo "" >> "$TMPLOG"
if [ -f "$LOGFILE" ]; then
echo ">>> MySQL error.log (last 40 lines):" >> "$TMPLOG"
tail -n 40 "$LOGFILE" >> "$TMPLOG"
else
echo "No MySQL error log found at $LOGFILE" >> "$TMPLOG"
fi
echo "" >> "$TMPLOG"
echo "Attempting to restart MySQL automatically..." >> "$TMPLOG"
mail -a "From: MySQL Monitor <tuhin.picotech@gmail.com>" -s "🚨 MySQL Crash Detected on $HOSTNAME" "$EMAIL" < "$TMPLOG"
systemctl restart mysql
sleep 5
if systemctl is-active --quiet "$SERVICE"; then
echo "✅ MySQL was restarted successfully at $DATE" | mail -a "From: MySQL Monitor <tuhin.picotech@gmail.com>" -s "✅ MySQL Restarted on $HOSTNAME" "$EMAIL"
else
echo "❌ MySQL restart failed at $DATE. Manual intervention required." | mail -a "From: MySQL Monitor <tuhin.picotech@gmail.com>" -s "🚨 MySQL Restart Failed on $HOSTNAME" "$EMAIL"
fi
}
# Check MySQL status
if ! systemctl is-active --quiet "$SERVICE"; then
check_and_report
fi
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0031 ]-- |