【Shall脚本】定时在线备份上传

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

服务器环境不同,部分设置也不同。
1.Windows环境:
对于定时功能,在C盘建立一个目录DB2Backup,将以下bat脚本放入其中,使用DB2的任务中心设置一个OS脚本定时执行任务,调用这个自己写bat脚本即可完成,相关bat脚本为:
@echo off
set ip=%1
set user=%2
set passwd=%3
set dbname=%4
for /l %%i in (1,1,4) do (
if "%1"=="" goto usage
if "%1"=="/?" goto usage
if "%1"=="help" goto usage
Shift
)
echo open %ip%> bugfree_ftp.ftp
echo user %user%>> bugfree_ftp.ftp
echo %passwd%>> bugfree_ftp.ftp
echo bin>> bugfree_ftp.ftp
echo prompt>> bugfree_ftp.ftp
echo cd pub>> bugfree_ftp.ftp
echo put %dbname%*>> bugfree_ftp.ftp
echo quit>> bugfree_ftp.ftp
start /b /wait ftp -n -s:bugfree_ftp.ftp
del %dbname%*
exit
:usage
echo Usage: ftpupload.bat IP Username Password Dbname
在任务中心中使用的脚本为
db2cmd
db2 CONNECT TO SAMPLE
db2 BACKUP DATABASE SAMPLE TO "C:/DB2Backup" WITHOUT PROMPTING
cd C:/DB2Backup
ftpupload.bat 9.123.108.154 ftp ftp sample
其中9.123.108.154为FTP地址,ftp是用户名,第二个ftp是密码,sample为数据库名字
2.Linux环境
定时功能可以使用DB2的任务中心,也可以使用crontab
首先在/usr/local/bin下建立一个shell脚本ftpupload.sh,修改其权限为755
其内容为
#!/bin/bash
db2 CONNECT TO SAMPLE
db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS
db2 UNQUIESCE DATABASE
db2 TERMINATE
db2 DEACTIVATE DB SAMPLE
db2 BACKUP DATABASE SAMPLE TO "/tmp" WITHOUT PROMPTING
cd /tmp
ftp -n -v $1 << EOT
ascii
user $2 $3
prompt
cd pub
put $4*
bye
EOT
rm $4*
使用命令crontab -e 在其中加入一句:
00 18 * * 5 /usr/local/bin/ftpupload.sh 9.123.108.154 ftp ftp SAMPLE >/dev/null 2>&1 &
使用/etc/init.d/crond restart 重新更新一下定时任务就可以了
含义是在每周五的18:00 整以上述形式运行脚本进行备份和上传。

 

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

posted @ 2012-12-09 14:28  gnuhpc  阅读(810)  评论(0编辑  收藏  举报