在 LNMP 环境(Linux + Nginx + MySQL + PHP) 中,定时任务一般是通过 Linux 的 crontab 来实现的,而不是 Nginx 或 MySQL 本身。下面按常见场景给你一个完整说明。
✅ LNMP 的定时任务 = Linux crontab + PHP 脚本
常见用途:
crontab -l
crontab -e
首次使用会让你选择编辑器(推荐选 nano 或 vim)
* * * * * 命令
分 时 日 月 周
| 字段 | 说明 |
|---|---|
| 分 | 0–59 |
| 时 | 0–23 |
| 日 | 1–31 |
| 月 | 1–12 |
| 周 | 0–7(0 和 7 都是周日) |
* * * * * /usr/bin/php /www/wwwroot/example.com/cron.php
⚠️ 一定要用 PHP 的绝对路径,可用
which php查看
0 2 * * * /usr/bin/php /www/wwwroot/example.com/task.php
*/5 * * * * /usr/bin/php /www/wwwroot/example.com/cron.php
0 3 * * * mysqldump -uroot -p密码 dbname > /backup/db_$(date +\%F).sql
✅ 建议:
~/.my.cnf 中,避免明文0 4 * * * systemctl restart php-fpm
LNMP 中 PHP 通常是 PHP-FPM,但 cron 使用的是 CLI 模式
php -v
⚠️ 注意:
php.ini 可能不同max_execution_time 在 CLI 默认是 0(不限制)chmod +x /www/wwwroot/example.com/cron.php
* * * * * /usr/bin/php /path/cron.php >> /tmp/cron.log 2>&1
systemctl status cron
# 或
systemctl status crond
tail -f /var/log/cron
✅ 最佳实践
#!/usr/bin/php
<?php
宝塔可以直接在:
宝塔面板 → 计划任务
LNMP 定时任务 = Linux crontab + PHP CLI 脚本
如果你愿意,可以把你的 LNMP 版本、系统(CentOS / Ubuntu)、具体要做什么定时任务 发我,我可以帮你写一条完全可用的 cron 命令。