Linux中Oralce 10G自动备份

脚本文件 backup.sh

#!/bin/sh
rq=`date '+%y_%m_%d_%H_%M_%S'`
echo $rq
su - oracle -c "exp user/userpwd file=/home/oracle/expdat_$rq.dmp"
exit 0

 

编写完shell脚本之后,要对其赋予可执行权限及其用户所属:
# chmod 777 backup.sh
# chown oracle backup.sh

同时,确保备份的文件目录归属于oracle用户:
# chown –R oracle.oinstall /home/oracle

 

# crontab –e
0 9-20/1,11 * * 1-5 /home/backup.sh
(设置为每周工作日9点到晚8点每隔一小时自动备份)


cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动启动,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

/sbin/service crond reload //查看服务状态

 


# /etc/init.d/crond start //启动服务
# /etc/init.d/crond stop //关闭服务
# /etc/init.d/crond restart //重启服务
# /etc/init.d/crond reload //重新载入配置

 

你也可以将这个服务在系统启动的时候自动启动:

在/etc/rc.d/rc.local这个脚本的末尾加上:

/sbin/service crond start

 

直接用crontab命令编辑

  cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

  

  crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

  crontab -l //列出某个用户cron服务的详细内容

  crontab -r //删除没个用户的cron服务

  crontab -e //编辑某个用户的cron服务

 
  例如: root查看自己的cron设置:crontab -u root -l

                root想删除fred的cron设置:crontab -u fred -r


  在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e


  进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls

        这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
  分钟 (0-59)
  小時 (0-23)
  日期 (1-31)
  月份 (1-12)
  星期 (0-6)//0代表星期天


  除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

       

  每两个小时
  0 */2 * * * echo "Have a break now." >> /tmp/test.txt    //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了


  晚上11点到早上8点之间每两个小时,早上八点
  0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt


  每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
  0 11 4 * 1-3 command line

 

附:
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。
2)也可在Linux中转换:
首先要确保文件有可执行权限
# chmod a+x filename
然后修改文件格式
# vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq!(存盘退出)
最后再执行文件
# ./filename

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值