If you are on this site you are probably looking to monitor the temperature in your server room. The solution? A USB thermometer!

TEMPer Usb Thermometer
USB Thermometer

This site will show you how to set this up with a little usb themometer device (temperv14) ..


 

In this article you will see how to setup temper in CentOS linux by compiling the temperv14 driver for linux.

– Compiling temperv14

Step1 – Installing dependencies
1
yum -y install wget unzip usbutils make gcc gcc++ kernel-devel kernel-headers binutils libusb1 libusb1-devel libusb-devel
Step2 – Exporting Libraries
1
2
export LIBUSB_INCDIR=/usr/include/libusb-1.0/
export LIBUSB_LIBDIR=/usr/lib64/
Step3 – Download TEMPerV14 Source
1
wget http://linuxusbthermometer.com/temperv14.zip
Step4 – Extract temperv14.zip
1
unzip temperv14.zip
Step5 – Compile temperv14
1
2
3
cd temperv14
make
mv temperv14 /usr/bin/
Now let’s try it out
[[email protected] ~]# temperv14 -c
32c

 

 

[[email protected] ~]# temperv14 -f
90f

 

 

As you can see it is working and you can chose the -c switch to get the temperature in Celcius or the -f switch to get the temperature in Fahrenheit.

– Scripting alert

Now thats cool but what clever trick can we use to consistently monitor the temperature in the server room and get an email alert if the temperature get higher than a set temperature.

We could use a script:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
threshold="33" #Here you set the limit before email alert is sent
interval=60 #Here you set the monitoring interval in seconds 
email="[email protected]" #Here you set the email address to receive alerts
measurement="c" #Here you specify the measurement c for Celcius or f for Fahrenheit
temperv14status=$(type -P temperv14 &>/dev/null && echo "Found" || echo "Not Found")
if [ $temperv14status = Found ]; then
        while true; do
        temp=$(temperv14 -$measurement | cut -d"." -f1)
        tempdec=$(temperv14 -$measurement)
                        if [ "$tempdec" == "Couldn't find the USB device, Exiting" ]; then
                                echo "The themometer is unplugged $temp$measurement" | mail -s "temperature alert" $email
                                echo "The themometer is unplugged $temp$measurement"
                        elif [ $temp -gt $threshold ]; then
                                echo "Room Temperature Critical at $temp$measurement" | mail -s "temperature alert" $email
                                echo "Room Temperature Critical at $temp$measurement"
                        else
                                echo $temp
                        fi
        sleep $interval;
        done
else
        echo "temperv14 does not seems to have been installed properly"
fi
NOW CREATE A FOLDER “SCRIPT”, USE YOUR FAVORITE EDITOR TO create the tempcheck.sh File By COPYing  and PASTing THE SCRIPT TO IT.
[[email protected] ~]# mkdir /script/
[[email protected] ~]# cd /script/
[[email protected] script]# vim /script/tempcheck.sh
[[email protected] script]# cd ..

 

 

 

Now copy and paste the script above in that file save it

Make sure to change the following values in the script to your preferences:

threshold="33" #Here you set the limit before email alert is sent
interval=60 #Here you set the monitoring interval in seconds 
email="[email protected]" #Here you set the email address to receive alerts
measurement="c" #Here you specify the measurement c for Celcius or f for Fahrenheit
ALLOW EXECUTION OF THE SCRIPT
[[email protected] ~]# chmod +x /script/tempcheck.sh

 

Now Let’s run it
[[email protected] ~]# cd /script/
[[email protected] script]# ./tempcheck.sh
30c

 

 

 

If you get the following error use dos2unix to convert the script to unix format.

/bin/bash^M: bad interpreter: No such file or directory

Congradulation you are successfully montoring your server room temperature using CentOS and a Usb thermometer and will receive email alert when the temperature reaches the limit set.

– Creating a service

You probably figured it out, so until now this temperature monitoring script is runnning from a terminal and if your session gets terminated so are the running process in that session.

You could use bashrc or profile.d to run it on start but that gives you little control over the script.

Wouldn’t be nice if we could have it running as a service to have a viable usb temperature sensor solution for the server room temperature monitoring with linux and a TEMPer usb thermometer?

OK lets create an init script:
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
#!/bin/bash
#/etc/init.d/checktemp
 
### BEGIN INIT INFO
# Provides:          checktemp
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: checktemp initscript for TEMPer
# Description:       This service is used to manage check the temperature in the server room
### END INIT INFO
 
 
case "$1" in 
    start)
	if [[ $(screen -list | grep TempCheck) ]]; then
		echo "TempCheck is already running please try 'service checktemp restart' instead"
	else
        	echo "Starting TempCheck"
       		 /usr/bin/screen -dmS TempCheck bash -c "/script/tempcheck.sh; /bin/bash"
	fi
        ;;
    stop)
        echo "Stopping TempCheck"
	for session in $(screen -ls | grep -o '[0-9]*\.TempCheck'); do screen -S "${session}" -X quit; done
        ;;
    restart)
        echo "Restarting TempCheck"
	for session in $(screen -ls | grep -o '[0-9]*\.TempCheck'); do screen -S "${session}" -X quit; done
        /usr/bin/screen -dmS TempCheck bash -c "/script/tempcheck.sh; /bin/bash"
        ;;
    *)
        echo "Usage: /etc/init.d/checktemp start|stop|restart"
        exit 1
        ;;
esac
 
exit 0
NOW USE YOUR FAVORITE EDITOR TO CREATE THE checktemp FILE BY COPYING  AND PASTING THE INITSCRIPT TO IT.
[[email protected]]# vim /etc/init.d/checktemp

 

Now copy and paste the initscript above in that file save it

ALLOW EXECUTION OF THE SCRIPT AND ENABLE THE SERVICE
[[email protected] ~]# chmod +x /etc/init.d/checktemp
[[email protected] ~]# chkconfig checktemp on
[[email protected] ~]# service checktemp start

 

NOW LET’S TRY IT OUT
[[email protected] ~]# service checktemp start
Starting TempCheck
[[email protected] ~]# service checktemp restart
Restarting TempCheck
[[email protected] ~]# screen -ls
There is a screen on:
1811.TempCheck (Detached)
1 Socket in /var/run/screen/S-root.

[[email protected] ~]# service checktemp stop
Stopping TempCheck
[[email protected] ~]# screen -ls
No Sockets found in /var/run/screen/S-root.

 

 

 

 

 

 

 

 

 

If you get the following error use dos2unix to convert the script to unix format.

/bin/bash^M: bad interpreter: No such file or directory

If everything went well you should now have a full server room temperature monitoring solution with CentOS  and a usb TEMPer temperature sensor, you should also receive email alerts and the service should start automatically with your server.

Putting it all together in one script

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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
#!/bin/bash
dep=(wget unzip usbutils make gcc kernel-devel kernel-headers binutils libusb1 libusb1-devel libusb-devel screen mailx dialog)
DIRS=( "/usr/include/libusb-1.0/" "/usr/lib64/" )
ZIPFILE=temperv14.zip
ZIPFILEURL="http://linuxusbthermometer.com/temperv14.zip"
COMPILEDIR=temperv14
SCRIPTDIRS=( /script/ /etc/init.d/ )
SCRIPTS=( tempcheck.sh checktemp )
echo -e "\x1B[01;93m 
#         _____  _____ _      ____  _____ ____  _     _     _    _____  _____ _      ____  _____ ____  ____  _____  _     ____  _____                               
#        /__ __\/  __// \__/|/  __\/  __//  __\/ \ |\/ \/\ / |  /__ __\/  __// \__/|/  __\/  __//  __\/  _ \/__ __\/ \ /\/  __\/  __/                               
#          / \  |  \  | |\/|||  \/||  \  |  \/|| | //| |\_\| |    / \  |  \  | |\/|||  \/||  \  |  \/|| / \|  / \  | | |||  \/||  \                                 
#          | |  |  /_ | |  |||  __/|  /_ |    /| \// | |   | |    | |  |  /_ | |  |||  __/|  /_ |    /| |-||  | |  | \_/||    /|  /_                                
#          \_/  \____\\_/  \|\_/   \____\\_/\_\\__/  \_/   \_|    \_/  \____\\_/  \|\_/   \____\\_/\_\\_/ \|  \_/  \____/\_/\_\\____\                               
#   _      ____  _      _  _____  ____  ____  _  _      _____   ____  _____ ____  _     ____ ___  _ _      _____ _      _____    ____  ____  ____  _  ____  _____   
#  / \__/|/  _ \/ \  /|/ \/__ __\/  _ \/  __\/ \/ \  /|/  __/  /  _ \/  __//  __\/ \   /  _ \\  \/// \__/|/  __// \  /|/__ __\  / ___\/   _\/  __\/ \/  __\/__ __\  
#  | |\/||| / \|| |\ ||| |  / \  | / \||  \/|| || |\ ||| |  _  | | \||  \  |  \/|| |   | / \| \  / | |\/|||  \  | |\ ||  / \    |    \|  /  |  \/|| ||  \/|  / \    
#  | |  ||| \_/|| | \||| |  | |  | \_/||    /| || | \||| |_//  | |_/||  /_ |  __/| |_/\| \_/| / /  | |  |||  /_ | | \||  | |    \___ ||  \_ |    /| ||  __/  | |    
#  \_/  \|\____/\_/  \|\_/  \_/  \____/\_/\_\\_/\_/  \|\____\  \____/\____\\_/   \____/\____//_/   \_/  \|\____\\_/  \|  \_/    \____/\____/\_/\_\\_/\_/     \_/    
#                                                                                                                                                                    \n \x1B[0m"
#########################################################################
###########################SCRIPT BASIC CHECKS###########################
#########################################################################
#####################MAKE SURE SCRIPT IS RUN AS ROOT#####################
if [[ $EUID -ne 0 ]]; then						#
	exec sudo /bin/bash "$0" "$@"					#
fi									#
##############################CHECK DISTRO###############################
#########################CentOS Fedora or Redhat#########################
if [ -f /etc/redhat-release ]; then					#
	echo -e "\x1B[01;92m Your Linux distribution is supported installation continues \n \x1B[0m"  #
############################Debian or Ubuntu#############################
elif [ -f /etc/debian_version ]; then					#
	echo -e "\x1B[01;91m Your Linux distribution is not supported. \n \x1B[0m"	
	exit 1								#
###################Other distros (who knows, too bad!)###################
else									#
	echo -e "\x1B[01;91m Your Linux distribution is not supported. \n \x1B[0m"	#
	exit 1								#
fi									#
#########################################################################
 
###########################################################################################################
#######################CHECK DEPENDENCIES FUNCTION#########################################################
###########################################################################################################
function checkdep {											  #
#################CHECK COMMAND STATUS AND ATTEMPT TO FIX###################################################
if [ "$2" = "not" ]; then									  	  #
	echo -e "\x1B[01;93m '$1' Does Not seems to be present this script will attempt to correct that issue \n \x1B[0m"  #
###############################TRY TO FIX##################################################################
	yum -y install $1 > /dev/null									  #
######################CHECK IF FIX WORKED AND REPORT#######################################################
	if [ $? -eq 0 ]; then										  #
		echo -e "\x1B[01;92m '$1' Was succesfully installed \n \x1B[0m"				  #
	else												  #
		rpm --query --queryformat "" $1								  #
		if [ $? -eq 0 ]; then									  #
		echo -e "\x1B[01;92m '$1' Was succesfully installed \n \x1B[0m"				  #
		else											  #
			echo -e "\x1B[01;91m Could Not correct the '$1' issue please fix it manually before running this script again \n \x1B[0m" #
			exit 1										  #
		fi											  #
	fi												  #
fi }													  #
###########################################################################################################
 
#################################################################################################################################################
#######################EXPORT USBLIB PATH FUNCTION###############################################################################################
#################################################################################################################################################
function pathexport {																#
if [ -d $1 ]; then																#
	echo -e "\x1B[01;92m The Directory '$1' Does Exists this script will now export $1 path \n \x1B[0m"					#
	export LIBUSB_INCDIR=/usr/include/libusb-1.0/												#
	if [ $? -eq 0 ]; then															#
		echo -e "\x1B[01;92m The path '$1' Was succesfully exported \n \x1B[0m"								#
	else																	#
		echo -e "\x1B[01;91m Beats me the path exportation of '$1' was unsuccesfull try to export manually before running this script again \n \x1B[0m" #
		exit 1																#
	fi																	#                  
else																		#
	echo -e "\x1B[01;91m The Directory '$1' Does Not Exist please this script will try to run without it  \n \x1B[0m"			#
fi }																		#
#################################################################################################################################################
 
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
############################COMPILE FUNCTION#####################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
function compile {																#
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#############GENERATE COMPILE DRIECTORY LEVEL 1 SUB-FUNCTION#####################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
function gencompiledir {                                                                                                                        #
#################################################################################################################################################
#################EXTRACT ZIP FILE LEVEL 3 SUB-FUNCTION###########################################################################################
#################################################################################################################################################
function extract {                                                                                                                              #
unzip -o $ZIPFILE  > /dev/null                                                                                                                  #
if [ $? -eq 0 ]; then                                                                                                                           #
        echo -e "\x1B[01;92m The zipfile '$ZIPFILE' extraction was successfully extracted \n \x1B[0m"                                           #
else                                                                                                                                            #
        echo -e "\x1B[01;91m It seems there was an issue extracting '$ZIPFILE' please make sure '$ZIPFILE' is a vaild zip file before running this script again \n \x1B[0m"
        exit 1                                                                                                                                  #
fi }                                                                                                                                            #
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
																		#
#################################################################################################################################################
#################################################################################################################################################
#################DOWNLOAD ZIP FILE LEVEL 2 SUB-FUNCTION##########################################################################################
#################################################################################################################################################
#################################################################################################################################################
function validatedownload {                                                                                                                     #
if [ $? -eq 0 ]; then                                                                                                                           #
        echo -e "\x1B[01;92m The zipfile '$ZIPFILE' Was successfully downloaded \n \x1B[0m"                                                     #
        extract                                                                                                                                 #
else                                                                                                                                            #
        echo -e "\x1B[01;91m The zipfile '$ZIPFILE' download was unsuccessfull please check your internet connection before running this script again \n \x1B[0m" #
        exit 1                                                                                                                                  #
fi }																		#
if [ -f $ZIPFILE ]; then                                                                                                                        #
        echo -e "\x1B[01;93m The zipfile '$ZIPFILE' Does Exists this script will overwrite it before extraction \n \x1B[0m"			#
        wget -r --level=0 $ZIPFILEURL 2> /dev/null												#
	validatedownload															#
else                                                                                                                                            #
        echo -e "\x1B[01;93m The zipfile '$ZIPFILE' Does Not Exist this script will attempt to download it \n \x1B[0m"                          #
        wget $ZIPFILEURL 2> /dev/null														#
	validatedownload															#
fi }																		#
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
																		#
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
																		#
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################  
#############GENERATE COMPILE DRIECTORY LEVEL 1 SUB-FUNCTION#####################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
function compilation {																#
if [ $? -eq 0 ]; then																#
	echo -e "\x1B[01;92m The Directory '$COMPILEDIR' Was successfully generated \n \x1B[0m"							#
	cd $COMPILEDIR																#
	make > /dev/null															#
	if [ $? -eq 0 ]; then															#
		echo -e "\x1B[01;92m temperv14 Was successfully compiled \n \x1B[0m"								#
		mv temperv14 /usr/bin/														#
		cd ..																#
	else																	#
		echo -e "\x1B[01;91m There was an error compiling temperv14 try to do it manually \n \x1B[0m"					#
		exit 1																#
	fi																	#
else																		#
	echo -e "\x1B[01;91m There was an issue generating '$COMPILEDIR', since '$COMPILEDIR' is required to compile tempverv14 this script will exit TEMPERV14 WAS NOT INSTALLED \n \x1B[0m"
	exit 1																	#
fi }																		#
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
																		#
if [ -d $COMPILEDIR ]; then															#
        echo -e "\x1B[01;93m The Directory '$COMPILEDIR' Does Exists this script will erase it before regenerating it \n \x1B[0m"		#
        rm -rf $COMPILEDIR															#
        gencompiledir																#
	compilation																#
else																		#
        echo -e "\x1B[01;93m The Directory '$COMPILEDIR' Does Not Exist This script will attempt to generate it \n \x1B[0m"			#
        gencompiledir																#
	compilation																#
fi }																		#
#################################################################################################################################################
function genscripttemplate {
if [ -f $1 ]; then
	echo -e "\x1B[01;93m The file $1 Does Exist in current directory this script will overwrite it before continuing \n \x1B[0m"
	rm -f $1
	if [ $1 == checktemp ]; then
		echo -e '#!/bin/bash
#/etc/init.d/checktemp
 
### BEGIN INIT INFO
# Provides:          checktemp
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: checktemp initscript
# Description:       This service is used to manage check the temperature 
### END INIT INFO
 
 
case "$1" in 
    start)
	if [[ $(screen -list | grep TempCheck) ]]; then
		echo "TempCheck is already running please try 'service checktemp restart' instead"
	else
        	echo "Starting TempCheck"
       		 /usr/bin/screen -dmS TempCheck bash -c "/script/tempcheck.sh; /bin/bash"
	fi
        ;;
    stop)
        echo "Stopping TempCheck"
	for session in $(screen -ls | grep -o '[0-9]*\.TempCheck'); do screen -S "${session}" -X quit; done
        ;;
    restart)
        echo "Restarting TempCheck"
	for session in $(screen -ls | grep -o '[0-9]*\.TempCheck'); do screen -S "${session}" -X quit; done
        /usr/bin/screen -dmS TempCheck bash -c "/script/tempcheck.sh; /bin/bash"
        ;;
    *)
        echo "Usage: /etc/init.d/checktemp start|stop|restart"
        exit 1
        ;;
esac
 
exit 0
' >> checktemp
	else
		echo -e '#!/bin/bash
threshold="33" #Here you set the limit before email alert is sent
interval=60 #Here you set the monitoring interval in seconds 
email="[email protected]" #Here you set the email address to receive alerts
measurement="c" #Here you specify the measurement c for Celcius or f for Fahrenheit
temperv14status=$(type -P temperv14 &>/dev/null && echo "Found" || echo "Not Found")
if [ $temperv14status = Found ]; then
        while true; do
        temp=$(temperv14 -$measurement | cut -d"." -f1)
        tempdec=$(temperv14 -$measurement)
                        if [ "$tempdec" == "Couldnt find the USB device, Exiting" ]; then
                                echo "The themometer is unplugged $temp$measurement" | mail -s "temperature alert" $email
                        elif [ $temp -gt $threshold ]; then
                                echo "Room Temperature Critical at $temp$measurement" | mail -s "temperature alert" $email
                        else
                                echo $temp
                        fi
        sleep $interval;
        done
else
        echo "temperv14 does not seems to have been installed properly"
fi
' >> tempcheck.sh
	fi 
else
        if [ $1 == checktemp ]; then
                echo -e '#!/bin/bash
#/etc/init.d/checktemp
 
### BEGIN INIT INFO
# Provides:          checktemp
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: checktemp initscript
# Description:       This service is used to manage check the temperature
### END INIT INFO
 
 
case "$1" in
    start)
        if [[ $(screen -list | grep TempCheck) ]]; then
                echo "TempCheck is already running please try 'service checktemp restart' instead"
        else
                echo "Starting TempCheck"
                 /usr/bin/screen -dmS TempCheck bash -c "/script/tempcheck.sh; /bin/bash"
        fi
        ;;
    stop)
        echo "Stopping TempCheck"
        for session in $(screen -ls | grep -o '[0-9]*\.TempCheck'); do screen -S "${session}" -X quit; done
        ;;
    restart)
        echo "Restarting TempCheck"
        for session in $(screen -ls | grep -o '[0-9]*\.TempCheck'); do screen -S "${session}" -X quit; done
        /usr/bin/screen -dmS TempCheck bash -c "/script/tempcheck.sh; /bin/bash"
        ;;
    *)
        echo "Usage: /etc/init.d/checktemp start|stop|restart"
        exit 1
        ;;
esac
 
exit 0
' >> checktemp
        else
		echo -e '#!/bin/bash
threshold="33" #Here you set the limit before email alert is sent
interval=60 #Here you set the monitoring interval in seconds
email="[email protected]" #Here you set the email address to receive alerts
measurement="c" #Here you specify the measurement c for Celcius or f for Fahrenheit
temperv14status=$(type -P temperv14 &>/dev/null && echo "Found" || echo "Not Found")
if [ $temperv14status = Found ]; then
        while true; do
        temp=$(temperv14 -$measurement | cut -d"." -f1)
        tempdec=$(temperv14 -$measurement)
                        if [ "$tempdec" == "Couldnt find the USB device, Exiting" ]; then
                                echo "The themometer is unplugged $temp$measurement" | mail -s "temperature alert" $email
                        elif [ $temp -gt $threshold ]; then
                                echo "Room Temperature Critical at $temp$measurement" | mail -s "temperature alert" $email
                        else
                                echo $temp
                        fi
        sleep $interval;
        done
else
        echo "temperv14 does not seems to have been installed properly"
fi
' >> tempcheck.sh
	fi
fi }
#################################################################################################################################################
#################################################################################################################################################
########################GENERATE SCRIPTS FUNCTION################################################################################################
#################################################################################################################################################
#################################################################################################################################################
function generationscript {															#
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
function cpscript {																#
if [ $? -eq 0 ] && [ -f $2 ]; then														#
	echo -e "\x1B[01;92m The '$2' script is availible this script will now move the newly generated script in the right location \n \x1B[0m" #
	chmod +x $2																#
	/bin/cp -rf $2 $1															#
else																		#
	echo -e "\x1B[01;91m There was an issue generating '$2' please make sure that '$2' is availible in current directory \n \x1B[0m"	#
	exit 1																	#
fi }																		#
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
																		#
if [ -d $1 ]; then																#
	echo -e "\x1B[01;92m The Directory '$1' Does Exists this script will now generate the '$2' script \n \x1B[0m"				#
	cpscript $1 $2																#
else																		#
	echo -e "\x1B[01;93m The Directory '$1' Does Not Exists this script will now attempt to create it before generating the '$2' script \n \x1B[0m" #
	mkdir $1																#
	if [ $? -eq 0 ]; then															#
		echo -e "\x1B[01;92m The Directory '$1' Was successfully created this script will now attempt to generate '$2' script \n \x1B[0m" #
		cpscript $1 $2															#
	else																	#
		echo -e "\x1B[01;91m The Directory '$1' Could Not be created try to create it manually before runnning this script again \n \x1B[0m" #
		exit 1																#
	fi																	#
fi }																		#
#################################################################################################################################################
if [[ $(screen -list | grep TempCheck) ]]; then
	echo -e "\x1B[01;93m TempCheck is already running we will stop it now \n \x1B[0m"
	service checktemp stop
	if [ $? -eq 0 ]; then
		echo -e "\x1B[01;92m checktemp service was successfully started \n \x1B[0m"
	else
		echo -e "\x1B[01;91m checktemp service could not be stoped \n \x1B[0m"
		exit 1
	fi
 
else
	echo -e "\x1B[01;92m TempCheck is not install we will now install it \n \x1B[0m"
fi
 
for pkg in ${dep[@]}; do
	pkgstatus=$(rpm --query --queryformat "" $pkg | cut -d" " -f4)
	checkdep "$pkg" "$pkgstatus"
done
 
for path in ${DIRS[@]}; do
	pathexport "$path"
done
 
compile
 
for file in ${SCRIPTS[@]}; do
        genscripttemplate "$file"
done
 
 
 
for index in ${!SCRIPTDIRS[*]}; do
	 generationscript "${SCRIPTDIRS[$index]}" "${SCRIPTS[$index]}"
done
 
chkconfig checktemp on
if [ $? -eq 0 ]; then
	echo -e "\x1B[01;92m checktemp service was successfully added \n \x1B[0m"
else
	echo -e "\x1B[01;91m checktemp service could not be added \n \x1B[0m"
	exit 1
fi 
 
dialog --menu "Choose the temperature measurement" 10 30 5 1 c 2 f 2>tmpfile
mesure=$(cat tmpfile)
if [ $mesure == 2 ]; then
        sed -i s/measurement=\"c\"/measurement=\"f\"/g /script/tempcheck.sh
        rm -f tmpfile
fi
rm -f tmpfile
 
x=$(seq -131 131 > num && seq -131 131 > val && paste num val | tr '\n' '\t' | tr '\t' ' ')
dialog --menu "Choose the alert temperature" 0 35 0 $x 2> tmpfile2
alerttemp=$(cat tmpfile2 | cut -d " " -f1)
if [[ $alerttemp -gt -131 && $alerttemp -lt 131 ]]; then
       sed -i s/threshold=\"33\"/threshold=\""$alerttemp"\"/g /script/tempcheck.sh
fi
rm -f num val
rm -f tmpfile2
 
dialog --menu "Choose the monitoring interval" 0 35 0 "30-Secounds" "Half a Minute" "60-Secounds" "1 Minute" "300-Secounds" "5 Minutes" "900-Secounds" "15 Minutes" "1800-Secounds" "30 Minutes" "3600-Secounds" "1 Hours" "14400-Secounds" "4 Hours" "28800-Secounds" "8 Hours" "43200-Secounds" "12 Hours" "86400-Secounds" "24 Hours" 2> tmpfile3
alertinterv=$(cat tmpfile3 | cut -d "-" -f1)
case $alertinterv in
30)
  sed -i s/interval=60/interval=30/g /script/tempcheck.sh
  ;;
60)
  ;;
300)
  sed -i s/interval=60/interval=300/g /script/tempcheck.sh
  ;;
900)
  sed -i s/interval=60/interval=900/g /script/tempcheck.sh
  ;;
1800)
  sed -i s/interval=60/interval=1800/g /script/tempcheck.sh
  ;;
3600)
  sed -i s/interval=60/interval=3600/g /script/tempcheck.sh
  ;;
14400)
  sed -i s/interval=60/interval=14400/g /script/tempcheck.sh
  ;;
28800)
  sed -i s/interval=60/interval=28800/g /script/tempcheck.sh
  ;;
43200)
  sed -i s/interval=60/interval=43200/g /script/tempcheck.sh
  ;;
86400)
  sed -i s/interval=60/interval=86400/g /script/tempcheck.sh
  ;;
esac
rm tmpfile3
 
echo -n "Enter your email and press [ENTER]: "
read i
IFS="@"
set -- $i
if [ "${#@}" -eq 2 ];then
        domain="$2"
        dig $domain | grep "ANSWER: [1-9]">/dev/null
        if [ $? -eq 0 ]; then
                echo -e "\x1B[01;92m valid email \n \x1B[0m"
                sed -i s/you@yourdomain.com/"$i"/g /script/tempcheck.sh
        else
                echo -e "\x1B[01;91m invalid email \n \x1B[0m"
                exit 1
        fi
else
        echo -e "\x1B[01;91m invalid email \n \x1B[0m"
        exit 1
fi
rm -rf linuxusbthermometer.com/ temperv14 temperv14.zip tempcheck.sh checktemp
 
service checktemp start

What does it look while its running.