如果我的 cronjob 运行,我会尝试将消息“Ran Cronjob XY”写入日志文件。
试图:
/opt/cpanel/ea-php73/root/usr/bin/php /home/company/example.de/bin/magento list 2>&1 | grep -v "Ran Cronjob XY" >> /home/company/example.de/var/log/test.cron.log
Run Code Online (Sandbox Code Playgroud)
但这失败并记录命令的输出,/opt/cpanel/ea-php73/root/usr/bin/php /home/company/example.de/bin/magento list
而不仅仅是Ran Cronjob XY
奖金:
如果命令执行成功,则显示如何打印“成功运行”,否则打印“失败”。
if some_command >/dev/null 2>&1; then
echo ran successfully
else
echo failed
fi >>logfile
Run Code Online (Sandbox Code Playgroud)
上面的代码将运行命令some_command
,丢弃它的输出,如果命令成功完成,然后将文本附加ran successfully
到文件中logfile
。如果命令失败,它会将文本附加failed
到logfile
.
在您的情况下,为了简单起见(因为您的命令中有很长的路径名),我会将它放在自己的包装脚本中,并使用 cron 作业执行该脚本。
脚本看起来像
#!/bin/sh
PATH=/opt/cpanel/ea-php73/root/usr/bin:$PATH
logfile=/home/company/example.de/var/log/test.cron.log
if php /home/company/example.de/bin/magento list >/dev/null 2>&1
then
echo ran successfully
else
echo failed
fi >>"$logfile"
Run Code Online (Sandbox Code Playgroud)
我PATH
在脚本中修改以允许在php
没有绝对路径的情况下运行。
然后将安排该脚本:
* * * * * /path/to/thescript.sh
Run Code Online (Sandbox Code Playgroud)
...* * * * *
应由实际时间表替换的地方。
如果您想将其变成“单行”以直接在 crontab 条目中使用:
* * * * * if /opt/cpanel/ea-php73/root/usr/bin/php /home/company/example.de/bin/magento list >/dev/null 2>&1; then echo ran successfully; else echo failed; fi >>/home/company/example.de/var/log/test.cron.log
Run Code Online (Sandbox Code Playgroud)
...* * * * *
应由实际时间表替换的地方。
归档时间: |
|
查看次数: |
70 次 |
最近记录: |