crontab 如何立即执行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了crontab 如何立即执行相关的知识,希望对你有一定的参考价值。
写好的定时器如何让它马上执行一次看看效果?
cfanwhl 你的回答太2了!!
我设置成 */60 * * * * 不是更好!
* * * * * sleep 10; /bin/date >>/tmp/date.txt
* * * * * sleep 20; /bin/date >>/tmp/date.txt
* * * * * sleep 30; /bin/date >>/tmp/date.txt
* * * * * sleep 40; /bin/date >>/tmp/date.txt
* * * * * sleep 50; /bin/date >>/tmp/date.txt
每十秒执行,过十秒没看到结果就说明出错了。
另外,可以在脚本里面写一个保存时间到文件,这样就可以测试准确性了。
crontab里面并没有直接执行的命令。
参考技术A 直接拷贝后面的命令执行一下,效果应该是一样的我一般命令里配置了输出到日志什么的,要验证一下,就是直接拷贝出来执行一下,看看日志文件生成没有
crontab 的命令好像没有查到相关的方法 参考技术B 直接执行文件啊,干嘛还用crontab?
如何使用 crontab 执行 Symfony 命令
【中文标题】如何使用 crontab 执行 Symfony 命令【英文标题】:How to use crontab to execute a Symfony command 【发布时间】:2017-09-05 13:41:54 【问题描述】:我发现了两个类似的问题,但没有得到帮助。
我有一个 Symfony 命令在我输入时正在工作:
/usr/bin/php /home/bob/example_project/bin/console app:slack
我尝试使用sudo crontab -e
制作一个 crontab(每分钟运行一次):
MAILTO=""
* * * * * /usr/bin/php /home/bob/example_project/bin/console app:slack
但它不起作用。我也找不到任何错误消息。 sudo grep CRON /var/log/syslog
给:
4 月 10 日 13:21:01 example_project CRON[23432]: (root) CMD (/usr/bin/php /home/bob/example_project/bin/console app:slack)
使用sudo crontab -e -u bob
或sudo crontab -e -u www-data
不会改变任何东西。
我做错了什么?
编辑 logfile.log 有这个:PHP 致命错误:未捕获 Symfony\Component\Debug\Exception\ClassNotFoundException:试图 从命名空间“Sensio\Bundle\Gene$”加载类“SensioGeneratorBundle” 您是否忘记了另一个名称空间的“使用”语句?在 /home/bob/example_project/app/AppKernel.php:25 堆栈跟踪: 0 /home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(403): AppKernel->registerBundles() 1 /home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(113): Symfony\Component\HttpKernel\Kernel->initializeBundles() 2 /home/bob/example_project/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(68): Symfony\Component\HttpKernel\Kernel->boot() 3 /home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(120): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Sy$ 4 /home/bob/example_project/bin/console(28): S in /home/bob/example_project/app/AppKernel.php on line 25
【问题讨论】:
根据您的日志,它看起来运行正常。尝试登录您的命令以验证一切是否正常运行。也许它在某个地方遇到了错误。还可以尝试将您的电子邮件地址添加到您的 crontab 中的 MAILTO,以便您收到错误通知。 将命令的输出(stdout/stderr)通过管道传输到日志文件....bin/console app:slack >> logfile.log 2>&1
我修复了它:* * * * * export SYMFONY_ENV=prod && /usr/bin/php /home/bob/example_project/bin/console app:slack
。有没有更好的方法或者这样可以吗?
也许您在AppKernel.php
中有错字。我不喜欢你日志文件的这部分```“Sensio\Bundle\Gene$`”。问候。
【参考方案1】:
存在环境问题。这修复了它:
SYMFONY_ENV=prod
* * * * * php /home/bob/example_project/bin/console app:slack
不需要 php 的完整路径,/usr/bin/php
。
如 cmets 中所述,这也有效:
* * * * * php /home/bob/example_project/bin/console app:slack -e prod
【讨论】:
或者只是 * * * * * php /home/bob/example_project/bin/console app:slack -e prod以上是关于crontab 如何立即执行的主要内容,如果未能解决你的问题,请参考以下文章