我有一个包含各种WP-CLI命令的bash脚本,用于运行备份,检查和优化数据库表,运行安全漏洞检查,检查可用的内核,插件和主题更新,然后通过电子邮件将报告发送给我。 / p>
如果我从命令行运行此脚本,则它可以完美运行。但是,如果我安排了一个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”,则可以正常运行。
我尝试了各种不同的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文档上用尽了对Google的搜索。任何帮助将不胜感激。
答案 0 :(得分:1)
由于您的脚本是shell脚本(/ bin / sh),因此您的PATH条目位于 .bashrc不会像bash(/ bin / bash)那样被读取 交互式外壳。
使PATH条目可用于由a运行的/ bin / sh脚本 特定用户,将PATH条目添加到该用户中的.profile文件中 主目录。
请参见https://unix.stackexchange.com/a/163126/72176
因此,有趣的部分不是您的crontab,而是您的脚本。只需将绝对或相对位置称为obj.products.filter( p => p.SKUs.filter( att => att.Attributes.filter(inner => inner.value == 'Color' || inner.value == 'Size').length > 0 ? true : false).length > 0 ? true : false)
或按照上面的建议进行修复即可,它应该可以工作。
绝对:
wp
相对(WP-CLI作为本地Composer依赖项安装):
#!/usr/bin/env bash
cd /var/www/wordpress
/usr/local/bin/wp cache flush