zoukankan      html  css  js  c++  java
  • Linux定时任务crontab每三秒执行一次shell

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

    cat kick.sh
    #!/bin/bash
    while : ;do
    /home/somedir/scripts.sh 2>/dev/null &
    sleep 3
    done

    注意第一次运行时不要使用 bash kick.sh & 这种后台运行的方式,它会僵死的。
    可以把它放到计划任务使其运行,然后将计划任务中的此条目删除即可。

    第二种方法:

    cat cron-seconds.sh
    #!/bin/bash
    for((i=1;i<=20;i++));do
    /home/somedir/scripts.sh 2>/dev/null &
    sleep 3
    done

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

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

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

    ## For excuting scripts.sh every 3 seconds##on 2014-10-15
    */1 * * * * /home/somedir/scripts.sh
    */1 * * * * sleep 3 && /home/somedir/scripts.sh
    */1 * * * * sleep 6 && /home/somedir/scripts.sh
    */1 * * * * sleep 9 && /home/somedir/scripts.sh
    */1 * * * * sleep 12 && /home/somedir/scripts.sh
    */1 * * * * sleep 15 && /home/somedir/scripts.sh
    */1 * * * * sleep 18 && /home/somedir/scripts.sh
    */1 * * * * sleep 21 && /home/somedir/scripts.sh
    */1 * * * * sleep 24 && /home/somedir/scripts.sh
    */1 * * * * sleep 27 && /home/somedir/scripts.sh
    */1 * * * * sleep 30 && /home/somedir/scripts.sh
    */1 * * * * sleep 33 && /home/somedir/scripts.sh
    */1 * * * * sleep 36 && /home/somedir/scripts.sh
    */1 * * * * sleep 39 && /home/somedir/scripts.sh
    */1 * * * * sleep 42 && /home/somedir/scripts.sh
    */1 * * * * sleep 45 && /home/somedir/scripts.sh
    */1 * * * * sleep 48 && /home/somedir/scripts.sh
    */1 * * * * sleep 51 && /home/somedir/scripts.sh
    */1 * * * * sleep 54 && /home/somedir/scripts.sh
    */1 * * * * sleep 57 && /home/somedir/scripts.sh
    #-----------------------------------------------------------------

    先每隔1秒钟触发定时任务,然后又休眠 3秒、6秒、9秒等间隔 来执行具体的Shell脚本。
    第一种方法和第二种方法并不是严格的间隔3秒执行的,会大于3秒,因为执行scripts.sh也是需要一定时间的,即使已经加了&符号放到了后台执行也会存在一定的误差。如果对于精确度要求不高,推荐使用第二种方法。

    此文来自http://blog.snsgou.com/post-356.html

  • 相关阅读:
    Unable To Open Database After ASM Upgrade From Release 11.1 To Release 11.2
    11g Understanding Automatic Diagnostic Repository.
    How to perform Rolling UpgradeDowngrade in 11g ASM
    Oracle 11.2.0.2 Patch 说明
    Pattern Matching Metacharacters For asm_diskstring
    Steps To MigrateMove a Database From NonASM to ASM And ViceVersa
    Upgrading ASM instance from Oracle 10.1 to Oracle 10.2. (Single Instance)
    OCSSD.BIN Process is Running in a NonRAC Environment
    Steps To MigrateMove a Database From NonASM to ASM And ViceVersa
    On RAC, expdp Removes the Service Name [ID 1269319.1]
  • 原文地址:https://www.cnblogs.com/adtuu/p/4685065.html
Copyright © 2011-2022 走看看