我有一个运行 bash.sh 文件的 cron 作业。如果我在终端中运行文件,它工作正常。但是当我尝试将它作为 cron 作业运行时,那里发生了一些事情,我不知道是什么。Cron 作业看起来像:
*/5 * * * * bash /home/vlado/custom-scripts/selenium-server/run-selenium-hub-and-nodes.sh 2>> /var/log/cron/selenium-server.log
和 run-selenium-hub-and-nodes.sh 在这里
#!/bin/bash
cd /opt/selenium-server/
# -c returns number of lines in grep result
countHub=$(ps -x | grep -v "grep" | grep "selenium-server" | grep "role hub" -c)
countNodes=$(ps -x | grep -v "grep" | grep "selenium-server" | grep "role node" -c)
# if selenium server HUB is in ps -x result
if [ $countHub -eq 1 ]
then
# if there is NO NODE
if [ $countNodes -eq 0 ]
then
# start two new nodes
java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://173.249.58.30:4444/grid/register/ &
java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://173.249.58.30:4444/grid/register/ &
exit 0
# if there is only ONE NODE
elif [ $countNodes -eq 1 ]
then
# start one new node
java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://173.249.58.30:4444/grid/register/ &
exit 0
fi
else # if there is NO HUB start new hub and two new nodes
# kill all possible hubs and nodes for sure
pkill -9 -f "selenium-server"
# Start new hub
java -jar selenium-server-standalone-3.141.59.jar -role hub &
java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://173.249.58.30:4444/grid/register/ &
java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://173.249.58.30:4444/grid/register/ &
exit 0
fi
我可以在 syslog 中看到脚本正在运行并尝试发送电子邮件。我因此安装了 postfix,但我看不到该消息。syslog 文件中没有更多信息。是否有任何其他日志可以收集有关 cron 作业的更多信息?几个小时后,我决定问这个问题。感谢帮助。
简单的解决方案使用 java 的完整路径让它工作。正如评论中提到的,用户设置中没有任何内容进入 crontab。您需要通过手动设置这些东西来自己完成这一切。