Created
August 16, 2017 04:25
-
-
Save penn201500/dad1045a660f8de1d051891f13a5318d to your computer and use it in GitHub Desktop.
shell实现每个工作日定时执行指定任务
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
#Section configuration(配置部分) | |
#Task Time ,example:203000(Time 20:30:00);190000(Time 19:00:00); | |
startTime=113200 | |
#Section promgram (程序执行部分) | |
perDate=$(date "+%Y%m%d") | |
isNewDay=1 | |
isFirstTime=1 | |
#the programs you want to execute(要执行的程序) | |
program_start=nohup nethogs -d 5 >> nethogs$(date "+%Y%m%d").txt & | |
program_kill=ps aux | grep nethogs | grep -v grep | cut -c 9-15 | xargs kill -s 9 | |
echo 'Task schedule Time: ('$startTime') program: nethogs Waiting...' | |
while true ; do | |
curTime=$(date "+%H%M%S") | |
curDate=$(date "+%Y%m%d") | |
#Check week day(周末不执行) | |
week=`date +%w` | |
if [ $week -eq 6 ] || [ $week -eq 0 ];then | |
isNewDay=0 | |
sleep 1 | |
continue | |
else | |
#check and run script(工作日执行) | |
if [ "$isNewDay" -eq "1" ];then | |
if [ "$curTime" -gt "$startTime" ];then | |
if [ "$isFirstTime" -eq "0" ];then | |
echo 'The program nethogs Running...' | |
$program_kill | |
echo 'The program nethogs Stopped...' | |
fi | |
isNewDay=0 | |
else | |
if [ "$isFirstTime" -eq "1" ];then | |
echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...' | |
isFirstTime=0 | |
fi | |
fi | |
else | |
#new day start(开始新的一天) | |
if [ "$curDate" -gt "$perDate" ];then | |
echo 'New Day: ('$curDate') Task schedule Time: ('$startTime') Waiting...' | |
isNewDay=1 | |
perDate=$curDate | |
echo 'The program nethogs Running...' | |
$program_start | |
break | |
fi | |
fi | |
sleep 1 | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment