Linux计划任务Cron的使用与管理
作者:浪漫的没天份 | 来源:互联网 | 2024-11-13 13:40
本文介绍了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)
推荐阅读
-
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
-
本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ...
[详细]
蜡笔小新 2024-12-27 13:47:38
-
-
本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ...
[详细]
蜡笔小新 2024-12-26 19:14:29
-
网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ...
[详细]
蜡笔小新 2024-12-26 14:35:04
-
本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ...
[详细]
蜡笔小新 2024-12-25 16:03:57
-
本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ...
[详细]
蜡笔小新 2024-12-25 13:17:38
-
本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ...
[详细]
蜡笔小新 2024-12-19 18:50:16
-
本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ...
[详细]
蜡笔小新 2024-12-27 16:33:32
-
本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ...
[详细]
蜡笔小新 2024-12-27 13:55:14
-
本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ...
[详细]
蜡笔小新 2024-12-26 19:47:05
-
本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ...
[详细]
蜡笔小新 2024-12-26 16:36:34
-
本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ...
[详细]
蜡笔小新 2024-12-26 15:15:06
-
本文深入探讨了 Redis 的两种持久化方式——RDB 快照和 AOF 日志。详细介绍了它们的工作原理、配置方法以及各自的优缺点,帮助读者根据具体需求选择合适的持久化方案。 ...
[详细]
蜡笔小新 2024-12-24 18:03:44
-
2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ...
[详细]
蜡笔小新 2024-12-26 12:56:20
-
本文介绍了如何在Django项目中使用django-crontab库来设置和管理定时任务,包括安装、配置、编写定时任务以及常见问题的解决方案。通过具体实例,帮助开发者快速掌握在Django中实现自动化任务的方法。 ...
[详细]
蜡笔小新 2024-12-19 14:51:39
-