LINUX 配置 cron 计划任务
时间:2019-05-24 17:39 来源:linux.it.net.cn 作者:IT
问题
1)确认crond服务在运行
2)查看root有哪些cron任务
3)以用户root登入,添加以下计划任务:
4)每天早上7:30启动sshd服务
5)每天晚上23:30关闭sshd服务
6)以用户it.net.cn登入,添加以下计划任务
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服务
步骤四:以用户it.net.cn登入,添加以下计划任务
每分钟记录一次当前时间,保存到文件 ~/date.txt。
分析: 首先每分钟表示: * * * * * 或 */1 * * * *
那怎么保存当前时间呢?我们可以利用输出重定向来做:
data >> /home/it.net.cn/date.txt
命令操作如下所示:
[root@localhost ~]# id it.net.cn //确保it.net.cn用户存在
uid=503(it.net.cn) gid=504(it.net.cn) 组=504(it.net.cn)
[root@localhost ~]# su – it.net.cn //切换用户身份
[it.net.cn@localhost ~]$ which date
/bin/date
[it.net.cn@localhost ~]$ crontab –e //没有指定用户就是当前用户
* * * * * /bin/date >> /home/it.net.cn/date.txt
查看自己的cron任务列表
命令操作如下所示:
[it.net.cn@localhost ~]$ crontab -l
* * * * * /bin/date >> /home/it.net.cn/date.txt
[it.net.cn@localhost ~]$
步骤五:验证执行效果
分析: 查看/home/it.net.cn/data.txt文件有没有按时间写入即可,但每分钟都看一次会比较麻烦,这里介绍一个命令:watch
watch -n 1 cat /home/it.net.cn/date.txt
-n:代表时间频率1秒钟。
整体可以解释为:每一秒钟执行一次“cat /home/it.net.cn/date.txt”。
此命令会占用整个终端,可以按ctrl+c结束。
命令操作如下所示:
[it.net.cn@localhost ~]$ watch -n 1 cat /home/it.net.cn/date.txt
Every 1.0s: cat /home/it.net.cn/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结束
(责任编辑:IT)
问题 1)确认crond服务在运行 2)查看root有哪些cron任务 3)以用户root登入,添加以下计划任务: 4)每天早上7:30启动sshd服务 5)每天晚上23:30关闭sshd服务 6)以用户it.net.cn登入,添加以下计划任务 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服务 步骤四:以用户it.net.cn登入,添加以下计划任务 每分钟记录一次当前时间,保存到文件 ~/date.txt。 分析: 首先每分钟表示: * * * * * 或 */1 * * * * 那怎么保存当前时间呢?我们可以利用输出重定向来做: data >> /home/it.net.cn/date.txt 命令操作如下所示: [root@localhost ~]# id it.net.cn //确保it.net.cn用户存在 uid=503(it.net.cn) gid=504(it.net.cn) 组=504(it.net.cn) [root@localhost ~]# su – it.net.cn //切换用户身份 [it.net.cn@localhost ~]$ which date /bin/date [it.net.cn@localhost ~]$ crontab –e //没有指定用户就是当前用户 * * * * * /bin/date >> /home/it.net.cn/date.txt 查看自己的cron任务列表 命令操作如下所示: [it.net.cn@localhost ~]$ crontab -l * * * * * /bin/date >> /home/it.net.cn/date.txt [it.net.cn@localhost ~]$ 步骤五:验证执行效果 分析: 查看/home/it.net.cn/data.txt文件有没有按时间写入即可,但每分钟都看一次会比较麻烦,这里介绍一个命令:watch watch -n 1 cat /home/it.net.cn/date.txt -n:代表时间频率1秒钟。 整体可以解释为:每一秒钟执行一次“cat /home/it.net.cn/date.txt”。 此命令会占用整个终端,可以按ctrl+c结束。 命令操作如下所示: [it.net.cn@localhost ~]$ watch -n 1 cat /home/it.net.cn/date.txt Every 1.0s: cat /home/it.net.cn/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结束 (责任编辑:IT) |