Linux crond服务介绍
crond服务是Linux系统默认会安装的服务工具,与windows下的计划任务类似,用来周期性的执行某种任务或等待处理某些事件的一个守护进程,并且启动主机会自动默认启动crond进程,crond进程会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crond服务可以实现系统周期性所要执行的工作,比如:数据库周期性备份、重要文件异机备份、数据库过期归档日志清理、日志清理等等。
crond服务常用的启停、重启命令
#启动定时任务服务
/sbin/service crond start
#关闭定时任务服务
/sbin/service crond stop
#重启定时任务服务
/sbin/service crond restart
#重新载入配置
/sbin/service crond reload
#查看定时任务服务状态
/sbin/service crond status
编写测试shell脚本
创建一个空脚本文件授权读写以及可执行权限
#创建一个空脚本文件
[oracle@db01 orabackup]# touch backtest.sh
#授权读写以及可执行权限
[root@db01 orabackup]# chmod 755 backtest.sh
[root@db01 orabackup]# ll
-rwxr-xr-x 1 oracle oinstall 0 11-15 10:28 backtest.sh
编辑测试脚本
[root@db01 orabackup]# vi backtest.sh
#!/bin/sh
echo .........................start.........................
echo 孑木文学的博客:https://blog.csdn.net/weixin_39699061
echo .........................stop..........................
~
~
~
"backtest.sh" 6L, 193C written
测试脚本执行
[root@db01 orabackup]# ./backtest.sh
.........................start.........................
孑木文学的博客:https://blog.csdn.net/weixin_39699061
.........................stop..........................
[root@db01 orabackup]#
crontab命令创建定时任务
crontab命令
crontab [-u username] #省略用户表表示操作当前用户的crontab
-e #(编辑工作表)
-l #(列出工作表里的命令)
-r #(删除工作作)
切换到Oracle用户创建定时任务
#切换到Oracle用户创建定时任务(每天凌晨1点执行定时任务)
[root@db01 ~]# su - oracle
[oracle@db01 ~]$ crontab -e
00 1 * * * /backup/orabackup/backtest.sh >> /backup/orabackup/bak.out 2>&1
~
~
~
~
~
关于cron表达式可以参考 http://cron.qqe2.com,如下图所示:
以下举例比较常见的表达式
0 0 1 * * ? #每天凌晨1点执行
0 0 1,13 * * ? #每天凌晨1点以及下午1点执行
0 0 0 1 * ? * #每月1日的凌晨执行
0 0 1 1 * ? * #每月1日的凌晨1点执行
0 0 4 L * ? #每月最后一天凌晨4点执行
0 15 10 15 * ? #每月15日上午10:15触发
查看已创建的定时任务
#查看已创建的定时任务
[oracle@db01 ~]$ crontab -l
00 1 * * * /backup/orabackup/backtest.sh >> /backup/orabackup/bak.out 2>&1
定时任务服务重启
#执行定时任务服务重启
[oracle@db01 ~]$ /sbin/service crond restart
rm: 无法删除 “/var/run/crond.pid”: 权限不够 [失败]
启动 crond:cardmgr 已经在运行 [失败]
#oracle用户没有权限执行该命令,退出Oracle用户到root用户执行定时任务服务重启
[oracle@db01 ~]$ exit
logout
[root@db01 ~]# /sbin/service crond restart
停止 crond: [确定]
启动 crond: [确定]
[root@db01 ~]#
查看定时任务服务状态
[root@db01 ~]# /sbin/service crond status
crond (pid 24844) 正在运行...
[root@db01 ~]#