# Linux 下执行定时任务 crontab 命令详解

先来一个小小的例子

```
[root@root test]# pwd
/home/admin/test 
[root@root test]# crontab -l
00 02 * * * sh /home/admin/optbash/dailyBackup.sh
00 02 * * * sh /home/admin/optbash/deleteDebugSql.sh
```

查看当前用户的定时任务 也可以 `crontab -uroot -l` 查看指定用户的定时任务。 千万不要忘了中间的 **sh** 表示用户拿什么来执行命令

建立一个用定时任务跑的bash脚本（将系统当前时间输出到 console.txt 文件）：

```
[root@root test]# touch test.sh
[root@root test]# vim test.sh
/bin/echo `date` > /home/admin/test/console.txt
[root@root test]# ll
total 8
-rw-r--r-- 1 root root 29 Mar 27 21:31 console.txt
-rwxr-xr-x 1 root root 48 Mar 27 21:28 test.sh
[root@root test]# chmod +x ./test.sh
```

追加 crontab 定时任务，每分钟触发：

```
[root@root test]# crontab -e
00 02 * * * sh /home/admin/optbash/dailyBackup.sh
00 02 * * * sh /home/admin/optbash/deleteDebugSql.sh
*  *  * * * sh /home/admin/test/test.sh
```

前面是已经存在的定时任务，后面执行test.sh脚本的是追加的 保存后提示已经装载了新的定时任务

```
"/tmp/crontab.HauiiV" 3L, 143C written
crontab: installing new crontab
```

再次查看定时任务列表,可以看到定时任务已经添加

```
[root@root test]# crontab -l
00 02 * * * sh /home/admin/optbash/dailyBackup.sh
00 02 * * * sh /home/admin/optbash/deleteDebugSql.sh
*  *  * * * sh /home/admin/test/test.sh
[root@root test]#
```

查看console.txt有没有每分钟写入console.txt文件

```
[root@root test]# vim console.txt
Fri Mar 27 21:40:01 EDT 2015
```

可以看到最近一次的写入时间。

## 看看crontab 的时间表达式

```
基本格式 :
*　　*　　*　　*　　*　　command
分　 时　 日　 月　 周　 命令
```

**然后来几个实际的例子：**

```
1、每分钟执行一次            
*  *  *  *  * 

2、每隔一小时执行一次        
00  *  *  *  * 
or
* */1 * * *  (/表示频率)

3、每小时的15和30分各执行一次 
15,45 * * * * （,表示并列）

4、在每天上午 8- 11时中间每小时 15 ，45分各执行一次
15,45 8-11 * * * command （-表示范围）

5、每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command

6、每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
```

## 其他命令介绍

```
名称 : crontab

使用权限 : 所有使用者

使用方式 :

crontab file [-u user]-用指定的文件替代目前的crontab。

crontab-[-u user]-用标准输入替代目前的crontab.

crontab-1[user]-列出用户目前的crontab.

crontab-e[user]-编辑用户目前的crontab.

crontab-d[user]-删除用户目前的crontab.

crontab-c dir- 指定crontab的目录。
```

## crond 安装与配置服务

```
yum install crontabs

服务操作说明：

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

查看crontab服务状态：

service crond status

手动启动crontab服务：

service crond start

查看crontab服务是否已设置为开机启动，执行命令：

ntsysv

加入开机自动启动：

chkconfig –level 35 crond on
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://note.1810.tech/linux/linux-xia-zhi-hang-ding-shi-ren-wu-crontab-ming-ling-xiang-jie.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
