【Linux】crontab 定时任务

时间:2021-12-23 21:51:34
7月份,公司海外运营国发生数据库联接未释放,造成连接池连接不足的情况, 当时查询并没有及时解决问题, 为了避免现场同事多次人工重启系统的,因此写了个shell脚本,通过crontab 实现系统重启,但是自测时发现 执行脚本后,Linux服务器被DOWN掉,
 
10 17 * * * /star/star_8080/bin/reloadjboss.sh >>/star/star_8080/bin/reloadjboss.log 2>&1
 
 
 
最后整理下crontab指令的信息
 
通过crontab命令,我们可以在固定间隔的时间执行系统命令或者shell脚本,时间基本格式包括,分,时,日,月,周
 
1) 基本格式 :
*  *  *  *  *  command
分  时  日  月  周  命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
 
例如:
#每天10点每10分钟 执行 ls 命令
*/10 10 * * * ls
#每月1号2点执行 /boss/reload.sh 脚本
2 * 1 * * /boss/reload.sh
 
 
2) 指令格式详情
crontab [-u user] file crontab [-u user] [ -e | -l | -r ]
 
-u user:用来设定某个用户的crontab服务;
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。
 
 
 
3) 创建定时方法
1.crontab -e : 编辑某个用户的cron服务执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数
[root@haiwai ~]# crontab -e
00 02 * * * /home/building/cronstartbuild.sh
~
~
2.点击I 进入编辑模式设置需要执行的命令例如 00 02 * * * /home/building/cronstartbuild.sh
3. ESC 后,执行命令:wq保存退出
 
4) 查看当前设置的定时任务
[root@haiwai ~]# crontab -l
00 02 * * * /home/building/cronstartbuild.sh