博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
后台跑脚本替代crontab
阅读量:2494 次
发布时间:2019-05-11

本文共 1116 字,大约阅读时间需要 3 分钟。

crontab是个不错的东西,但他可能会在一个脚本未结束时又启动了同样的脚本。最大的问题是他每次都要读脚本、编译、然后执行。这样很耗CPU。我们可以这样替代:

# main execution block while (1) {
runTask() sleep 60; }
[@more@]

在UNIX下我们常把脚本放在crontab里调用,如

* * * * * /opt/application/bin/batch1.pl * * * * * /opt/application/bin/process.pl /tmp/foo * * * * * /opt/application/bin/process.pl /tmp/bar * * * * * /opt/application/bin/submit.pl

crontab是个不错的东西,但他可能会在一个脚本未结束时又启动了同样的脚本。最大的问题是他每次都要读脚本、编译、然后执行。这样很耗CPU。我们可以这样替代:

# main execution block while (1) {
runTask() sleep 60; }

Or, if you really need to start on the zero second….

# main execution block while (1) {
runTask() sleep 1 # we need this to prevent the task from running more than once during the 0 second. while (((localtime(time))[0] != 0) {
sleep 1;
}
我们可以在系统启动时跑这样的脚本,在后台执行。 可以在一个脚本里跑多个任务,也可以多个脚本在后台同时跑。可以把脚本放在inittab,这样系统启动时就自动跑了。还有个问题就是如果脚本出错停止了,没有什么来重跑他,所以要做好报错机制。
参考:http://www.oreillynet.com/sysadmin/blog/2006/08/scheduling_perl_scripts_outsid.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/668365/viewspace-1029394/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/668365/viewspace-1029394/

你可能感兴趣的文章
Linux(SUSE 12)安装Tomcat
查看>>
Linux(SUSE 12)安装jboss4并实现远程访问
查看>>
Neutron在给虚拟机分配网络时,底层是如何实现的?
查看>>
netfilter/iptables全攻略
查看>>
Overlay之VXLAN架构
查看>>
Eclipse : An error occurred while filtering resources(Maven错误提示)
查看>>
在eclipse上用tomcat部署项目404解决方案
查看>>
web.xml 配置中classpath: 与classpath*:的区别
查看>>
suse如何修改ssh端口为2222?
查看>>
详细理解“>/dev/null 2>&1”
查看>>
suse如何创建定时任务?
查看>>
suse搭建ftp服务器方法
查看>>
centos虚拟机设置共享文件夹并通过我的电脑访问[增加smbd端口修改]
查看>>
文件拷贝(IFileOperation::CopyItem)
查看>>
MapReduce的 Speculative Execution机制
查看>>
大数据学习之路------借助HDP SANDBOX开始学习
查看>>
Hadoop基础学习:基于Hortonworks HDP
查看>>
为什么linux安装程序 都要放到/usr/local目录下
查看>>
Hive安装前扫盲之Derby和Metastore
查看>>
永久修改PATH环境变量的几种办法
查看>>