1. 程式人生 > >linux 復制文件到另一個服務器腳本 scp expect

linux 復制文件到另一個服務器腳本 scp expect

arch blog 可用 命令 ora pan 介紹 文件 ack

這裏用到了expect 命令,需要先安裝tcl 然後 安裝expect

安裝不再介紹可以參考下面鏈接:https://www.cnblogs.com/daojian/archive/2012/10/10/2718390.html

腳本代碼:oracle備份

#!/bin/sh
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcleas
export ORACLE_TERM
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBARY_PATH
=$ORACLE_HOME/lib:/lib:/usr/lib export LANG=C export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK expdp name/password directory=ORABACK schemas=xxxxx dumpfile=OKINGDEE"`date +%Y%m%d`".dmp logfile=OKINGDEE"`date +%Y%m%d`".log tar -czPf /home/oraback/OKINGDEE"`date +%Y%m%d`".tar.gz /home/oraback/OKINGDEE"`date +%Y%m%d`".dmp /home/oraback/OKINGDEE"
`date +%Y%m%d`".log rm -rf /home/oraback/OKINGDEE"`date +%Y%m%d`".dmp /home/oraback/OKINGDEE"`date +%Y%m%d`".log find /home/oraback -type f -name "*.tar.gz" -mtime +30 -exec rm -rf {} \;

腳本代碼:將oracle備份文件 復制到另一臺服務器 實測可用【expect會讓裏面變量無法使用 下面這種方法是可行的】

#!/usr/local/bin/expect

set proj_dir /home/oraback/OKINGDEE
set remote_dir /home/backdata/out
/ set password bicon@123set date2 [exec date "+%Y%m%d"] spawn scp $proj_dir$date2.tar.gz root@10.1.2.20:${remote_dir} set timeout 300 expect { "(yes/no)?" { send "yes\n" expect "*assword:" { send "$password\n"} } "*assword:" { send "$password\n" } } expect eof

linux 復制文件到另一個服務器腳本 scp expect