热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux计划任务Cron的使用与管理

本文介绍了Linux系统中用于定期执行任务的cron服务及其配置方法。通过crond和crontab命令,用户可以轻松地安排系统和用户级别的周期性任务。
### 一. 关于 crond 1. **crond 的作用** `crond` 是 Linux 系统中用于定期执行程序的守护进程。在操作系统安装完成后,默认情况下会启动此任务调度服务。`crond` 每分钟都会检查是否有需要执行的任务,并自动执行这些任务。Linux 中的任务调度主要分为以下两类: - **系统执行的工作**:系统周期性需要执行的任务,如备份系统数据、清理缓存等。 - **个人执行的工作**:用户定期需要执行的任务,如每隔10分钟检查邮件服务器是否有新邮件,这些任务可以由每个用户自行设置。 2. **服务的启动和停止** `cron` 服务是 Linux 的内置服务,但默认不会开机自动启动。可以使用以下命令来启动和停止服务: | 命令 | 描述 | | --- | --- | | `/sbin/service crond start` | 启动服务 | | `/sbin/service crond stop` | 停止服务 | | `/sbin/service crond restart` | 重启服务 | | `/sbin/service crond reload` | 重新加载配置 | 要将 `cron` 设置为开机自动启动,可以在 `/etc/rc.d/rc.local` 脚本中加入 `/sbin/service crond start`。 ### 二. 关于 crontab `crontab` 是一个用于在 Unix/Linux 系统上定时执行任务的工具。通过 `cron` 服务,用户可以使用 `crontab` 命令添加或编辑需要定时执行的任务。使用 `service crond status` 命令可以查看 `cron` 服务的状态,如果未启动,可以使用 `service crond start` 命令启动。 | 命令 | 描述 | | --- | --- | | `crontab -l` | 查看当前用户的 cron 配置 | | `crontab -e` | 编辑当前用户的 cron 配置 | | `crontab -r` | 删除当前用户的 cron 配置 | | `crontab -u` | 设定某个用户的 cron 服务,通常 root 用户在执行此命令时需要此参数 | | `crontab -u root -l` | root 查看自己的 cron 设置 | | `crontab -u fred -r` | root 删除 fred 的 cron 设置 | | `crontab -u root -e` | 编辑 root 用户的 cron 服务,编辑内容需遵循特定格式 | | `crontab -l` | 列出当前的 crontab 任务 | | `crontab -d` | 删除当前的 crontab 任务 | | `crontab -e` | 编辑一个 crontab 任务,Ctrl+D 结束 | | `crontab filename` | 以 filename 作为 crontab 的任务列表文件并载入 | #### 示例 以下是两个 cron 任务的例子(在 `/etc/crontab` 文件中): - `12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1` // 用于晚间备份 /etc 目录 - `52 5 * * * root /usr/local/src/analog-5.32-lh/analog >> /dev/null 2>&1` // 运行 Analog 程序处理服务器的统计信息 #### 字段说明 | 字段 | 1 | 2 | 3 | 4 | 5 | 6 | | --- | --- | --- | --- | --- | --- | --- | | 说明 | 分钟(0-59) | 小时(0-23) | 日期(1-31) | 月份(1-12;或英文缩写 Jan、Feb 等) | 星期几(0-6,0 为周日;或单词缩写 Sun、Mon 等) | 用户名(执行命令时以此用户的身份) | 第 6 个字段是一个要在适当时间执行的命令字符串。 - 示例: ``` # MIN HOUR DAY MONTH DAYOFWEEK COMMAND # 每天早上 6 点 10 分 10 6 * * * date # 每两个小时 0 */2 * * * date (Solaris 5.8 似乎不支持此种写法) # 晚上 11 点到早上 8 点之间每两个小时,早上 8 点 0 23-7/2,8 * * * date # 每个月的 4 号和每个星期的星期一到星期三的早上 11 点 0 11 4 * mon-wed date # 1 月份每天早上 4 点 0 4 1 jan * date ``` ### 三. 测试代码 1. **启动 crond** ```bash /sbin/service crond start // 若提示没有权限可加上 sudo ``` 2. **查看当前用户的 cron 配置并编辑** ```bash crontab -l crontab -e // 然后输入以下命令 * * * * * ~/run.sh // 每隔一分钟向 shell 发一封邮件 ``` 输入 `crontab -l` 命令,每隔一分钟输入一次,则会出现以下现象: ![结果图](https://www.example.com/image1.png) 3. **删除当前用户的 cron 配置** ![结果图](https://www.example.com/image2.png) ![结果图](https://www.example.com/image3.png)
推荐阅读
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 本文介绍了在Linux环境下如何有效返回命令行状态、上一级目录及快速查找头文件和函数定义的方法。包括处理长时间运行命令、编辑器退出技巧、目录导航以及文件搜索策略。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 本文介绍了如何在不同操作系统上安装Git,以及一些基本和高级的Git操作,包括项目初始化、文件状态检查、版本控制、分支管理、标签处理、版本回退等,并简要提及了开源许可协议的选择。 ... [详细]
  • 【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库
    【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • top 命令是一个强大的工具,可以实时动态地监控系统的整体运行状况。它整合了多种信息,提供了一个全面的系统性能和运行信息视图。通过 top 命令的交互界面,用户可以使用热键进行各种管理操作。 ... [详细]
  • MySQL Administrator: 监控与管理工具
    本文介绍了 MySQL Administrator 的主要功能,包括图形化监控 MySQL 服务器的实时状态、连接健康度、内存健康度以及如何创建自定义的健康图表。此外,还详细解释了状态变量和系统变量的管理。 ... [详细]
author-avatar
浪漫的没天份
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有