linux计划任务2> 1,Linux计划任务(at batch crontab anacron)

本文详细介绍了Linux下的Cron定时任务机制,包括crond守护进程的功能、cron.allow和cron.deny文件的使用方法、crontab命令的具体用法以及如何进行用户级和系统级的任务调度。

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

cron:

crond是Linux下用来周期性地执行某种任务或等待处理某些事件的一个守护进程,且修改任务或控制文件后不用重启。

当完成操作系统的安装后,默认会安装crond,并自动启动crond进程。crond进程每分钟会定期检查是否有要执行的任务。

其中/etc/cron.allow和/etc/cron.deny文件用来现在cron的使用。这两个文件的格式都是每行一个用户(不允许空格),但root用户不受其限制。

cron.allow、cron.deny规则与at命令控制文件相同

Linux下的任务调度分为两类:系统任务调度和用户任务调度

• 用户任务调度:用户定期要执行的工作。通过crontab命令定制。所有用户定义的crontab文件都保存在/var/sopl/cron目录中(文件名与用户名一致)

• 系统任务调度:系统周期行所要执行的任务。通过/etc/crontab配置

crontab文件格式:

minute hour day month week command

0-59 0-23 1-31 1-12 0-7

另外"*"表示所有可能的值,","表示某个间隔时段,"-"表示某个连续时段,"/n"表示每隔n个单位时间

0 */3 * * * //表示每隔3个小时

30 3 * * 6 //表示每周6的3:30

0 0 1,20 * * //表示每个月的1号和20号

10 5 */5 * * //表示每个月的5、10、15、20、25、30号的5:10

用户任务调度:

crontab [-u user] [file]

crontab [-u user] [-e | -l | -r | -i]

-u user :用来设定某个用户的crontab任务

-e :编辑某个用户的crontab任务(如果是由系统执行的crontab任务可之间编辑/etc/crontab文件)

-l :显示某个用户的crontab任务

-r :删除某个用户的所有crontab任务(从/var/spool/cron目录中删除该用户的crontab文件)

-i :在删除用户的crontab文件时给确认提示

每次编辑完某个用户的cron设置后,cron会自动在/var/spool/cron/目录下生成一个与用户同名的文件记录该用户的cron信息

[root@rhel6 ~]# ll /var/spool/cron/ | grep root

[root@rhel6 ~]# crontab -e //创建crontab任务

* * * * * date >> /tmp/crontab //要求每分钟向/tmp/crontab输入当前时间的信息

注:单纯date的话将看不到任何输出,因为cron把任何输出都mail到root用户了

[root@rhel6 ~]# crontab -l

* * * * * date >> /tmp/crontab

[root@rhel6 ~]# ls /var/spool/cron/ | grep root //自动在/var/spool/cron/目录中生成一个以root为文件名的文件

-rw-------. 1 root root 28 Dec 27 17:15 root //crontab任务于17:15分创建

[root@rhel6 ~]# cat /tmp/crontab

Thu Dec 27 17:16:01 CST 2012 //从17:16分开始每分钟向/tmp/crontab文件输入当前时间的信息

Thu Dec 27 17:17:01 CST 2012

Thu Dec 27 17:18:01 CST 2012

Thu Dec 27 17:19:01 CST 2012

Thu Dec 27 17:20:01 CST 2012

[root@rhel6 ~]# crontab -r //删除用户的所有crontab任务

[root@rhel6 ~]# crontab -l

no crontab for root

[root@rhel6 ~]# ll /var/spool/cron/ | grep root //同时从/var/spool/cron目录中删除该用户的crontab文件

系统任务调度:

可通过直接编辑/etc/crontab文件进行计划任务的管理,该文件与"crontab -e" 的内容几乎完全一模一样。

[root@rhel6 ~]# cat /etc/crontab

SHELL=/bin/bash //执行任务所使用的shell类型

PATH=/sbin:/bin:/usr/sbin:/usr/bin //执行任务所使用的PATH

MAILTO=root //若有标准(错误)输出信息,则mail给root

HOME=/ //shell所在的家目录

# * * * * * user-name command to be executed //以下为计划任务的内容(与crontab -e的格式是一样的)

# run-parts

01 * * * * root run-parts /etc/cron.hourly //每小时01分以root身份执行/etc/cron.hourly/目录下的脚本

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值