配置 cron 计划任务

  • 问题
  1. 确认crond服务在运行
  2. 查看root有哪些cron任务
  3. 以用户root登入,添加以下计划任务:
  4. 每天早上7:30启动sshd服务
  5. 每天晚上23:30关闭sshd服务
  6. 以用户lisi登入,添加以下计划任务
  7. 每分钟记录一次当前时间,保存到文件 ~/date.txt
  8. 查看自己的cron任务列表
  9. 验证执行效果
  • 方案

周期性计划任务的服务名为crond,也是一个独立服务,对应的配置工具为crontab。需要确保系统的crond服务开启,建议将其设置为开机自启动。

计划任务的三要素:时间、任务、用户。

在编写计划任务时,可执行命令最好写绝对路径,以确保系统PATH变量受损也能成功找到该命令。

对于时间的表示,crond计划任务利用的是五个“*”表示的,含义分别为:分钟、小时、日期、月份、星期。

关于时间周期的几个特殊用法:

  • *:匹配范围内任意时间
  • ,:表示多个不连续的时间点
  • -:表示连续的时间范围
  • /n:指定时间频率,每n ...

全局配置文件为 /etc/crontab ,其中调用了位于以下目录的系统计划任务:

  • /etc/cron.hourly/*
  • /etc/cron.daily/*
  • /etc/cron.weekly/*
  • /etc/cron.monthly/*
  • 步骤

实现此案例需要按照如下步骤进行。

步骤一:确认crond服务在运行

命令操作如下所示:

[root@localhost ~]# /etc/init.d/crond status

crond (pid  1611) 正在运行...

[root@localhost ~]# chkconfig --list crond

crond           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

[root@localhost ~]#

步骤二:查看root有哪些cron任务

命令操作如下所示:

[root@localhost ~]# crontab -l -u root   //-l:查看;-u:指定用户

no crontab for root    //没有计划任务

[root@localhost ~]#

步骤三:以用户root登入,添加以下计划任务

每天早上7:30启动sshd服务

每天晚上23:30关闭sshd服务

执行crontab -e来设置计划任务时,会调用vim编辑器来进行修改。对应的命令操作如下所示:

[root@localhost ~]# ls /etc/init.d/sshd     //查看是否有安装该服务

/etc/init.d/sshd

[root@localhost ~]# crontab -e -u root      //-e:编辑计划任务;-u:指定用户

30 7 * * * /etc/init.d/sshd start      //每天早上7:30启动sshd服务

30 23 * * * /etc/init.d/sshd stop     //每天晚上23:30关闭sshd服务

步骤四:以用户lisi登入,添加以下计划任务

每分钟记录一次当前时间,保存到文件 ~/date.txt。

分析: 首先每分钟表示: * * * * * 或 */1 * * * *

那怎么保存当前时间呢?我们可以利用输出重定向来做:

data >> /home/lisi/date.txt

命令操作如下所示:

[root@localhost ~]# id lisi        //确保lisi用户存在

uid=503(lisi) gid=504(lisi) 组=504(lisi)

[root@localhost ~]# su – lisi      //切换用户身份

[lisi@localhost ~]$ which date

/bin/date

[lisi@localhost ~]$ crontab –e    //没有指定用户就是当前用户  

* * * * * /bin/date >> /home/lisi/date.txt

查看自己的cron任务列表

命令操作如下所示:

[lisi@localhost ~]$ crontab -l

* * * * * /bin/date >> /home/lisi/date.txt

[lisi@localhost ~]$

步骤五:验证执行效果

分析: 查看/home/lisi/data.txt文件有没有按时间写入即可,但每分钟都看一次会比较麻烦,这里介绍一个命令:watch

watch -n 1 cat /home/lisi/date.txt

-n:代表时间频率1秒钟。

整体可以解释为:每一秒钟执行一次“cat /home/lisi/date.txt”。

此命令会占用整个终端,可以按ctrl+c结束。

命令操作如下所示:

[lisi@localhost ~]$ watch -n 1 cat /home/lisi/date.txt

Every 1.0s: cat /home/lisi/date.txt                      Mon Mar  2 10:12:56 2015

 

Mon Mar  2 10:06:01 CST 2015

Mon Mar  2 10:07:01 CST 2015

Mon Mar  2 10:08:01 CST 2015

Mon Mar  2 10:09:01 CST 2015               //时间为英文表示

Mon Mar  2 10:10:01 CST 2015

Mon Mar  2 10:11:01 CST 2015

可以按ctrl+c结束

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值