CakePHP shell cronjobs修改密码后停止工作


CakePHP shell cronjobs stopped working after changing passwords

我们正在为我们的客户端做一些服务器维护。其中一项任务是更改所有服务器密码(用户帐户+ mysql帐户)。我最终更改了所有启用的SSH帐户的密码,并更改了MySQL根用户和网站数据库用户的密码。

客户端运行CakePHP 2.3.6开发的网站。修改数据库密码后,我编辑了配置文件(/app/config/database.php)。一切都很好,除了一件事:shell cronjobs停止工作了。在用户帐户www-data下有三个cronjob:

20 3   *   *   *   /var/www/sitename/app/Console/cake parse >> /var/log/cakephp_cron/parse.log
30 3   *   *   *   /var/www/sitename/app/Console/cake get_feed >> /var/log/cakephp_cron/get_feed.log
40 3   *   *   *   /var/www/sitename/app/Console/cake maintenance >> /var/log/cakephp_cron/maintenance.log

cronjobs负责更新一些附属提要。我检查了日志文件(parse.log、get_feed.log和maintenance.log),它们正在更新,因此cronjob仍在运行。但是,自更改密码以来,提要不再更新。日志不会抛出任何错误消息,在这方面是无用的。

由于我不是CakePHP专家,并且CakePHP网站上的文档不会告诉我很多关于cronjobs配置的信息,我希望这里有人知道哪里出了问题。是否有更多的配置文件与数据库凭据,我需要编辑?是否需要编辑shell cronjob的配置文件?换句话说:知道哪里出了问题,我应该从哪里开始寻找解决方案吗?

基本上这些都是不属于CakePHP平台的自定义脚本。你需要找到他们的代码,我猜他们有一些变量被用于密码。

正常的文件位置为/app/Console/Command/。你可能会看到ParseShell.php。如果是这样,请查看该文件,它将包含此特定cron作业的代码。密码可能是硬编码的,但他们也可以使用Configure系统加载一个变量:Configure::read('parse.api.password.example');然后您可以在项目中搜索该字符串,并找到变量设置和更新的位置(可能在/app/Config某处)