linux arm shell 秒级 定时 执行脚本

让linux定时执行秒级任务

http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html

问题是这样的,有个脚本需要10秒钟执行一次,脚本具体功能就不细说,定时任务自然选用crontab,但是crontab最小的执行时间为分钟,最后决定选用死循环进行实现。

脚本

vi hello.sh
#!/bin/sh
while :
do
echo `date` >> /home/chenyz/1      //这里是任务的实现
sleep 10
done

这里的程序运行时间间隔是10s,小心咯,如果没有加sleep 10,你的机器很快就会耗尽资源,负载会狂飙。

接着需要把脚本用后台守护进程来运行,避免用户退出而导致脚本失效

nohup sh hello.sh &

btw,nohup就是no hang up(不挂起)

最后检查一下执行用户退出后相应的进程是否继续在运行

root@tech163:/home/chenyz# ps -aux | grep hello
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
root     17275  0.0  0.1   1840   544 pts/1    S    17:33   0:00 /bin/sh ./hello.sh

root@tech163:/home/chenyz#  vi 1
Wed Jan 19 17:09:02 CST 2011
Wed Jan 19 17:09:12 CST 2011
Wed Jan 19 17:09:22 CST 2011
Wed Jan 19 17:09:32 CST 2011
Wed Jan 19 17:09:42 CST 2011
Wed Jan 19 17:09:52 CST 2011

如果有更好的办法和想法,虚心请教,欢迎讨论

crontab 是分钟级别的定时
>/dev/null

注意:当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1 即可,如:

20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1 

/dev/null 的作用是把屏幕的输出从指向到某处,而这里的到/dev/null 的意思是指向空设备,即不需要标准输出

ret=$? //获取返回值,0为ping成功

12

第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。

while true ;do

command

sleep XX //间隔秒数

done

shell判断一个变量是否为空方法总结

shell中if判断一个变量为空
https://www.cnblogs.com/zwgblog/p/6006063.html
1.最直接简单的判断

[ ! $a ] && echo "a is null"

不用那些if语句了,直接缩短代码量。

  1. 变量通过" "引号引起来

如下所示:,可以得到结果为 IS NULL.

#!/bin/sh
  
a=
  
if [ ! -n "$a" ]; then
  
echo "IS NULL"
  
else
  
echo "NOT NULL"
  
fi

  1. 直接通过变量判断

如下所示:得到的结果为: IS NULL,跟第一种方法一样的,只是代码长一点,推荐使用第一种判断方式,简单明了。

#!/bin/sh
  
a=
  
if [ ! $a ]; then
  
echo "IS NULL"
  
else
  
echo "NOT NULL"
  
fi
  1. 使用test判断

得到的结果就是: a is not set!

#!/bin/sh
  
a=
  
if test -z "$a" then
  
echo "a is not set!"
  
else
  
echo "a is set !"
  
fi
  1. 使用""判断

#!/bin/sh

a=

if [ “$a” = “” ]; then

echo “a is not set!”

else

echo “a is set !”

fi

这种情况下容易让脚本报错

“=”左边为空时很多shell环境下报这个错

转自:http://luxiaok.blog.51cto.com/2177896/925548

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值