case Computer :

[Shell Script] if / 용량 체크 스크립트

거곰 2009. 9. 12. 15:53

쉘 스크립트를 만들때 한번에 뚝딱하고 만들어지는 경우가 없다.

유연성이 없어 똑같은 형식으로 작성해야한다.


아래는 /var 용량을 체크 하는 스크립트이다

#!/bin/bash
DATA=`/bin/df -k | /bin/grep /var | /bin/awk '{if( $3 >= 3072 ) print "TRUE"; print "FALSE";}'`
DATE=`/bin/date '+%y%m%d_%H%M'`
DATE2=`/bin/date '+%y%m%d'`

echo "$DATE" >> /home/sensor/log/var_log/log_$DATE2.txt
echo "`/bin/df -k`">> /home/sensor/log/var_log/log_$DATE2.txt


if [ "$DATA" = "TRUE" ]
then
echo " -----> Delete Log " >> /home/sensor/log/var_log/log_$DATE2.txt
/bin/cp /var/log/message /home/sensor/log/var_log/message.$DATE
/bin/cp /dev/null /var/log/message
fi


echo "" >> /home/sensor/log/var_log/log_$DATE2.txt
echo "##############################################" >> /home/sensor/log/var_log/log_$DATE2.txt



위에서 주의 할 점 몇가지

1. 변수 지정할경우에
  DATA=`/bin/df -k`     --- O        <- 딱 붙여서 써야함.
  DATA = `/bin/df -k`   --- X
  DATA =`/bin/df -k`    --- X

2. if문
  if ( "String" = "String" )      --- X   <- () 아니라 []이다
  if [ "String" -eq "String" ]  --- X   <- 문자열 비교시에 =, >, < 사용   / 정수 비교시에 -eq, -ne, -ge, -le
  if ( "String" == "String" )     --- X


       정수     :   문자열
값1 -eq 값2 : 값1 = 값2
값1 -ne 값2 : 값1 != 값2
값1 -lt 값2   : 값1 < 값2
값1 -le 값2  : 값1 <= 값2
값1 -gt 값2  : 값1 > 값2
값1 -ge 값2 : 값1 >= 값2

반응형