关于程序时间控制那点事情

 

  
  
  
  
  1. #!/bin/bash  
  2.  
  3.  
  4. #自动下载自动开启关闭脚本  
  5. #定义开始时间,000101表示00:01:01  
  6. datestart=000101 
  7. #定义结束时间,180101表示18:01:01  
  8. dateend=180101 
  9. #自动和网络时间同步,避免时间故障  
  10. sntp -P no -r pool.ntp.org  
  11. #获取当前系统的时区  
  12. zone=`awk /TZif2/ /etc/localtime |cut -c1-5`  
  13. zone="TZif2" 
  14. [ $zone != 0 ];rm /etc/localtime;  
  15. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
  16. #获取当前系统时间  
  17. date=`date --date=-24hour +%H%M%S`  
  18. #查看当前进程是否运行  
  19. downloader=`ps -ef |grep "/home/downloader/downloader" |grep -v grep|awk '{print $8}'|cut -c22-31|uniq`  
  20. #判断时间是否为下载时间,是,则进行下载  
  21. if [ $downloader = "downloader" ]  
  22. then exit 1  
  23.   elif  [  $date -ge $datestart -a $date -lt $dateend  ]  
  24. then `nohup /home/downloader/downloader > /dev/null &`;status=$?  
  25.    [ $status = 0  ] && echo "***********Now is $date,start downloader***********************" >>/var/log/start_downloader.log  
  26.    [ $status != 0  ] && echo "**********Now is $date,start downloader,but can't find the program" >>/var/log/start_downloader  
  27. .log  
  28.  
  29. elif [ $date -gt $dateend ]  
  30. then `ps -ef |grep down|grep -v grep|awk '{print $2}'|xargs kill -9`;status=$?  
  31.    [ $status != 0  ] && echo "***********Now is $date,the program is not running,stop error**************"  >>/var/log/stop_d  
  32. ownloader.log  
  33.    [ $status = 0  ] && echo "***********Now is $date,killed downloader*****************" >>/var/log/stop_downloader.log  
  34.  
  35.  
  36. #elif [ $down != 0 ] && [ $date -le $dateend ]  
  37. #then `nohup /home/downloader/downloader > /dev/null &`  
  38. #echo "*********Now is $date,the process is not running,started it" >>/var/log/start_downloader.log  
  39. else  
  40. echo "*********no such a file,please check the process url">>/var/log/start_downloader.log  
  41. fi  
  42. exit 1  
  43. 0  

 

你可能感兴趣的:(shell,职场,休闲,程序自动开关)