Linux学习-计划任务

1,at 一次性计划任务

描述:在制定的时间执行特定命令

用法:at 时间

选项:-m 当计划任务执行结束后发送邮件给用户

-l 查看用户加护任务

-d 删除用户计划任务

-c 查看at计划任务的具体内容

例如:

[[email protected] ~]$ at 2:35 #指定时间是当天的2:35开始执行计划任务

at>tar cvf test.tar /study/test.txt

at> cp /study/test.txt /study/test.txt.bak<EOT>  #回车键后可以输入多条命令,ctrl+D结束输入

job 2 at 2016-08-15 02:35

at -l #查看计划任务

at -c 1 #查看编号为1的计划任务的具体内容

at -d 1 #删除编号为1的计划任务

at 命令后面的时间格式有很多,at 小时:分钟(默认代表当天的时间),at 4pm+3days(代表3天后的下午4点执行任务),at 12:00 2016-08-08 指定年月日。具体 man at

2,cron周期性计划任务

使用前首先确定crond服务是否开启,否则计划任务不会被执行

[[email protected] study]# service crond status

crond (pid  1730) is running...

[[email protected] study]# chkconfig --list crond

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

crontab命令的用法如下:

描述:为每个用户维护周期性的计划任务文件

用法:crontab [-u 指定用户][-l|-r|-e]

选项:-u 指定计划任务的用户,默认为当前用户

-l 查看计划任务

-r 删除计划任务

-e 编辑计划任务

-i 使用-r删除计划任务时,要求用户确认删除

2.1 系统自定义了很多计划任务脚本,分别放在/etc/下的cron.hourly,cron.daily, cron.weekly等,如果有脚本需要每天执行,可以将脚本放在cron.daily目录下,系统会自动每天执行

[[email protected] study]# ls -d /etc/cron*

/etc/cron.d      /etc/cron.deny    /etc/cron.monthly  /etc/cron.weekly

/etc/cron.daily  /etc/cron.hourly  /etc/crontab

时间定义的文件为anacrontab

[[email protected] etc]# cat anacrontab

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# the maximal random delay added to the base delay of the jobs

RANDOM_DELAY=45

# the jobs will be started during the following hours only

START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command

1       5       cron.daily              nice run-parts /etc/cron.daily

7       25      cron.weekly             nice run-parts /etc/cron.weekly

@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

第一行的意思是:每天开机65分钟后就检查cron.daily文件是否被执行了,如果今天没有被执行就执行他

第二行的意思是:每隔7天开机后70分钟检查cron.weekly文件是否被执行了,如果一周内没有被执行就执行他

如果要定义这个具体的时间,可在在contab文件中添加以下进行定义,如下

  1. # run-parts
  2. 01 * * * * root run-parts /etc/cron.hourly
  3. 02 4 * * * root run-parts /etc/cron.daily
  4. 22 4 * * 0 root run-parts /etc/cron.weekly
  5. 42 4 1 * * root run-parts /etc/cron.monthly

[[email protected] etc]# cat crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# 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

分时日月周 后面是命令

2.2 [[email protected] etc]# crontab -e # 编辑计划任务,会弹出类似于vi的编辑界面

no crontab for root - using an empty one

30 23 * * 5 tar -czf log.tar.bz2 /var/log #每周五晚23点30分执行日志备份

00 */3 * * * who   # 每3小时的整点检查用户登录情况

00 10 * * 3,5 free |mail -s "Memory" [email protected]  #每周三,五的10点将系统的内存信息发送到邮箱

2.3 crontab的安全控制:

/etc/cron.allow:
将可以使用 crontab 的帐号写入其中,若不在这个档案内的使用者则不可使用 crontab;

/etc/cron.deny:
将不可以使用 crontab 的帐号写入其中,若未记录到这个档案当中的使用者,就可以使用 crontab。

都是一行一个帐号,/etc/cron.allow 比 /etc/cron.deny 要优先,而判断上面,这两个档案只选择一个来限制而已,因此,建议你只要保留一个即可, 免得影响自己在设定上面的判断!一般来说,系统预设是保留 /etc/cron.deny , 你可以将不想让他执行 crontab 的那个使用者写入 /etc/cron.deny 当中。

当使用者使用 crontab 这个指令来建立工作排程之后,该项工作就会被纪录到 /var/spool/cron/ 里面去了,而且是以帐号来作为判别的。不要使用 vi 直接编辑该档案, 因为可能由于输入语法错误,会导致无法执行 cron

2.4 日志查看:/var/log/cron,里面有多个备份,一周一个,当前的就是cron

2.5 anacron--开机后立刻进行 anacron 的动作,他会去侦测停机期间应该进行但是并没有进行的 crontab 任务,并将该任务执行一遍后,anacron 就会自动停止了,这是由于 anacron 会以一天、七天、一个月为期去侦测系统未进行的 crontab 任务。一般默认设置就可以了。

要确定 anacron 是否开机时会主动的执行,你可以下达下列指令:[[email protected] ~]# chkconfig --list anacron

2.6 注意事项 服务重启:修改/etc/crontab 之后,可能并不会马上执行, 这个时候请重新启动 crond 这个服务‘/etc/init.d/crond restart’

周与日月不可同时并存,不可使用“几月几号且为星期几”的模式工作

时间: 2024-10-08 13:24:16

Linux学习-计划任务的相关文章

UBUNTU LINUX学习计划和过程记录

昨天花重金A Practical Guide to Ubuntu Linux(FOURTH EDITION),目的是为了驱使自己学习LINUX系统. 昨晚在VMware中安装了Ubuntu 14.04. 总之,UBUNTU LINUX学习之旅开始了. 学习前期,计划每天花一个小时(最好固定时间,暂定晚上22:00-23:00为Ubuntu Hour吧 ^^),阅读书籍,再结合实际操作,逐步入门.到后期有具体学习目标的时候再调整计划. 在本帖中记录每天的学习内容.

Linux学习计划

很早就开始接触Linux,由于没有系统的学习过所以总是这里学点那里学点.到现在还是什么都不懂. 刚才看见马哥的Linux视频教程感觉还不错比较系统,打算花一些时间学习下.再者这个网站12年就注册了到现在还没发一篇文章太不对了.计划今年根据马哥的视频将Linux系统的学一下争取每周写篇博客.

linux学习计划第一周

目标:完成一款linux(CLOS)软件架构设计. 思路:整,借,思,变. 思想:取势,明道,优术,合众,践行. 前期准备: 1.目标分解. 2.逛论坛,博客等,寻找学习路线. 3.准备基本学习资料,包括学习环境和资料. 日期 计划内容 完成内容 备注 5月16日(上午) 安装VMWAARE虚拟机及ContOS6.5系统 完成 单台PC安装两个linux环境,第一台用镜像安装,第二台克隆安装.克隆安装需要修改第二台的IP及MAC地址.SecureCRT安装配置. 5月16日(下午) 学习linu

自我介绍及linux学习计划决心

大家好,我叫张晓阳,今年已经30岁了,毕业到现在已经8年了,一直从事网络运维,平时也有接触过linux,也自学,但是感觉不够系统,无法将所学到的知识融汇贯通.这次来老男孩培训就是希望通过老男孩老师的指导打通自己的任督二脉.我这人有一个坏的毛病,做什么事情总是三分热度无法长久的坚持下去,我也希望通过在老男孩这边学习改掉自己的这个坏毛病,可以坚持到最后.希望来年的时候可以让我老婆在家带孩子.为此我对自己有如下要求: 1.每天坚持学习,不给自己的逃避找任何借口 2.多跟同学老师交流,像大家学习,不活在

linux学习计划。

仅用于个人.也希望对其他人有所帮助. 目标:服务器开发. 已有基础:C++ 需要学习:linux基本操作,TCP/IP. 参考文章:http://wenku.baidu.com/link?url=Exc8umlzC4eLZz2LWWTRKr2yJeTu4YWag96u9D1LHIZLt6paq8zzby_dopLIDwK7D6YFve-L0ITglSShDQTCAo9p-O-04OnzeIWyzf_c0xy

Linux 学习计划

一. 学习目标 目前的工作太无趣且充满了烦琐,看不到意义所在,偶然接触到linux,觉得字符界面很好玩,想深入学习并成为一名linux运维工作者.当前目标是学会和理解基础的及当下最流行的linux运维知识,转行成为一个linux运维工程师.然后在工作和空余时间继续学习,开拓眼界,磨炼技术能力,最终成为一名优秀的Linux运维架构师. 二. 现状分析 专业基础上,本人学通信出身,对于网络.操作系统.编程语言等方面虽然不如计算机出身,但基础还是有的,理解不成问题,但是学习方法.思维方面需要逐步转变.

我的Linux成长路---001 Linux学习初期计划

Linux学习初期计划 1.Linux基础 Linux历史.Linux版本.Linux安装.shell命令 2.Linux系统管理 用户管理.文件权限管理.磁盘管理.进程管理.自动化任务.安装程序... 3.Linux服务器 用Linux做DNS.DHCP.VPN.流媒体.FTP.Web.代理服务器.邮件服务器... 用Linux实现路由功能.NAT功能 4.Linux安全 网络安全.系统安全.入侵检测 5.mySQL数据库 6.Oracle数据库

Linux学习之计划任务(at、batch、vrontab)篇

Linux学习之任务计划(at.batch.vrontab)篇 一.linux上的任务计划 1.分类 linux上的任务计划可以分为两类: a.周期性执行的任务计划 crontab b.后续时间一次性执行的计划 at.batch 2.电子邮件服务 电子邮件服务使用到的几个协议: smtp:simple mail transmission protocol pop3:post office protocol imap4:internet mail access protocol 没个用户的都有一个

菜鸟学习计划浅谈之Linux系统 原

人这一生都是在不断地学习,不断地进步中度过的,刚开始学习任何一门知识的时候,我们都习惯性的称自己为菜鸟,觉得自己对这方面的知识欠缺,水平很low,我也是如此.但我擅长总结,对于自己学习的新知识,总结学习中的学习经验心得,慢慢提升自己,才能从一个菜鸟升级到大虾.虽然这个过程是艰辛的,但是任何成功都缺不了坚持和付出,没有人可以不劳而获,怎样才能使平凡的自己变得不平凡,那就是要努力.这段时间我一直在学Linux,那么今天,我就谈谈我一个Linux菜鸟的学习心得. 首先说说我为何要学习Linux.其实,