主要介绍了Linux环境使用crontab命令设置定时周期性执行任务,结合实例形式较为详细的分析了crontab命令的功能、应用场景及相关操作注意事项,并附带了php执行代码供大家参考,需要的朋友可以参考下 在Linux环境中,`crontab` 是一个非常重要的命令,用于设置周期性的任务调度,它允许用户安排在特定时间执行的命令或者脚本。通过 `crontab`,你可以自动化日常维护工作,如数据备份、日志清理以及定时运行PHP等编程语言编写的程序。 `crontab` 的基本用法包括以下几个参数: - `-u username`:指定另一个用户来操作其定时任务。 - `-e`:编辑当前用户的定时任务。 - `-l`:列出当前用户的定时任务。 - `-r`:删除当前用户的定时任务。 - `-i`:在删除定时任务前提供确认提示。 使用 `crontab` 的常见场景有: 1. **业务统计**:例如,每天凌晨0:00自动统计前一天的数据,如业务员的业绩、团队人数、任务完成情况等,然后将这些信息存入数据库以便查询。 2. **自动化监控**:如示例中提到的,可以编写一个PHP脚本来实时监测网站动态,当目标网页内容发生变化时,记录日志并发送通知。例如,监听研招网的新闻头条,一旦标题更新,即发送短信提醒。 下面是一个简单的PHP脚本 `jianting.php` 示例,用于检测网页标题变化: ```php <?php $log = "/var/www/html/log.txt"; // 日志文件 $url = 'http://yz.chsi.com.cn/'; // 要监听的网址 $info = file_get_contents($url); // 抓取首页HTML preg_match('|<h4>(.*?)<\/h4>|i', $info, $m); // 正则匹配头条标题内容 if ($m[1] != '<a href="/sytj/tjyx/gosytj.action?entrytype=yzgr" rel="external nofollow" target="_blank">2018年全国硕士生招生调剂意向采集服务系统</a>') { // 标题改变了 // 检查日志中是否有记录,如果为空则记录一条并发送通知 $str = file_get_contents($log); $str = trim($str); $bom = pack('H*', 'EFBBBF'); $str = preg_replace("/^$bom/", '', $str); // 去除BOM if ($str == "") { $text = '监听有变化'; file_put_contents($log, $text, FILE_APPEND); // 发送短信或邮件操作... } } ``` 要设置定时任务,可以使用 `crontab -e` 打开编辑器,然后添加类似以下的行: - 每天凌晨5:00执行一次的命令: ```bash 5 0 * * * /usr/bin/php /var/www/html/jianting.php ``` - 每分钟10秒执行一次的命令: ```bash * * * * * /usr/bin/php /var/www/html/jianting.php * * * * * sleep 10; /usr/bin/php /var/www/html/jianting.php * * * * * sleep 20; /usr/bin/php /var/www/html/jianting.php * * * * * sleep 30; /usr/bin/php /var/www/html/jianting.php * * * * * sleep 40; /usr/bin/php /var/www/html/jianting.php * * * * * sleep 50; /usr/bin/php /var/www/html/jianting.php ``` 有时可能会遇到crontab无法执行PHP文件的问题,这可能是由于环境变量或者执行路径不正确导致的。可以尝试以下解决方案: - 使用 `curl` 访问PHP文件: ```bash 5 0 * * * /usr/bin/curl http://www.xxx.com/jianting.php ``` - 确保脚本在正确的路径下执行,并指定PHP解释器路径: ```bash 5 0 * * * cd /var/www/html && /usr/bin/php /var/www/html/jianting.php ``` 要使改动生效,可以使用 `service crond restart` 来重启 `cron` 服务。 `crontab` 是Linux系统管理不可或缺的一部分,它能帮助我们实现自动化工作流,减轻日常维护的工作负担。通过合理设置定时任务,我们可以确保关键业务按计划运行,同时也能及时获取系统状态的变化信息。
- 粉丝: 6
- 资源: 904
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助