Linux之定时任务(Timed task)

1.什么叫计划(定时)任务

未来的某个时间执行一次任务,或者同时周期性的执行某个任务,执行结果会通过邮件的形式发送给用户
定点执行某一此任务 :at batch
周期性的运行某任务 crontab

2.用户及系统任务调度

系统任务调度:系统周期性所要执行的工作,比如缓存数据到硬盘、日志清理等。/etc/crontab文件就是系统任务调度的配置文件。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用crontab工具来定制自己的计划任务。所有用户 定义的crontab文件都被保存在/var/spool/cron目录中。
cround 是用来周期性的执行某种任务或等待处理某些事件的一个守护进程;
cround 进程定期(每分钟)检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务
用户在cron表(crontab文件)指定了定时任务,crontab就是我们常见的定时任务设置指令。

3.定时任务语法及配置文件

①邮件发送

邮件发送:mail(按crtl + d 结束)
mail -s “邮件主题” -c “抄送地址” -b “密送地址” – -f “发送人地址” -F “发件人姓名” < 要发送的邮件内容
mail -s root@localhost
echo “mail content” | mail -s test root@localhost
mail -s test root@localhost < file

②at 命令

(在特定的时间执行一次性的任务)
时间定义:
hh:mm (小时:分钟) midnight noon teatime am pm month day mm/dd/yy dd.mm.yy
now+count(count时间数量) time-units(时间单位)(时间单位可以是minutes hours days weeks )
也可以直接使用today tomorrow来指定完成命令的时间
参数:-V :印出版本号
-q:列出任务
-f:从文件中读取写好的命令档
-d:删除指定任务(也可以用atq 或at -l)
-v:列出所有已经完成但未删除的指定
at和atq的应用:
/etc/init.d /atd start :启动服务
at now +1 minutes :1分钟后执行
at >echo “hello” :输入任务
CTRL+d :结束
atq :查看待处理作业
atrm 5 :删除待处理作业5
at -c 6 :根据作业id查看作业内容
atq:列出用户的计划任务,如果是超级用户将列出所有用户的任务,结果输出为:作业号、日期、小时、队列、用户名
atrm:根据job number(任务号)删除at任务
batch:在系统负荷允许的情况下执行at任务,就是在系统空间的情况 下才执行at任务

③crond命令

crond用来周期性的执行某种任务或等待处理某些事件的一个守护进程,crondtab提供使用者控制计划任务的命令
/etc/crondtab文件内容
环境变量:
/etc/crontab文件包括下面几行:
[root@chengzilinux ~]# cat /etc/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

/etc/corn.deny(说明该文件中所列用户不允许使用crontab命令)
/etc/cron.allow(说明文件中所列用户允许使用crontab命令)
/var/spool/cron/(说明所有用户crondtab文件存放的目录,以用户名命名)

        • *(分 时 日 月 周)
          时间表示法:特定值:40 8 * * * (8:40)
  • : * *8 * * *
    连续值:8-10 9-17
    离散值:8,10,12
    定义时间长,时间步长 /4
    3 * * * * :每小时执行一次;每小时的第三分钟
    3 4 * * 5 :每周执行一次;每周五的四点三分
    5 6 7 * * :每月执行一次;每月的7号的6点5分
    7 8 9 10 * :每年执行一次;每年的10月9号的8点7分
    0 8,20 * * 3,7 :每周三和周日的8点和20点
    */5 * * * * :每隔五分钟执行一次
④安装crontab

安装命令:yum install crontabs
service crond start :启动服务
service crond stop:关闭服务
service crond restart :重启服务
service crond reload:重新载入配置
service crond status:启动服务
crond [-u user] [ -l |-r | -e ] [ -i ]
-e:编辑任务
-l:列出所有任务
-r:移除所有任务
-i:在使用-r选项移除所有用户任务时提示用户确认
-u:root用户可为指定用户管理cron任务
如果用户拒绝接收邮件:
command >/dev/null command &>/dev/null

4.定时任务规范及标准流程

(1)计划任务脚本指定存放位置,便于维护和电感器备份
(2)写定时任务前必须在前面写注释(包括添加计划任务的人、添加任务的时间、任务有效期、计划任务脚本的对象、脚本的作用、以及其它需要的事项)
(3)执行的脚本前加上/bin/bash 或?bin/sh,脚本必须有完整的绝对路径
(4)定时任务,需要尽量避免标准输出和标准错误输出,结尾加上 >/dev/null 2>&1
(5)能用目录完成的也要写在脚本里
(6)在指定用户下执行相关的定时任务
(7)制定标准的书写规范
计划任务的脚本环境变量重新定义,可以手动在脚本内加载环境变量的配置文件/etc/profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值