-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcron.sh
127 lines (100 loc) · 4.84 KB
/
cron.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/bash
# <3ms - [Good]
# 3ms> <6ms - [Warning]
# > 6ms - [Critical]
MAIL_FROM="`hostname`@yourcompany.com"
MAIL_TO="[email protected]"
MASTER_ID=""
MYSQL_USER=""
MYSQL_PASS=""
Warningthreshold=3
Criticalthreshold=6
Maximum_notification=3
CMD=$(pt-heartbeat -D test --check -h localhost --master-server-id=$MASTER_ID -u $MYSQL_USER -p $MYSQL_PASS | cut -d. -f1)
if [ $CMD -lt $Warningthreshold ]
then
MESSAGE=`date +'%m:%d:%Y %H:%M:%S'`" [Good] current delay: "$CMD;
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Error
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning"
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical"
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Error"
if [ ! -f "/tmp/monitor_mysql_slave_cron_Maximum_notification_Good" ];then
echo 1 > /tmp/monitor_mysql_slave_cron_Maximum_notification_Good
else
notification_time=`cat /tmp/monitor_mysql_slave_cron_Maximum_notification_Good`
echo $notification_time+1|bc > /tmp/monitor_mysql_slave_cron_Maximum_notification_Good
fi
elif [ $CMD -gt $Warningthreshold ] && [ $CMD -lt $Criticalthreshold ]
then
MESSAGE=`date +'%m:%d:%Y %H:%M:%S'`" [Warning] current delay: "$CMD;
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Good
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Error
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Good"
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical"
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Error"
if [ ! -f "/tmp/monitor_mysql_slave_cron_Maximum_notification_Warning" ];then
echo 1 > /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning
else
notification_time=`cat /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning`
echo $notification_time+1|bc > /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning
fi
elif [ $CMD -gt $Criticalthreshold ]
then
MESSAGE=`date +'%m:%d:%Y %H:%M:%S'`" [Critical] current delay: $CMD Check the replication"
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Good
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Error
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Good"
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning"
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Error"
if [ ! -f "/tmp/monitor_mysql_slave_cron_Maximum_notification_Critical" ];then
echo 1 > /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical
else
notification_time=`cat /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical`
echo $notification_time+1|bc > /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical
fi
else
MESSAGE=`date +'%m:%d:%Y %H:%M:%S'`" [Error] Replication status check failed need to investigate."
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Good
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning
rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Good"
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning"
echo "rm -rf /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical"
if [ ! -f "/tmp/monitor_mysql_slave_cron_Maximum_notification_Error" ];then
echo 1 > /tmp/monitor_mysql_slave_cron_Maximum_notification_Error
else
notification_time=`cat /tmp/monitor_mysql_slave_cron_Maximum_notification_Error`
echo $notification_time+1|bc > /tmp/monitor_mysql_slave_cron_Maximum_notification_Error
fi
fi
#No arguments supplied"
if [ -f "/tmp/monitor_mysql_slave_cron_Maximum_notification_Good" ]; then
Good_time=`cat /tmp/monitor_mysql_slave_cron_Maximum_notification_Good`
else
Good_time=9999
fi
if [ -f "/tmp/monitor_mysql_slave_cron_Maximum_notification_Error" ]; then
Error_time=`cat /tmp/monitor_mysql_slave_cron_Maximum_notification_Error`
else
Error_time=9999
fi
if [ -f "/tmp/monitor_mysql_slave_cron_Maximum_notification_Critical" ]; then
Critical_time=`cat /tmp/monitor_mysql_slave_cron_Maximum_notification_Critical`
else
Critical_time=9999
fi
if [ -f "/tmp/monitor_mysql_slave_cron_Maximum_notification_Warning" ]; then
Warning_time=`cat /tmp/monitor_mysql_slave_cron_Maximum_notification_Warning`
else
Warning_time=9999
fi
if [ $Good_time -eq 1 ] || [ $Error_time -le $Maximum_notification ] || [ $Critical_time -le $Maximum_notification ] || [ $Warning_time -le $Maximum_notification ];
then
echo -e "To: $MAIL_TO\nFrom: <$MAIL_FROM>\nSubject: Replication status on `hostname`\n\nReplication status : $MESSAGE" | sendmail -t
echo "has sent email to $MAIL_TO"
fi
echo $MESSAGE