Technical Note/LINUX

auto_cmd.sh


#!/bin/sh


CMD="$1"

CMD2="$2"

while [ 1 ]; do

eval $CMD

sleep $CMD2

done


=================================

실행


auto_cmd.sh "명령어"  반복주기(초)


ex) auto_cmd.sh "ls -al" 60       : 60초 마다 ls -al 명령어 수행한 결과를 보여준다.



아래는 매 시간 마다 실행이 되고, 날짜가 변경 될 경우 처리하는 소스이다.



#!/sbin/sh


CMD="$1"

CMD2="$2"

CMD3="$3"


DATE1=`date +%d`


while [ 1 ]; do


NOWDATE1=`date +%d`


#change date check

if [ "$DATE1" != "$NOWDATE1" ]; then

 DATE1=$NOWDATE1

 cat ./monitor.txt >> ./monitor_backup.txt

 rm -rf ./monitor.txt

fi


DATEMM=`date +%M`


# xx hour 1min write log

if [ "$DATEMM" = "01" ]; then

 eval $CMD

 eval $CMD2

fi


sleep $CMD3


done


실행



auto_cmd.sh "date >> monitor.txt" "vmstat >> monitor.txt" 60 


1번째 인자 : 현재 시간을 모니터.텍스트 파일로 저장

2번째 인자 : 서버 상태를 모니터.텍스트 파일로 저장

3번째 인자 : 60초 주기로 스크립트를 반복