如何在bash脚本中每天仅调用一次特定代码?

时间:2019-05-01 11:04:02

标签: bash

我正在从事环境受控农业项目。我完成了大多数传感器编码。我什至编写了一个bash脚本来在需要的时间调用每个传感器代码。现在谈到RPi NOIR摄像机代码和OpenCV代码,我遇到的问题是,它每天只需要执行一次。 RPi相机代码捕获图像。接下来,控件必须转到OpenCV代码并完全执行。完成以上两项后,其余代码需要执行。

我尝试给时间设置一个上限和下限,并在那么长的时间内执行它。您可以在下面看到。

    now=$(date + "%T") // This checks out what time it is. 
if [ $now -gt 9:58:59 -a $now -lt 10:01:00 ]
then
    python camera.py //This code captures an image
            sleep 30s
            python cv.py //this is the CV code which performs edge 
                         detection and area detection on the crops
    else
            sleep 5s
    python interrupt.py 1
        cat test_data.txt
        python ph_test.py
        cat line.txt
        sleep 10s
        python temphumi.py
        cat dht.txt
        python dht_test.py
        cat line.txt
        sleep 10s
        python watertemp.py
        cat water_sensor.txt
        python water_test.py
        cat line.txt
        sleep 10s
        python interrupt.py 2
        cat test_data.txt
        python ec_test.py
        cat line.txt
fi

完成

我只希望if部分中的camera.py和cv.py在一天中的其余时间随时执行一次,其余部分则随时执行。

1 个答案:

答案 0 :(得分:0)

您可以做的一件事是从脚本中删除检查时间的代码,然后使用cron将其安排为每天早上10点运行一次。运行select count(*) from zipcode_table where zipcode_column like '%-%' and -- has a hyphen zipcode_column not like '_____-____'; -- but not in the right place 编辑“ crontab”(列出要定期执行的作业的文件),然后添加以下行:

where zipcode_column like '%-%' and             -- has a hyphen
      zipcode_column !~ '^[0-9]{5}-[0-9]{4}$';  -- but not in the right 

替换crontab -e指向脚本所在的位置。确保脚本是可执行的(0 10 * * * /path/to/my-script )。