- 有一个定时任务脚本,每分钟执行一次,但是在系统刚启动的半小时内,不需要去执行它
- 需要获取系统运行时间,再与当前时间对比,或者与设定的具体值对比
- 使用
cat /proc/uptime
获取系统运行时间,第一个值为运行的秒数 - 使用
$(cat /proc/uptime)
将cat读取的值赋值给变量 - 由于小数对比比较麻烦,使用
${uptime//./ }
将点.
替换为空格,使用()
转化为数组,再获取第一个${uptimeArr[0]}
作为整数秒数 - 字符串无法与数值比较大小,使用
expr $startTime + 1
将字符串转为数字 - 数值对比需要
-lt
,低于1800秒(30分钟)就直接退出exit
- 具体脚本如下
uptime=$(cat /proc/uptime)
echo "uptime: $uptime"
uptimeArr=(${uptime//./ })
startTime=${uptimeArr[0]}
echo $startTime
a=`expr $startTime + 1`
b=1800
if [[ "$a" -lt "$b" ]];
then
echo "系统启动30分钟内不执行"
exit
fi
echo "启动时间为$startTime秒,正常执行脚本"