目录

  • 前言
  • crond 任务调度
  • 概述
  • 基本语法
  • 快速入门
  • 案例
  • 案例一:每隔一分钟将ls -l /etc/ 追加到 /tmp/to.txt 文件
  • 案例二:每隔一分钟执行python文件
  • 结语


前言

我们常用linux做一些定时任务,最常见的就是在服务器领域,我们常常做一些定时任务来定时执行一些脚本,那么接下来我们就来看看linux中的任务调度相关知识以及一些案例吧!

crond 任务调度

用 crontab 进行定时任务的设置

概述

任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1、系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。
2、个别用户工作,个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。

基本语法

crontab [选项]

常用选项

项目

Value

-e

编辑 crontab 定时任务

-l

查询 crontab 任务

-r

删除当前用户所有的 crontab 任务

快速入门

1.设置个人任务调度:crontab -e
2.输入任务:
如:

*/1 * * * * ls -l /etc/ > /tmp/to.txt

这个命令的意思是每小时的每分钟执行ls -l /etc/ > /tmp/to.txt

参数细节说明:
1.*号的说明

项目

含义

范围

第一个“*”

一小时当中的第几分钟

0-59

第二个“*”

一天当中的第几小时

0-23

第三个“*”

一个月当中的第几天

1-31

第四个“*”

一年当中的第几月

1-12

第五个“*”

一周当中的星期几

0-7(0和7都代表星期日)

即:

分 时 日 月 星期几 [命令]

2.特殊符号的说明

特殊符号

含义

*

代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。

,

代表不连续的时间。比如“0 8,12,16***”命令,就代表在每天的8点0分,12点0分,16点0分都执行一次命令。

-

代表连续的时间范围。比如05**1-6命令,代表在周一到周六的凌晨5点0执行命令

*/n

代表毎隔多久执行一次。比如"*/10****命令”,代表每隔10分钟就执行一遍命令

注:

  • 如果只是简单的任务,可以不用写脚本,直接在 crontab 中加入任务即可。
  • 对于比较复杂的任务,需要写脚本。(Shell 编程)

案例

案例一:每隔一分钟将ls -l /etc/ 追加到 /tmp/to.txt 文件
*/1 * * * * ls -l /etc/ >> /tmp/to.txt

可以看到定时任务已经建立!

centos 定时任务 早上到晚上每小时_定时任务


执行成功!

centos 定时任务 早上到晚上每小时_定时任务_02


利用trontab -l可以查看当前的定时任务!

centos 定时任务 早上到晚上每小时_任务调度_03


利用trontab -r可以结束所有的定时任务!

centos 定时任务 早上到晚上每小时_任务调度_04

案例二:每隔一分钟执行python文件

每隔一分钟执行/tmp/hello.py文件,这个文件里写输出"hello world!"

使用 vi /tmp/hello.py 创建并打开hello.py文件
写入:

print("hello world!")

然后看看这个hello.py的权限,为root用户添加执行它的权限

chmod 744 hello.py

centos 定时任务 早上到晚上每小时_任务调度_05

然后 crontab -e 让python执行这个hello.py文件,将结果输入到 log.txt

*/1 * * * * /usr/bin/python3  /tmp/hello.py >> /tmp/log.txt

centos 定时任务 早上到晚上每小时_定时任务_06


可以看到,执行成功!