首先我们要写数据库备份的脚本
#!/bin/sh #如果不清楚 ORACLE_HOME 则 先进入 su - oracle 然后 echo ORACLE_HOME export ORACLE_BASE=/home/oracle/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orclgbk #需要备份的数据库 export ORACLE_TERM=xterm export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export LANG=C export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。 export NOWDATE=`date "+%Y%m%d%H%M%S"` #获取当前时间 export FilePath=/home/oracle/backup/dms #文件备份的路径 export DELTIME=`date -d "7 days ago" +%Y%m%d` #获取七天之前的日期 export SpecFilePath=/home/oracle/app/oracle/admin/orclgbk/dpdump #备份的路径 echo "========备份开始=========" echo "========备份路径=$FilePath===========" # oracle用户的系统环境变量路径:/home/oracle/.bash_profile bakdir=/home/oracle/backup #备份文件路径,需要提前创建好 cd $bakdir #进入备份目录 #指定数据库实例 export ORACLE_SID=ORCLGBK expdp user/password@ORC file=user_${NOWDATE}.dmpd logfile=user.log schemas=user #备份user用户下的数据内容 cd ${SpecFilePath} if [ -f user_${NOWDATE}.dmpd ] then #将文件移动到特定文件夹下 mv user_${NOWDATE}.dmpd ${FilePath}/user_${NOWDATE}.dmpd cd ${FilePath} #在特定文件夹下进行压缩打包处理 tar -cvf user_${NOWDATE}.dmpd.tar user_${NOWDATE}.dmpd gzip user_${NOWDATE}.dmpd.tar #打包处理完后删除原有数据库文件 rm -rf user_${NOWDATE}.dmpd fi #清理一星期之前的数据库文件 rm ${FilePath}/user_${DELTIME}*
然后启动定时任务
crontab [-u username] //省略用户表表示操作当前用户的crontab -e (编辑工作表) -l (列出工作表里的命令) -r (删除工作作)
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一
实例
实例1:每1分钟执行一次myCommand
* * * * * myCommand
实例2:每小时的第3和第15分钟执行
3,15 * * * * myCommand
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb
* */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart