让Linux下的cron以秒为单位执行shell脚本的方法有哪些

介绍

这篇文章主要讲解了“让Linux下的cron以秒为单位执行shell脚本的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“让Linux下的cron以秒为单位执行shell脚本的方法有哪些”吧!

需要用到shell脚本每隔3秒钟去监控一个软件进程的运行状态,发现crond似乎只支持到分,不知道秒,怎么办呢?

<强>第一种方法:

当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如下:

<强>猫kick.sh

代码如下:


# !/bin/bash
:。
,/home/somedir/脚本。sh 2在/dev/null,
,睡眠3做

注意第一次运行时请不要使用bash踢。上海,这种后台运行的方式,它会僵死的。

可以把它放到计划任务使其运行,然后将计划任务中的此条目删除即可。最后把这个脚本放到/etc/rc.地方让它每次开机都可以被运行。

<强>第二种方法:

和第一种方法类似,只不过感觉比第一种更便捷一些。

代码如下:


# !/bin/bash
# crond excuting脚本每3秒。
# 20100124. wxg

为((i=1; i<=20,我+ +));做

,/home/somedir/脚本。sh 2在/dev/null,
,睡眠3做

然后写入的crontab里每分钟执行一次,如下:

代码如下:


crontab - e
* * * * */bin/bash/home/somedir/cron-seconds。sh

<强>第三种方法:

那么如何使用计划任务来直接实现呢?
最后解决方案如下,经验证,脚本运行非常稳定。

代码如下:


crontab - e
# # excuting脚本。sh每3秒# # 1 2014-10-15
*/* * * *,/home/somedir/scripts.sh
*/1 * * * *睡觉3,,,/home/somedir/scripts.sh
*/1 * * * *睡眠6,,,/home/somedir/scripts.sh
*/1 * * * *睡觉9,,,/home/somedir/scripts.sh
*/1 * * * *睡觉12,,,/home/somedir/scripts.sh
*/1 * * * *睡觉15,,,/home/somedir/scripts.sh
1 */* * * *睡18,,,/home/somedir/scripts.sh
*/睡眠1 * * * * 21,,,/home/somedir/scripts.sh
*/1 * * * *睡觉24,,,/home/somedir/scripts.sh
*/睡眠1 * * * * 27,,,/home/somedir/scripts.sh
*/1 * * * *睡觉30,,,/home/somedir/scripts.sh
* 1/* 33 * * *睡觉,,,/home/somedir/scripts.sh
*/睡眠1 * * * * 36,,,/home/somedir/scripts.sh
* 1/* * 39 * *睡觉,,,/home/somedir/scripts.sh
* 1/* * 42 * *睡觉,,,/home/somedir/scripts.sh
45 */1 * * * *睡觉,,,/home/somedir/scripts.sh
1 */* * * * 48睡,,,/home/somedir/scripts.sh
51 */1 * * * *睡觉,,,/home/somedir/scripts.sh
* 1/* * 54 * *睡觉,,,/home/somedir/scripts.sh
*/1 * * * * 57睡觉,,,/home/somedir/scripts.sh
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

他的思路是:先每隔1秒钟触发定时任务,然后又休眠3秒6秒9秒等间隔来执行具体的Shell脚本。

我还是比较倾向于使用第三种方法的。因为第一种方法和第二种方法并不是严格的间隔3秒执行的,会大于3秒,因为执行scripts.sh也是需要一定时间的,即使已经加了,符号放到了后台执行也会存在一定的误差。如果对于精确度要求不高,推荐使用第二种方法。

工作中的一次用PHP脚本每隔3秒钟去监控一个Memcached代理服务器磁铁的运行状态。

代码如下:


crontab - e
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/1 * * * */usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1
*/* * * *,/usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1
*/* * * *睡觉3,,,/usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1
*/* * * *睡眠6,,,/usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1
*/* * * *睡觉9,,,/usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1
*/* * * *睡觉12,,,/usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1
*/* * * *睡觉15,,,/usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1
*/* * * *睡18,,,/usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1
*/* * * *睡21,,,/usr/local/php/bin/php /usr/local/nginx/www/MemcachedMagent/index.php 172.16.8.81在/dev/null 2祝辞,1

让Linux下的cron以秒为单位执行shell脚本的方法有哪些