温馨提示×

如何设置LNMP定时任务

小樊
34
2026-07-11 00:00:19
栏目: 编程语言

LNMP 环境(Linux + Nginx + MySQL + PHP) 中,定时任务一般是通过 Linux 的 crontab 来实现的,而不是 Nginx 或 MySQL 本身。下面按常见场景给你一个完整说明。


一、LNMP 中定时任务本质是 Linux 的 cron

LNMP 的定时任务 = Linux crontab + PHP 脚本

常见用途:

  • 定时执行 PHP 脚本
  • 定时备份数据库
  • 定时清理日志
  • 定时同步数据

二、查看 / 编辑 crontab

1️⃣ 查看当前用户的定时任务

crontab -l

2️⃣ 编辑定时任务

crontab -e

首次使用会让你选择编辑器(推荐选 nanovim


三、crontab 基本格式

* * * * * 命令
分 时 日 月 周
字段 说明
0–59
0–23
1–31
1–12
0–7(0 和 7 都是周日)

四、LNMP 中常见定时任务示例

✅ 1. 每分钟执行一次 PHP 脚本

* * * * * /usr/bin/php /www/wwwroot/example.com/cron.php

⚠️ 一定要用 PHP 的绝对路径,可用 which php 查看


✅ 2. 每天凌晨 2 点执行 PHP 脚本

0 2 * * * /usr/bin/php /www/wwwroot/example.com/task.php

✅ 3. 每 5 分钟执行一次

*/5 * * * * /usr/bin/php /www/wwwroot/example.com/cron.php

✅ 4. 定时备份 MySQL 数据库(LNMP 常见)

0 3 * * * mysqldump -uroot -p密码 dbname > /backup/db_$(date +\%F).sql

✅ 建议:

  • 密码写在 ~/.my.cnf 中,避免明文
  • 备份目录提前创建

✅ 5. 定时重启 PHP-FPM(不推荐,但有时有用)

0 4 * * * systemctl restart php-fpm

五、LNMP 中 PHP 定时任务注意事项(非常重要)

✅ 1. PHP 执行方式

LNMP 中 PHP 通常是 PHP-FPM,但 cron 使用的是 CLI 模式

php -v

⚠️ 注意:

  • php.ini 可能不同
  • max_execution_time 在 CLI 默认是 0(不限制)

✅ 2. 权限问题

  • cron 执行用户 ≠ Nginx 用户
  • 文件权限要可读取
chmod +x /www/wwwroot/example.com/cron.php

✅ 3. 输出重定向(防止邮件)

* * * * * /usr/bin/php /path/cron.php >> /tmp/cron.log 2>&1

六、查看 cron 是否正常运行

1️⃣ cron 服务状态

systemctl status cron
# 或
systemctl status crond

2️⃣ 查看 cron 日志

tail -f /var/log/cron

七、LNMP 常见架构下的推荐做法 ✅

最佳实践

  • cron 只负责“触发”
  • 具体逻辑写在 PHP 脚本里
  • 脚本开头加:
#!/usr/bin/php
<?php

八、如果你用的是宝塔 LNMP

宝塔可以直接在:

宝塔面板 → 计划任务
  • 类型:Shell / PHP
  • 自动生成 cron

九、总结一句话

LNMP 定时任务 = Linux crontab + PHP CLI 脚本

如果你愿意,可以把你的 LNMP 版本、系统(CentOS / Ubuntu)、具体要做什么定时任务 发我,我可以帮你写一条完全可用的 cron 命令

0