ThankNeko's Blog ThankNeko's Blog
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)

Hoshinozora

尽人事,听天命。
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)
  • 操作系统

    • Linux基础

      • 服务器与Linux介绍
      • VMware虚拟机安装
      • 查看系统信息
      • 开机挂载与自启
      • 系统运行级别
      • 变量与命令别名
      • 网卡配置
      • 文件系统inode与block详解
      • 系统优化
      • 文件管理
      • 用户管理
      • 文本处理三剑客
      • 定时任务
        • 定时任务
      • 磁盘分区
      • 其他基础命令
    • Linux服务

    • Windows Server笔记

    • Shell笔记

    • Ansible笔记

  • 虚拟化服务

  • 数据库服务

  • 监控服务

  • Web服务

  • 数据处理

  • Ops
  • 操作系统
  • Linux基础
Hoshinozora
2023-03-01
目录

定时任务

# 定时任务

# 介绍

定时任务可用于定时自动执行操作,例如:夜里访问量不大时备份数据、自动清理磁盘、同步更新时间、定时对日志文件进行切割处理等。

系统定时任务文件

Linux系统中存在自带的定时任务文件,会安装周期定时执行,但是由于时间固定,无法定义不够灵活,所以很少使用。

/etc/cron.hourly 每小时执行一次。

/etc/cron.daily 每天执行一次。

/etc/cron.weekly 每周执行一次。

/etc/cron.monthly 每年执行一次。

# crontab命令

我们一般使用cronie软件包中的crontab命令进行定时任务的管理。

crontab用于设置周期定时任务,定时任务会依赖crond服务进行执行,所以需检查crond服务是否启动并设为自启。

命令格式:

crontab [参数]

crontab -i 查看用户定时任务。

crontab -e 编辑配置定时任务。

配置格式:

分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6) 命令

星期的0表示星期日。

时间信息由左到右依次写,不能跳步。

日期和星期不要同时出现。

# *:表示每分钟/小时/日期/月份/星期都要执行。
## 表示每分钟执行一次。
* * * * *
## 表示小时的第5分钟执行一次。
5 * * * *
## 表示每天的2点5分执行一次。
5 2 * * * 

# */n:表示每隔n"分钟/小时/日期/月份/星期"间隔执行。
## 表示每隔5分钟执行一次。
*/5 * * *
## 表示每隔3天就在2点执行一次。
0 2 */3 * *

# n/m:n规定时间范围,m规定间隔时间。
# n为*时 表示单位所有时间内,每隔多久执行一次。
# n为20时 则从20开始,m为每隔多久执行一次。
# n为1-10时 表示仅在1-10范围内进行间隔执行。

# n-m:表示n-m范围内连续的时间执行。
## 表示1/2/3点的每分钟都要执行一次。
* 01-03 * * *

# n,m:表示在不连续的时间执行。
## 表示1点整和3点整时都要执行一次。
00 01,03 * * *
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 编写规范

  1. 应当在编写的定时任务,上面一行加上注释说明。

  2. 应当想清楚今后什么时候执行任务。

  3. 编写后应当测试是否有效果或有问题。

  4. 命令应当使用绝对路径,因为定时任务会只在/user/bin和/bin中寻找命令。

  5. 命令中的文件路径尽量使用绝对路径。

  6. 命令尽量不要产生屏幕输出信息,可以将输出重定向到/dev/null中。不使用产生屏幕输出的参数,因为定时任务执行命令时 会将输出到屏幕的信息 发送到用户邮箱文件中 会占用磁盘空间。

  7. 命令需要使用特殊符号%时,前需要加上\转义才能使用,比如date "+\%F"。

  8. 当完成一个任务需要两条及以上命令时,就需要编写脚本,运行脚本时需要 /bin/bash [脚本路径]。

# 排错方法

检查是否有定时任务配置文件/var/spool/cron/[用户名]。

检查定时任务的日志文件/var/log/cron。

执行时间 主机名 编辑/执行定时任务 执行的用户 执行的操作

检查用户邮件/var/spool/mail/[用户名]。

crontab会将命令的屏幕输出发送到用户邮箱文件内。

#Linux#定时任务
文本处理三剑客
磁盘分区

← 文本处理三剑客 磁盘分区→

最近更新
01
二〇二五年四月十七日随笔
04-17
02
二〇二五年四月十六日随笔
04-16
03
二〇二五年四月九日随笔
04-09
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Hoshinozora | MIT License
湘ICP备2022022820号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式