每次只在文件中的一行上运行crontab

时间:2016-04-27 15:10:27

标签: linux crontab

我试图配置crontab以在不同时间执行文件中不同的代码行。我基本上有一个启动一些java -jar的bash脚本文件。问题是每一行应该在不同的时间执行。我可以配置crontab在不同的时间运行整个脚本,但没有要运行的行。现在,重要的是bash文件只保留一个文件,而不是分解为几个文件。 谢谢!

1 个答案:

答案 0 :(得分:2)

一种方法(通过cron传递的命令行参数)

some_script.sh:

if test $1 = 1 ; then

    # echo "1 was entered"
    java -jar some_file.jar

elif test $1 = 2 ; then

    # echo "2 was entered"
    java -jar another_file.jar

fi

crontab示例:

* 1 * * * /bin/bash /home/username/some_script.sh 1
* 2 * * * /bin/bash /home/username/some_script.sh 2

另一种方法(在bash脚本中完成小时匹配)

some_script.sh:

hour=$(date +"%H");

if test $hour = 1 ; then

    # echo "the hour is 1";
    java -jar some_file.jar

elif test $hour = 2 ; then

    # echo "the hour is 2";
    java -jar another_file.jar

fi

crontab示例:

* 1 * * * /bin/bash /home/username/some_script.sh
* 2 * * * /bin/bash /home/username/some_script.sh