在日常运维和自动化场景中,我们常常需要定时访问某些接口,以触发任务或拉取数据。在 青龙面板(Qinglong Panel) 中实现“定时访问 URL 并输出反馈”。
一、需求
用户需求:
使用青龙面板定时访问两个接口:
https://video.020915.xyz/api.php/timming/index.html?enforce=1&name=bfallhttps://video.020915.xyz/api.php/timming/index.html?enforce=1&name=ffall
在指定时间(如每周一早上 6:50)自动执行;
在执行过程中输出成功或失败的反馈日志。
二、脚本编写
青龙支持多种运行环境,其中最常见的是 Node.js。基于 axios 库,可以快速完成一个定时访问脚本:
const axios = require('axios');
const urls = [
'https://video.020915.xyz/api.php/timming/index.html?enforce=1&name=bfall',
'https://video.020915.xyz/api.php/timming/index.html?enforce=1&name=ffall'
];
(async () => {
const timestamp = new Date().toISOString();
for (const url of urls) {
const name = url.split('name=')[1];
try {
const res = await axios.get(url, { timeout: 30000 }); // 超时 30 秒
console.log(`[${timestamp}] ✅ ${name} SUCCESS: ${res.status}`);
} catch (err) {
console.error(`[${timestamp}] ❌ ${name} ERROR: ${err.message}`);
}
}
})();
特点:
支持多链接访问;
超时设置 30 秒,避免因接口卡住导致整个任务超时;
输出信息清晰,适合青龙面板日志查看。
添加到青龙面板
打开青龙面板,进入左侧的 “定时任务”。
点击右上角 “新增任务”。
填写任务信息:
任务名称:访问某个URL
命令:
node /ql/data/scripts/visit_url.js(根据你的脚本实际路径调整)定时规则:如
0 */1 * * *表示每小时执行一次(Cron表达式)。备注:可填写“用于定时访问接口 + 记录反馈”
点击 “确定”。
三、常见问题与解决方案
在实践过程中,遇到了一些典型报错,现总结如下:
1. 脚本路径错误
报错信息:
Cannot find module '/ql/data/scripts/visit_bfall.js'原因:青龙任务命令与实际文件名不一致。
解决:确认脚本文件保存路径,并在任务命令中写入正确路径,如:
node /ql/data/scripts/visit_bfall_ffall.js
2. 缺少依赖模块
报错信息:
Error: Cannot find module 'axios'原因:脚本依赖的
axios未安装。解决:
在青龙面板 → 【依赖管理】 → NodeJs → 安装
axios;或进入容器执行
npm install axios。
3. 日志目录不存在
报错信息:
ENOENT: no such file or directory, open '/ql/data/logs/xxx.log'原因:手动写日志文件时,指定路径不存在。
解决:要么提前创建目录,要么改为直接使用控制台输出即可。后续优化时,我们选择了仅打印控制台日志,更轻便。
4. Cloudflare 524 超时错误
报错信息:
Request failed with status code 524含义:Cloudflare 已经连接到源站,但等待超过 100 秒无响应。
可能原因:
接口后端执行时间过长;
源站服务器负载过高;
网络链路不稳定。
解决:
优化接口本身的响应速度;
在脚本端设置
timeout,避免长时间等待。
四、定时任务配置
在青龙面板中,新增任务时设置 Cron 表达式 即可实现定时运行。
示例:每周一早上 6:50 执行
50 6 * * 1
解释:
分钟 = 50
小时 = 6
日 = *(每天)
月 = *(每月)
周 = 1(周一)
五、实践经验
脚本路径和依赖管理 是初学者最常遇到的问题。确保路径正确、依赖安装完整,是任务成功运行的前提。
日志管理 不一定要落盘到文件。对于青龙面板,直接使用
console.log即可,面板日志功能足够。接口异常(如 524 超时) 往往来自后端服务,而非青龙本身,需要结合后端优化。
Cron 表达式灵活,既可设置分钟级任务,也能实现精确到周的计划任务。
评论