Linux为用户新增定时任务(crontab命令)

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,如下图所示:
cron表达式
以下举例比较常见的表达式

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 ~]# 

定时任务实现数据库备份

参看博客:Linux定时任务实现Oracle数据库每天进行全库备份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值