首页 🍬为爱发电

图床时不时有些违规图片,删除后发现外部存储服务器上的图片没有被删除,在论坛里询问后发现是没有配置Cron的原因。
注意我的运行环境为Debian11,宝塔面板,Chevereto 3.20.17

获取表达式

打开你的Chevereto仪表盘主页往下拉,找到你的cli.php文件位置
Chevereto仪表盘

将路径复制出来加上参数-C cron,在Shell中跑一下试试。

运行代码(apt install -y sudo):

sudo -u www php /www/wwwroot/img001.org/cli.php -C cron

如果出现和下面相似的结果,表明该命令没有任何问题。

[email protected]:~# sudo -u www php /www/wwwroot/img001.org/cli.php -C cron
* Processing checkHtaccess
* Enforce .htaccess files
✅ [DONE] Enforce completed (everything OK)
* Processing cleanUnconfirmedUsers
* Processing storageDelete
* Processing removeDeleteLog
* Processing deleteExpiredImages
* Processing tryForUpdates
--

为了防止出现PHP版本错误,我在这里加上了PHP的绝对路径,我习惯用PHP7.4,所以我的Cron表达式应该是:

* * * * * sudo -u www /www/server/php/74/bin/php /www/wwwroot/img001.org/cli.php -C cron >/dev/null 2>&1

如果你是V4版本请输入如下信息:

* * * * * sudo -u www /www/server/php/80/bin/php /www/wwwroot/www.dogtu.cn/app/bin/legacy -C cron >/dev/null 2>&1

添加Cron任务

得到上面的 Cron 表达式后,运行crontab -e,将此代码添加到您的服务器 cron 任务中。

你现在可以尝试删除一张图片,喝杯水等待一下以后,查看远程存储服务器上的图片是否被删除。

已知问题解决

宝塔面板开启防提权后www用户被禁止使用Shell。
错误如下:

[email protected]:~# sudo -u www php /www/wwwroot/img001.org/cli.php -C cron
Your request has been recorded. Tips from BT security !!!

/www/server/php/74/bin/php加入宝塔防入侵插件白名单中,注意修改你的版本号,我用的PHP7.4所以是74,V4版本一般是用80。

又或者直接使用root权限运行(危险操作,一般不要这么操作) :

/www/server/php/74/bin/php /www/wwwroot/img001.org/cli.php -C cron

官方文档:
V3:https://v3-docs.chevereto.com/setup/system/requirements.html#cron
V4:https://v4-docs.chevereto.com/application/stack/cron.html




文章评论