linux Shell 实现每天定时执行脚本,周六周日除外,后台运行

本文介绍了一个使用Shell脚本实现的简易定时任务系统。该系统通过不断检查当前时间是否达到预设的时间点来触发指定脚本的执行,并考虑了跨天任务调度逻辑。适用于希望了解如何利用Shell脚本来进行简单任务调度的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


#!/bin/sh

#Section configuration(配置部分)
#Task Time ,ex:203000(Time 20:30:00);190000(Time 19:00:00);
startTime=170000
#Script File
scriptfile=./gen.sh

#Section promgram (程序执行部分)
perDate=$(date "+%Y%m%d")
isNewDay=1
totalSecs=0
isFirstTime=1

echo 'Task schedule Time: ('$startTime') scriptfile: ('$scriptfile') Waiting...'

while true ; do
curTime=$(date "+%H%M%S")
curDate=$(date "+%Y%m%d")

#Check week day
week=`date +%w`
day=`echo $week "- 1" | bc`
if [ $day -lt 0 ] || [ $day -eq 5 ];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 'Shell Script ('$scriptfile') Running...'
sh $scriptfile
echo 'Shell Script ('$scriptfile') 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
fi
fi
sleep 1
fi
done




后台挂起运行nohup ./autorun.sh&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值