SecureCRT 下载地址:https://pan.baidu.com/s/1YB_7BEcJ8MNU3Wj6osnO-g
说明:这里以SecureCRT为实验环境,前面文章也介绍过SecureCRT这里就不赘述了
在Linux系统中,计划任务一般是由cron承担,我们可以把cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron会根据命令和执行时间来按时来调用度工作任务。
要使用cron,需要先安装vixie-cron软件包和crontabs软件包,可以通过以下方式来检查服务器是否有安装
rpm -qa | grep vixie-cron 检查是否安装vixie-cron软件包
rpm -qa | grep crontabs 检查是否安装crontabs软件包
说明:vixie-cron软件包是cron的主程序。crontabs软件包是用来安装、卸装、或列举用来驱动cron守护进程的表格的程序。
如果没有安装软件包,可以通过以下方式联网在线安装
yum install vixie-cron
yum install crontabs
说明:需要拥有root权限
cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
chkconfig --level 35 crond on
cron有两个配置文件,一个是系统cron配置文件(/etc/crontab),是针对系统任务的;一个是用户cron配置文件(/var/spool/cron/USERNAME文件),是针对某个用户的定时任务,通过crontab命令来增删改查;配置其中任意一个都可以(建议使用crontab命令)。
查看配置文件: cat /etc/crontab
* * * * * command ☜☜☜一一对应☞☞☞ minute hour day month week command
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件(如:test.sh)。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如:month字段的值如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,3,5,7,8”
短杠(-):可以用整数之间的中杠表示一个整数范围,例如“3-7”表示“3,4,5,6,7”
正斜杠(/):可以用正斜杠指定时间的间隔频率,例如“0-23/6”表示每六小时执行一次。同时正斜杠可以和星号一起使用,例如*/1,如果用在hour字段,表示每一小时执行一次。
例1:每1分钟执行一次command
命令:* * * * * command
例2:每天的23:30执行一次command
命令:30,23 * * * command
例3:11月11日11点11分钟执行command
命令:11 11 11 11 * command
例4:每月2、12、22日的2 : 22执行一次command
命令:22 2 2,12,22 * * command
例5:凌晨12点到凌晨6点之间,每隔二小时重启ybt
命令:* 0-6/2 * * * /etc/init.d/ybt restart
crontab [ -u user ] [ -l | -r | -e ] [ -i ]
-u user:指定管理给定用户的crontab,只有超级管理员用户才能管理,普通用户不能使用此选项;
-l:列出当前用户或者指定用户的crontab到标准输出。
-r:移除当前用户或者指定用户的所有定时任务,即删除/var/spool/cron/USERNAME文件;(危险,没有交互式操作提示)
-e:编辑当前用户的或者指定用户的crontab,如果没有定时任务,会作为一个新的文件编辑,编辑默认是以vi编辑器来编辑,可以通过显式设定VISUAL或EDITOR环境变量来修改使用指定的编辑器来编辑。一但编辑的crontab保存退出后,crontab会自动被安装成定时任务计划。
-i:在使用-r选项移除所有任务时提示用户确认信息;
1.先准备一个sh脚本,方便后续测试添加的定时任务,是否生效;例如下面我自己写的一个简单sh脚本,打印输出当前时间和”Hello World”
2.在命令窗口输入“crontab -e”,添加定时任务
3.在命令窗口输入“crontab -l”,查看定时任务是否已经添加
4.在命令窗口输入“chmod +x [执行文件的绝对路径]”,设置可执行权限
例如:chmod +x /data/test.sh
说明:如果要执行的文件不设置可执行权限,可能会提示/bin/sh: /data/test.sh: Permission denied(拒绝访问)错误,添加的定时任务不会生效
5.测试。在命令窗口输入“cat /var/spool/mail/weblogic”,就可以验证添加的定时任务是否生效
备注要点:
1.“cat”命令查看文件的路径以系统提示的路径为准,一般打印输出文件会在/var/spool/mail/目录下
2.添加定时任务要执行的文件路径一定要写绝对路径,否则会提示No such file or directory(没有这样的文件或目录)错误
3.定时任务执行特殊的字符需要进行转义,否则会报错,例如:百分号% 转义 \%
4.如果定时任务脚本中涉及使用到环境变量,必须在脚本中重新定义,不然,定时任务可能识别不了
5.测试定时打印输出的内容不会在命令窗口显示,一般会保存在/var/spool/mail/目录下文件中,前提是设置了允许打印,例如我前面添加的第二个定时任务,因为在后面加了“>/dev/null 2>&1”,所以就不会打印输出结果,其实定时任务已经生效了
*/10 * * * * /data/test.sh >/dev/null 2>&1 每10分钟执行一次/data/目录下test.sh脚本 不打印在任何地方
说明:> 代表重定向到哪里,/dev/null 代表空设备文件,>/dev/null 表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。