嵌入式arm Linux下使用BusyBox的crond服务的定时任务方法 之前的程序有问题tcp经常中断,程序还在,linux端口还在占用10777,tcp能连一会就断了,暂时用定时重启
keepalive.sh 守护及定时任务脚本
#!/bin/sh
#--------------定时每天1:30重启应用程序
#先关闭crond
killall -9 crond
#创建目录,默认是没有的
mkdir -p /var/spool/cron/crontabs
#编辑定时任务,写好保存,会生成root用户名文件,我不写了跳过,下面直接替换这个文件
#crontab -e
#30 1 * * * sh /home/agent/bin/timerrestartapp.sh
#把要执行的文件授权
chmod -R 777 /home
#把已经生成的root用户名文件/home/agent/bin/crontabs/root复制到crond任务目录下
cp -rf /home/agent/bin/crontabs/. /var/spool/cron/crontabs
#任务文件授权
chmod -R 777 /var/spool/cron
sleep 3
#启动crond
crond#--------------进程守护
while true
do#进程名字可修改 PRO_NAME=ysagentmce01#用ps获取进程数量 NUM=`ps |grep ${PRO_NAME} |grep -v "grep" |wc -l`#echo $NUM ${PRO_NAME}if [ $NUM != 1 ]then#如果不是1个,就全杀掉,再启动应用echo "ERROR ,RESET ,NUM:" $NUM $(date) killall -9 "${PRO_NAME}"/home/agent/bin/ysagentmce01 &fi#10秒查看一次sleep 10s
done
exit 0
在以上各个字段中,还可以使用以下特殊字符:
"*"代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
"/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
"-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
","分散的数字(不一定连续),如1,2,3,4,7,9。
注:由于各个地方每周第一天不一样,因此Sunday=0(第一天)或Sunday=7(最后1天)。
crond是一个服务,一个守护进程。crond 是linux用来定期执行程序的命令,crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
按照网上查找的资料执行时经常会碰到这种错误:
crontab: chdir(/var/spool/cron/crontabs): No such file or directory
所以首先创建这样一个目录吧!
mkdir -p /var/spool/cron/crontabs
然后编辑要执行的任务
crontab -e 编辑
crontab -l查看任务列表
0 */1 * * * /sbin/ntpdate 192.168.1.67 >/dev/null 2>&1 每隔一个小时更新下时间,不打印任何信息
最后,执行下
#crond
此时你会发现/var/spool/cron/crontabs下有一个跟用户名相同的文件,保存着要执行的任务。
ps下会发现cron进程已经启动!
Linux查看tcp端口
netstat -ntlp //查看当前所有tcp端口
netstat -ntulp | grep 80 //查看所有80端口使用情况
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-6487784.html
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网进行投诉反馈,一经查实,立即删除!