当时我想在 Ubuntu 上为 Web 服务器设置 cronjob,
php
/脚本文件python
会是几条sql函数,运行时自动更新多个表。
但经过一些研究,我发现:
- Ubuntu 至少包含 3 个 PHP
- 1、apache2 PHP
- 2、客户端PHP
- 3,cgi PHP(我不完全理解)
- 深入挖掘一下:php-cli 和 php-cgi 之间有什么区别(仍然不知道,只是知道不同)
首先我尝试scripts.php
在 Ubuntu 终端上运行
$ crontab -e
$ * * * * */usr/bin/php8.0 /var/www/myproject/scripts.php
但是 Ubuntu 终端返回could not find driver
,尝试在上面重新安装pdo-mysql
PHP 却仍然存在;
- 我担心
admin
屏蔽用户scripts
/cli-php
可能会造成安全问题; - 还尝试
which php
定位可执行文件 php,并使用/usr/bin/php
; - 如何获取服务器上 php 二进制文件的路径
- php 根目录
目前正在运行,直接用浏览器打开网址。
$crontab -e
$* * * * * export DISPLAY=:0 && firefox https://localhost/project/cron/scripts.php
使用.sh scripts
;
#!/bin/bash
# Set maximum amount of remaining firefox processes here
MAX_PROC=2
let COUNT=$(pgrep firefox | wc -l)
for (( i=1; i<=COUNT-MAX_PROC; i++ ))
do
PID=$(pgrep -o firefox)
kill $PID
# sleep 3
done
终端pkill
工作如魔法般
30 0 * * * pkill -f firefox.sh
python
selenium
由于浏览器需要消失,因此还有另一种选择;
但又出现了新的问题:
Browser is under remote (reason: Marionette)
打开一个空白页;
经过几次测试,即使是空白页,脚本仍然可以工作,但是是空白的;
- 有些答案说关闭
hardware accelerate
- 或者去
about:config
禁用marionette
我不能做的; - 移除带有红色和灰色的远程控制机器人/
经过一些工作仍然需要一些帮助:
- 如何
pdo_mysql
在cli-php
不修改的情况下升级apache-php
; - 禁用的正确方法是什么
Browser is under remote
;
欢迎任何建议,感谢您的帮助。都Python
可以PHP
接受!
答案1
wget
为什么在 cron 中使用时会打开浏览器?
对于使用本地 PHP 文件的计划任务,这通常是更简单的选择:
* * * * * /usr/bin/wget --no-check-certificate -q "https://localhost/project/cron/scripts.php" -O /root/output.txt
不会打开任何浏览器,也不会检查 SSL 证书是否有效(因为这是本地网站,因此大概值得信赖)。