我正在使用 Yii 并且必须为cron实现一个脚本。 我有一个脚本文件,它只调用Yii并启动我的php脚本文件。
在此之前一切都很好。如果我正在更新php脚本,Cron就会继续执行旧脚本。
重新启动cron-service,重启服务器等没有帮助。 我也卸载了cron并再次安装它,但没有任何改变。他仍然执行这个php脚本的旧版本。
任何人都知道什么是错的或我能做些什么来解决这个问题?我正在使用Ubuntu 12.04。
修改
cronjob
脚本正在运行:
#!/bin/bash
cd ../www/protected/ ./yiic Cron ProcessPayments
php-script
class CronCommand extends CConsoleCommand {
public function actionProcessPayments() {
...
}}
这样可行,但我对此脚本所做的任何更改都会被Cron忽略。 而现在我正是在这一点上:他执行两者。我的旧版本和新版本。我从来没有被某些东西弄糊涂。
答案 0 :(得分:0)
使用find
命令找到脚本的所有副本,并删除不需要的副本。选择要执行的脚本副本后,重新启动cron
。我的猜测是脚本的副本可能会挂在目录中(例如config.daily
或类似的东西)。
HTH
答案 1 :(得分:0)
假设你在机器上有sudo,它位于......
首先检查它是否位于通常的cron目录/ etc / cron中。*
sudo find /etc/cron* -mount -iname yiic
如果没有显示,那么搜索整个文件系统,否则您将开始手动搜索许多其他地方,而且比运行查找需要更多时间
sudo find / -mount -iname yiic
在两个find命令中,如果文件名是或者除了yiic之外的任何东西都是yiic *,以便它搜索以yiic开头的任何内容
找到副本后,如果还有其他副本,请删除除最新副本之外的每个副本,或者删除最新的副本,然后从版本控制中重新安装该机器上的脚本。
修改强>
可能比你真正关心的更多,但是find命令会像这样崩溃:
sudo
- 提升权限,以便您可以搜索到处,而不是用户可以阅读的地方
find
- 寻找thigs的命令
/
- 搜索的起点,可以是任何地方
-mount
- 这告诉我不要搜索其他文件系统
-iname
- 搜索
yiic
- 搜索字词
答案 2 :(得分:0)
我有类似的问题。 /etc/cron.d中的脚本在修改后仍以旧方式执行。我通过向Cron发送一个SIGHUP解决了这个问题:
sudo pkill -SIGHUP /usr/sbin/cron