使用ssh實現oracle數據庫備份文件自動異地存儲
2024-08-29 13:43:08
供稿:網友
使用eXPort DATE=$(date +%Y%m%d) 日期參數和成功建立ssh RSA密匙對是要害 首先在Oracle數據庫服務器(211.96.97.52)設定自動備份腳本 -bash-2.05b$ more /opt/oracle/PRodUCt/movedata/movedata1.sh
ORACLE_HOME=/opt/oracle/product/9.0.2
export ORACLE_HOME
. /opt/oracle/product/.bash_profile
export DATE=$(date +%Y%m%d) #DATE變量的賦值代表當前日期
/opt/oracle/product/9.0.2/bin/exp goldring/123456@szdb file=/data/OracleDB_Backup/goldring.dmp log=/data/OracleDB_Back
up/loggoldring.dmp consistent=yes
/opt/oracle/product/9.0.2/bin/exp jltgame/123456@szdb file=/data/OracleDB_Backup/jltgame$DATE.dmp log=/data/OracleDB_Ba
ckup/logjltgame$DATE.dmp consistent=yes
/opt/oracle/product/9.0.2/bin/exp userid=oraclebackup/"abcd456&*("@szdb owner=moonprincess file=/data/OracleDB_Backup/moon
princess.dmp log=/data/OracleDB_Backup/logmoonprincess.dmp consistent=yes
#FTP -n 10.0.0.3 < /opt/oracle/product/movedata/ftpcommand把/opt/oracle/product/movedata/movedata1.sh加入定時任務自動執行
-bash-2.05b$ crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.2257 installed on Wed Feb 2 13:40:43 2005)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
0 2 * * * sh /opt/oracle/product/movedata/movedata1.sh
0 6 * * * rm -f /opt/oracle/product/9.0.2/oradata/szdb/archive/*然后在遠程備份存儲服務器(61.144.222.111)編寫如下遠程拷貝腳本:(因為我遠程oracle數據庫的備份是放在211.96.97.46上,所以腳本中的ip不是oracle數據庫服務器的211.96.97.52)
[log@gameserver log]$ more /home/log/52.sh
export DATE=$(date +%Y%m%d) #注重:該DATE變量賦值的格式要和遠程oracle數據庫的DATE變量賦值格式一致
scp log@211.96.97.46:/data/OracleDB_Backup/jltgame$DATE.dmp /backup/52backup
scp log@211.96.97.46:/data/OracleDB_Backup/logjltgame$DATE.dmp /backup/52backup將52.sh加入定時任務自動執行
[log@gameserver 37backup]$ crontab -l
30 3 * * * /home/log/52.sh 這時因為/home/log/52.sh script腳本沒有設定輸入密碼,所以還需要建立RSA的密鑰
在61.144.222.111生成log用戶RSA密匙對
[log@gameserver log]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/log/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /log/.ssh/id_rsa.
Your public key has been saved in /log/.ssh/id_rsa.pub.
The key fingerprint is:
0a:be:f4:c6:55:50:d2:7a:e7:e7:ba:66:cd:d7:2f:26 log@gameserver生成的過程中提示輸入密鑰對保存位置,直接回車,接受默認值就行了。接著會提示輸入一
個不同于你的passWord的密碼,直接回車,讓它空著。當然,也可以輸入一個。(我比較懶
,不想每次都要輸入密碼。) 這樣,密鑰對就生成完了。
其中公共密鑰保存在 ~/.ssh/id_rsa.pub
私有密鑰保存在 ~/.ssh/id_rsa
然后改一下 .ssh 目錄的權限,使用命令 "chmod 755 ~/.ssh"
[log@gameserver log]$ chmod 0755 ~/.ssh/
之后把這個密鑰對中的公共密鑰拷貝到211.96.97.46的log用戶,并保存為
~/.ssh/authorized_keys[log@gameserver log]# scp /home/log/.ssh/id_rsa.pub 211.96.97.46:/home/log/.ssh/authorized_keys此時調用/home/log/52.sh 一下,測試以下即大功告成注重1:建立這對密鑰以后,在61.144.222.111上遠程登錄211.96.97.46也不需要輸入帳號密碼了,這點很危險,所以慎用
注重2: id_rsa文件的權限必須是0700,否則密鑰對不能生效,導致還是必須要輸密碼才能建立連接
[log@waplb .ssh]$ pwd
/home/log/.ssh
[log@waplb .ssh]$ ll
total 12
-rwx------ 1 log log 883 2月 2 17:16 id_rsa
-rwxr-xr-x 1 log log 219 2月 2 17:16 id_rsa.pub
-rwxr-xr-x 1 log log 445 2月 2 16:45 known_hosts
參考:http://www.chinaunix.net/jh/4/343905.Html
http://www-900.ibm.com/developerworks/cn/linux/l-backup/index.shtml
http://www-900.ibm.com/developerWorks/cn/linux/security/openssh/part1/index.shtml#10