运行 crontab 每次只在一个文件的一行
Running crontab only on one line in a file each time
我正在尝试将 crontab 配置为在不同时间执行文件中的不同代码行。我基本上有一个 bash 启动一些 java -jar 的脚本文件。问题是每一行应该在不同的时间执行。我可以在不同时间将 crontab 配置为 运行 整个脚本,但没有 运行 的行。现在重要的是 bash 文件将只保留一个文件,而不是分解为几个文件。
谢谢!
一种方法(通过 cron 传递的命令行参数)
some_script.sh:
if test = 1 ; then
# echo "1 was entered"
java -jar some_file.jar
elif test = 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
我正在尝试将 crontab 配置为在不同时间执行文件中的不同代码行。我基本上有一个 bash 启动一些 java -jar 的脚本文件。问题是每一行应该在不同的时间执行。我可以在不同时间将 crontab 配置为 运行 整个脚本,但没有 运行 的行。现在重要的是 bash 文件将只保留一个文件,而不是分解为几个文件。 谢谢!
一种方法(通过 cron 传递的命令行参数)
some_script.sh:
if test = 1 ; then
# echo "1 was entered"
java -jar some_file.jar
elif test = 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