[LINUX] MONITORING MYSQL - fourslickz/notes GitHub Wiki
#!/bin/bash
# Set the monitoring interval in seconds (10 seconds in this case)
INTERVAL=10
# Set the total duration to monitor (3600 seconds = 1 hour)
DURATION=3600
# Calculate how many times to run the command (DURATION / INTERVAL)
ITERATIONS=$((DURATION / INTERVAL))
# Set MySQL login credentials
MYSQL_USER="your_username"
MYSQL_PASS="your_password"
MYSQL_HOST="localhost"
# Output file to store the processlist logs
OUTPUT_FILE="mysql_processlist.log"
echo "Monitoring MySQL process list for 1 hour..."
echo "Process list will be logged to $OUTPUT_FILE"
# Loop for the specified number of iterations
for (( i=1; i<=ITERATIONS; i++ ))
do
echo "---------- Processlist at $(date) ----------" >> $OUTPUT_FILE
mysql -u $MYSQL_USER -p$MYSQL_PASS -h $MYSQL_HOST -e "SHOW PROCESSLIST;" >> $OUTPUT_FILE
echo "" >> $OUTPUT_FILE
sleep $INTERVAL
done
echo "Monitoring complete. Process list is logged in $OUTPUT_FILE."