Wordpress 如何让wp cli命令在cron的bash脚本中工作

Wordpress 如何让wp cli命令在cron的bash脚本中工作,wordpress,bash,wp-cli,Wordpress,Bash,Wp Cli,我有一个带有各种WP-CLI命令的bash脚本,用于运行备份、检查和优化db表、运行安全漏洞检查、检查可用的核心、插件和主题更新,然后通过电子邮件将报告发送给我 如果我从命令行运行这个脚本,它将非常有效。但是,如果我计划cronjob,脚本将运行,但所有WP命令的输出如下所示: /usr/local/bin/dev-maintenance-check.bash:未找到第70行:wp:命令 我尝试过各种不同的cron作业格式,但都没有用。这是当前的cronjob: 0 1 * * 0,3 bash

我有一个带有各种WP-CLI命令的bash脚本,用于运行备份、检查和优化db表、运行安全漏洞检查、检查可用的核心、插件和主题更新,然后通过电子邮件将报告发送给我

如果我从命令行运行这个脚本,它将非常有效。但是,如果我计划cronjob,脚本将运行,但所有WP命令的输出如下所示:

/usr/local/bin/dev-maintenance-check.bash:未找到第70行:wp:命令

我尝试过各种不同的cron作业格式,但都没有用。这是当前的cronjob:

0 1 * * 0,3 bash /usr/local/bin/dev-maintenance-check.bash
我的WP cli安装在usr/local/bin/WP。同样,如果我在命令行中运行“bash/usr/local/bin/dev-maintenance-check.bash”,也可以

对我来说,听起来似乎需要在脚本中调用wp cli。我确信我已经在wp cli文档上的谷歌上搜索完了。任何帮助都将不胜感激

由于您的脚本是一个shell脚本(/bin/sh),那么您的路径条目 .bashrc不会被读取,因为它是用于bash(/bin/bash)的 交互式shell

使您的路径条目可用于由运行的/bin/sh脚本 特定用户,将路径条目添加到该用户中的.profile文件 主目录


因此,有趣的部分不是您的crontab,而是您的脚本。只需将绝对或相对位置调用到
wp
,或者按照上面的建议进行修复,它就可以工作了

绝对:

#!/usr/bin/env bash
cd /var/www/wordpress
/usr/local/bin/wp cache flush
相对(WP-CLI作为本地编写器依赖项安装):


设置PATH变量是一个好主意,这样cron就可以找到我想要运行的命令。我必须在crontab文件的开头放一行<代码>路径=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
问题是:如何验证这是我必须使用的正确路径?
#!/usr/bin/env bash
cd /var/www/wordpress
vendor/bin/wp cache flush