forked from antonzhelyazkov/nagiosScripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclearSwap.sh
68 lines (61 loc) · 2.36 KB
/
clearSwap.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
#!/bin/bash
logFile="/var/log/clearSwap.log"
pidFile="/var/run/clearSwap.pid"
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
echo $(date "+%Y-%m-%d %H:%M:%S") "This script must be run as root" >> $logFile
exit 1
fi
if [ -f $pidFile ]; then
echo $(date "+%Y-%m-%d %H:%M:%S") "ERROR pid file $pidFile exists check if ptoccess is still running" >> $logFile
if ps ax | grep $0 | grep -v $$ | grep bash | grep -v grep
then
echo $(date "+%Y-%m-%d %H:%M:%S") "The script $0 is already running. EXIT!" >> $logFile
exit 1
else
echo $$ > $pidFile
fi
else
echo $$ > $pidFile
fi
if [ $(swapon -s | grep partition -q; echo $?) -eq 0 ]
then
swapUsage=$(free | awk '/Swap/{printf("%.0f"), $3/$2*100}')
swapLimit=2
if [ $swapUsage -gt $swapLimit ]
then
echo $(date "+%Y-%m-%d %H:%M:%S") "WARNING Swap usage is $swapUsage% start swapoff -a" >> $logFile
swapoff -a
checkSwapOff=$?
if [ $checkSwapOff -eq 0 ]
then
echo $(date "+%Y-%m-%d %H:%M:%S") "OK swapoff -a finished" >> $logFile
else
echo $(date "+%Y-%m-%d %H:%M:%S") "WARNING swapoff -a exit with error $checkSwapOff" >> $logFile
exit 1
fi
swapon -a
checkSwapOn=$?
if [ $checkSwapOn -eq 0 ]
then
echo $(date "+%Y-%m-%d %H:%M:%S") "OK swapon -a finished" >> $logFile
else
echo $(date "+%Y-%m-%d %H:%M:%S") "WARNING swapon -a exit with error $checkSwapOn" >> $logFile
exit 1
fi
else
echo $(date "+%Y-%m-%d %H:%M:%S") "OK Swap usage is $swapUsage%" >> $logFile
fi
else
echo $(date "+%Y-%m-%d %H:%M:%S") "WARNING swap is OFF trying to switch ON" >> $logFile
swapon -a
checkSwapOn=$?
if [ $checkSwapOn -eq 0 ]
then
echo $(date "+%Y-%m-%d %H:%M:%S") "OK swapon -a finished" >> $logFile
else
echo $(date "+%Y-%m-%d %H:%M:%S") "WARNING swapon -a exit with error $checkSwapOn" >> $logFile
exit 1
fi
fi
rm -f $pidFile