计划任务管理之crontab周期性任务设置(二)

本文详细介绍了Linux中crontab命令用于设置周期性任务的方法,包括通过编辑/etc/crontab文件进行系统任务配置,以及使用crontab -e、-l、-r命令管理用户计划任务。讲解了crontab配置字段的含义,并通过实例演示了如何添加、查看和删除任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

crontab周期性任务设置

使用 crontab 命令设置的计划任务可以按预设的周期重复执行,从而大大减轻设置重复性系统管理任务的操作。启用周期性任务也有一个前提条件,即对应的系统服务 crond 必须已经运行。

 

1./etc/crontab——系统任务配置文件

/etc/crontab 文件中设置的是维护 Linux 操作系统所需的任务,Linux 操作系统及相关程序在安装时可自动设置,不建议用户手动修改此文件。

例如,查看配置文件,用cat命令去查看:

[root@localhost ~]# cat /etc/crontab               
SHELL=/bin/bash                                                                                           
//设置执行计划任务的 Shell 环境
PATH=/sbin:/bin:/usr/sbin:/usr/bin                                                                   //定义可执行命令及程序的路径
MAILTO=root                                                                                                  //将任务输出信息发送到指定用户的邮箱

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)                                                                                                 
//分
# |  .------------- hour (0 - 23)                                                                                                      //时
# |  |  .---------- day of month (1 - 31)                                                                                         //日
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...                                                                 //月
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat                // 周
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

 

由于各字段的作用不同,其取值范围也不一样,当使用“*”时表示取值范围中的任意时间。crontab 任务配置记录中所设置的命令操作将在“分钟”+“小时”+“日期”+“月份”+“星期”都满足的条件下执行。

 crontab 计划任务的配置字段说明

分钟 取值为 0~59 的任意整数

小时 取值为 0~23 的任意整数

日期 取值为 1~31 的任意整数(日期在该月份中必须有效)

月份 取值为 1~12 的任意整数

星期 取值为 0~7 的任意整数,0 或 7 代表星期日

命令 可以是普通的命令,也可以是自己编写的程序脚本

除了“*”以外,还可以使用“-”(减号)、“,”(逗号)、“/”(斜杠)与数字构成表达式来表示较复杂的时间关系。

减号“-”:可以表示一个连续的时间范围,如“1-4”表示整数 1、2、3、4。

逗号“,”:可以表示一个间隔的不连续范围,如“3, 4, 6, 8”。

斜杠符号“/”:可以用来指定间隔频率,如在日期字段中的“*/3”表示每隔 3 天。

2.使用 crontab 命令管理用户的计划任务

设置用户的周期性计划任务列表主要通过 crontab 命令进行,结合不同的选项可以完成不同的计划任务管理操作。常用的选项如下。

 -e:编辑计划任务列表。

 -u:指定所管理的计划任务属于哪个用户,默认是针对当前用户(自己),一般只有 root 用户有权限使用此选项(用于编辑、删除其他用户的计划任务)。

 -l:列表显示计划任务。

-r:删除计划任务列表。

(1)编辑用户的计划任务表

执行“crontab -e”命令后,将打开计划任务编辑界面(与 vi 中的操作相同)。通过该界面用户可以自行添加具体的任务配置,每行代表一个记录,配置的格式与/etc/crontab文件中的主体部分类似

例如,编辑一个任务:每天的21:01把/usr/bin目录下的家目录/home/shan复制到/opt目录下,编辑好以后保存退出,用 crontab -l查看任务。然后先去查看/opt目录下,会发现并没有,等到了时间再去查看,会发现有了shan的家目录,说明任务已经开始执行

[root@localhost ~]# crontab -l
1 21 * * * /usr/bin/cp -r /home/shan /opt/
[root@localhost ~]# ls /opt/
ps.txt  rh
[root@localhost ~]# ls /opt/
ps.txt  rh  shan
 

 例如,再编辑一个任务:每隔五天备份 /etc目录中的所有文件 到 /opt目录中,压缩包名称是bak.tar.gz。同样,用 crontab -l查看任务。

[root@localhost ~]# crontab -l
1 21 * * * /usr/bin/cp -r /home/shan /opt/
0 * */5 * * /uer/bin/tar zcvf /opt/bak.tar.gz /etc/*
 

2)删除用户的计划任务列表

当只需要删除某一条计划任务时,可以通过“crontab -e”命令进行编辑;而若要清空某个用户的所有计划任务,可以执行“crontab -r”命令。

[root@localhost ~]# crontab -l
1 21 * * * /usr/bin/cp -r /home/shan /opt/
0 * */5 * * /uer/bin/tar zcvf /opt/bak.tar.gz /etc/*
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root
 

在设置用户的 crontab 计划任务的过程中,由于每一条记录只能运行一行命令,难以完成更复杂的系统管理任务操作,因此在实际工作中,当需要按照固定周期运行一些操作复杂的任务时,通常会将相关命令操作编写成脚本文件,然后在计划任务配置中加载该脚本并执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值