目录
1、先下载外围系统dat文件到本地服务器
#!/bin/bash
sftp_Host="10.4.1.2"
sftp_userName="gqgl"
sftp_passWord="gqgl"
sftp_port=22
#远端机器文件路径
sftpRemotePath="/myhome"
#下载到本地文件路径
sftpLocalPath="/batchfile"
sftpLoadPath=$sftpRemotePath
fileFilter=$1
cd $sftpLocalPath
# SFTP非交互式操作
sftp_download()
{
echo "下载文件"
expect <<- EOF
set timeout 5
spawn sftp -P $sftp_port $sftp_userName@$sftp_Host
expect {
"(yes/no)?" {send "yes\r"; expect_continue }
"*assword:" {send "$sftp_passWord\r"}
}
expect "sftp>"
send "cd $sftpLoadPath \r"
expect "sftp>"
set timeout -1
send "get C_CBS_BIFM06_$fileFilter_ADD.dat \r"
expect "sftp>"
#有多少文件就下载多少个
send "get C_CBS_DPFM02_$fileFilter_ADD.ctl \r"
expect "sftp>"
send "bye\r"
EOF
}
sftp_download
if [ 1$? -ne 10 ]; then #返回值不是0,存储过程运行失败
echo 1
exit 1
fi
echo 0
exit 0
2、将外围系统dat文件放进数据库
#!/bin/bash
echo 'start imp table'
id=$1
datenow=$2
tablename=$3
#往后加一天
newdate=$(date -d "$2 1 days" "+%Y%m%d")
echo ${newdate}
#
#ctl文件路径
ctl_path=/dbhome/oracle/etl/
#数据库服务器
db=10.2.4.77
#服务名
servername=gqxt
#端口号
port=1521
#数据库用户名
orauser=equity
#数据库用户名
orapasswd=equity
#昨天
#datenow=$(date -d "1 days ago" +%Y%m%d)
while true
do
uppname=$(echo $tablename | tr 'a-z' 'A-Z')
cd $ctl_path
if [ -