发布网友
共2个回答
热心网友
1、某一个时段自动备份用crontab计划任务实现即可,例如
crontab -e添加
0 4 * * * /opt/bak.sh
2、删除三天前的备份文件用find . -type f -mtime +3 -exec rm -rf {} \;实现
3、异地备份你就scp到其他主机上一份
4、实例bak.sh:
#!/bin/sh
today=`date +%Y%m%d%H`
bakfile=/opt/backup/bak_${today}.dmp
logfile=/opt/backup/logs/bak_${today}.log
find /opt/backup -type f -mtime +3 -exec rm -rf {} \;
#执行某些sql语句
#echo -e "select count(*) from table purge;"| sqlplus -s 'user01/123456'
exp user01/123456 file=$bakfile TABLES=T1,T2 log=$logfile
#你需要提前实现ssh无密码访问或者安装sshpass之类的软件
scp $bakfile root@172.16.1.7:/opt/backup/追问不是很懂,比如现在有一个数据库叫zjszyy14 ,能写一个实例吗?
热心网友
@echo off
@rem 数据库开始备份......
set V_DATE=%date:~0,4%%date:~5,2%%date:~8,2%
set V_HOUR=%time:~0,2%
if "%time:~0,1%" == " " set V_HOUR=0%time:~1,1%
set V_DATETIME=%V_DATE%%V_HOUR%%time:~3,2%%time:~6,2%
set ORACLE_HOME=F:\oracle\proct\10.2.0\client_1
"F:\oracle\proct\10.2.0\client_1\BIN\exp.exe" user/passwd@IP_SID BUFFER=307200 file=F:\dbbak\user%V_DATETIME%.dmp log=F:\dbbak\user%V_DATETIME%.log statistics=none
"C:\Program Files\WinRAR\WinRAR.exe" a -df -ep1 -afzip F:\dbbak\user%V_DATETIME%.zip F:\dbbak\*.dmp F:\dbbak\*.log
@REM zip -Am zipFile.zip *.dmp
forfiles /p "F:\dbbak" /m *.zip /d -30 /c "cmd /c del @path"