搜索
查看: 5470|回复: 0

linux定时任务

[复制链接]

105

主题

51

回帖

298

积分

中级会员

积分
298
发表于 2020-11-3 21:28:15 | 显示全部楼层 |阅读模式 来自 甘肃
[md]## 前言

最近有个自己的特殊需求,需要定期备份某些数据到 GitHub,于是打算使用 Linux 系统本身的定时器完成此需求。

## `crontab` 简介

`crontab` 命令常见于 [Unix](https://baike.baidu.com/item/Unix) 和[类 Unix](https://baike.baidu.com/item/%E7%B1%BBUnix) 的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab 储存的指令被[守护进程](https://baike.baidu.com/item/%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B)激活, `crond` 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为 `cron jobs`。

## 确定服务器是否开启定时任务计划服务

命令: `service crond status` 确认定时任务是否开启。

常用命令:

```bash
# 开启服务
service crond start#
# 开启服务
service crond stop
# 重启服务
service crond restart
# 重新载入配置
service crond reload
```

## `crontab` 格式说明

格式为 :`* * * * *`

|    解释    |                   minute                   |                  hour                  |           day of mouth           |            month of year            |            day of week            |
| :----------: | :----------------------------------------: | :-------------------------------------: | :-------------------------------: | :----------------------------------: | :-------------------------------: |
|    标识    |                     *                     |                    *                    |                 *                 |                  *                  |                 *                 |
|    含义    | 每个小时的第几分钟执行该任务 | 每天的第几个小时执行该任务 | 每月的第几天执行该任务 | 每年的第几个月执行该任务 | 每周的第几天执行该任务 |
| 取值范围 |                    0~59                    |                  0~23                  |               1~31               |                 1~12                 |        0~6(0 表示周天)        |

示例:

`5 * * * * Command` 每小时的第 5 分钟执行一次命令 `*/1 * * * * Command` 每 1 分钟执行一次命令 `0 */1 * * * Command` 每 1 小时执行一次命令 `30 18 * * * Command` 指定每天下午的 6:30 执行一次命令 `30 7 8 * * Command` 指定每月 8 号的 7:30 分执行一次命令 `30 5 8 6 * Command` 指定每年的 6 月 8 日 5:30 执行一次命令 `30 6 * * 0 Command` 指定每星期日的 6:30 执行一次命令 每天的下午 4 点、5 点、6 点的 5 min、15 min、25 min、35 min、45 min、55 min 时执行命令。 `5,15,25,35,45,55 16,17,18 * * * Command`

## 开始创建一个定时任务

`crontab -e` 编辑某个用户的 `cron` 服务 `crontab -l` 列出某个用户 `cron` 服务的详细内容

`crontab -r` 删除某个用户的 `cron` 服务(慎用)

## 查看定时任务的执行情况

在 `/var/spool/mail/{username}` 中可以查看最近的 `crontab` 的执行情况

> username:用户名

## `cron` 的定时任务备份恢复

如果使用 `crontab -r` 误删了定时任务在 `/var/spool/cron` 下有定时任务的备份,可以通过该 `cron` 找回 如果没有权限 的话 `su - + root.password` 在 `root` 用户下进行查看
[/md]
专业装逼!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表