尝试设置 cronjob 自动浏览器或运行 Python 或 PHP 脚本

尝试设置 cronjob 自动浏览器或运行 Python 或 PHP 脚本

当时我想在 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-mysqlPHP 却仍然存在;

目前正在运行,直接用浏览器打开网址。

$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) 打开一个空白页;

经过几次测试,即使是空白页,脚本仍然可以工作,但是是空白的;

经过一些工作仍然需要一些帮助:

  • 如何pdo_mysqlcli-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 证书是否有效(因为这是本地网站,因此大概值得信赖)。

相关内容