我们可以利用cron进行相关的事件调度,cron可以在系统后台自动运行,cron利用的是一个cron表的文件,这个文件中存储了需要执行的脚本以及执行时间,我们可以利用其在某个时间段执行设置好的命令

所有的GNU/Linux发行版都包含了cron调度工具,只要我们在cron表中写入条目, 我们在cron表中写入条目,对应的命令就会在指定的时间去执行,命令crontab用来添加调度条目

下面的首先是cron表达式的构成

* * * * * 命令(脚本)

分钟 小时 天 月 工作日(0-6)

*指定在每一个时间段内执行

一些编写的技巧诸如,使用逗号进行分割,来表示在第几时间段运行,分钟级别中写入(5,10),就是第5分钟 和 第10分钟,如果时间特定的间隔执行 */5 就是每5分钟执行一次

例句:

02 * * * * /home/user/test.sh

每天的每小时的第2分钟执行test.sh

每天的第5,6,7点来执行脚本

00 5,6,7 * * /home/usr/test.sh

每天的凌晨2点来关闭计算机

00 02 * * * /sbin/shutdown -h

如果手动的运行crontab,使用选项-e输出cron作业

crontab -e

02 02 * * * /home/user/print.sh

输入crontab -e,会打开一个文本编辑器,让用户输入cron作业并保存,这项作业会在指定的时候调度执行

我们在脚本中调用crontab进行任务调度

如果不想写vi编辑器,那可以使用方式如下

1.创建一个文本文件 task.cron 写入cron作业

将文件名作为命令参数,运行crontab 比如一个文本 task.cron

crontab task.cron

2.在输入行内指定cron作业

crontab << EOF

02 * * * * /home/user/pring.sh

EOF

执行cron作业所需要的权限同crontab命令所需要的权限相同,如果需要高等级的权限,就需要使用超级用户身份执行crontab

在cron作业中指定的命令需要完整路径,这是因为执行cron作业时候的环境和终端的环境不同,而且需要设置环境变量

指定合适的环境变量才能运行,我们可以再用户的cron表中插入一行变量赋值语句来设置环境变量

比如,需要设置HTTP代理环境

http_proxy,可以用下面的方法完成

crontab<<EOF

http_proxy=http://192.168.03.11:3128

00 * * * * /home/usr/print.sh

查看cron表

可以使用选项-l 来列出现有的cron表的内容

crontab -l

这样会列出当前用户的cron表中的条目

crontab -l -u slynux

当使用-u的时候,需要超级管理员你的权限

移除cron表达式

使用crontab -r 可以移除当前用户的cron表达式

发表评论

邮箱地址不会被公开。 必填项已用*标注