突发一股idea,我的linux服务器上的tomcat项目,虽然不能一直跑(别问我为啥不能一直跑,打开你的想象力),但是我可以设置个定时任务让他在固定时间启动和关闭啊。20大洋两个月的linux服务器,可不能浪费了,要榨干它所有的价值。对,榨干价值!于是利用定时任务在每天22点启动tomcat,早7点10分关闭它。
因为买来的这个服务器自带crontab,而且操作简单,所以定时执行shell脚本的任务,选择了crontab。所以在此记录下。对于没有crontab的服务器,可以先安装下。
crontab的安装
1 | yum install vixie-cron |
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
crontab启动关闭等操作
1 | service crond start //启动服务 |
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig –level 35 crond on
也可以用设置开机自动启动crond服务:1
chkconfig crond on
查看各个开机级别的crond服务运行情况1
chkconfig –list crond
crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
可以看到2、3、4、5级别开机会自动启动crond服务
取消开机自动启动crond服务:1
chkconfig crond off
crontab定时任务操作
1 | cat /etc/crontab //查看crontab,会有注释说明 |
先查看下crontab的状态
再看下crontab的所有定时任务
通过查看crontab知道,一行定时任务各部分的意思是啥
crontab添加配置解释
* * * * * user_name command to be executed
- user_name 表示执行定时任务的用户 不指定默认当前用户
- command to be executed 表示要执行的脚本语句。
- 前面五位*号是定时执行的时间周期 说明如下:
第一个 * 表示分钟:取值范围0-59
第二个 * 表示小时:取值范围0-23
第三个 * 表示天数:取值范围1-31
第四个 * 表示月份:取值范围1-12
第五个 * 表示每周:取值范围0-6 - 使用(-)可以划定范围
如:0 0-3 * * * 脚本
表示每天0-3点整执行脚本 - 使用(,)可以枚举时间
如: 0,15,30,45 * * * * 脚本
表示每个小时的0分,15分,45分,30分会执行脚本 - 使用(/)可以指定间隔
如:* */8 * * * 脚本
表示每8小时执行脚本 - 组合用法
0-20/10 * * * * 脚本
表示在前20分钟内每隔10分钟执行脚本