Skip to content

Instantly share code, notes, and snippets.

@AgungPambudi
Created December 4, 2019 04:50
Show Gist options
  • Save AgungPambudi/aa3f3a5001750dfb778261aea9a4e74f to your computer and use it in GitHub Desktop.
Save AgungPambudi/aa3f3a5001750dfb778261aea9a4e74f to your computer and use it in GitHub Desktop.
bash script to kill process "SELECT & Sleep" at processlist in MySQL.
#!/bin/bash
#title : mysql_kill_process_based_on_ips.sh
#description : bash script to kill process "SELECT & Sleep" at processlist in MySQL.
#author : Agung Pambudi
#website : http://agungpambudi.com
#email : mail@agungpambudi.com
#version : 0.2
#==============================================================================
#
# _ _ _
# ___ ___ _ _ ___ ___ ___ ___ _____| |_ _ _ _| |_| ___ ___ _____
#| .'| . | | | | . | . | .'| | . | | | . | |_| _| . | |
#|__,|_ |___|_|_|_ | _|__,|_|_|_|___|___|___|_|_|___|___|_|_|_|
# |___| |___|_|
DB="database"
HOST="--host=192.168.07.122"
USER="--user=root"
PASSWORD="--password=123"
for i in `mysql $HOST $USER $PASSWORD $DB -e 'select id from information_schema.processlist where COMMAND like "%Sleep%" AND TIME > 3' | sed 's/\(^[0-9]*\).*/\1/'`; do
echo "Killing sleep - ${i}";
mysql $HOST $USER $PASSWORD $DB -e "kill ${i}";
done
for i in `mysql $HOST $USER $PASSWORD $DB -e 'select id from information_schema.processlist where HOST not like "%192.168.07.08%" AND HOST not like "%192.168.07.12%" AND HOST not like "%192.168.07.50%" AND INFO like "SELECT%"' | sed 's/\(^[0-9]*\).*/\1/'`; do
echo "Killing query - SELECT - ${i}";
mysql $HOST $USER $PASSWORD $DB -e "kill ${i}";
done
for i in `mysql $HOST $USER $PASSWORD $DB -e 'select id from information_schema.processlist where HOST not like "%192.168.07.08%" AND HOST not like "%192.168.07.12%" AND HOST not like "%192.168.07.50%" AND INFO like "select%"' | sed 's/\(^[0-9]*\).*/\1/'`; do
echo "Killing query - select - ${i}";
mysql $HOST $USER $PASSWORD $DB -e "kill ${i}";
done
for i in `mysql $HOST $USER $PASSWORD $DB -e 'select id from information_schema.processlist where HOST not like "%192.168.07.08%" AND HOST not like "%192.168.07.12%" AND HOST not like "%192.168.07.50%" AND INFO like "Select%"' | sed 's/\(^[0-9]*\).*/\1/'`; do
echo "Killing query - Select - ${i}";
mysql $HOST $USER $PASSWORD $DB -e "kill ${i}";
done
echo "=========================================="
echo " done ! "
echo "=========================================="
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment