export PATH=/home/SMART_TRIAL:/home/SMART:/usr/local/bin:/${PATH}
export LANG=ja_JP.UTF-8
cat /tmp/baihen/tablelist_kanzen | head -n 2 |
while read svip dbname ugp tname user pwd cols;
do
echo "select * from dbcyber.dbo.NaFuDaPrintHistory where CONVERT(CHAR(8), registered, 112) = 20170208" | java -jar /home/SMART_TRIAL/jd2s.jar -s10.100.2.118:dbcyber:sa:dbadmin -q- >/tmp/10.100.2.118
cp /tmp/baihen/table_${tname} /tmp/baihen/table_${tname}_tmp
if [ $cols != "0" ] ; then
echo ${cols} | sed s/_/ /g | tov |
while read num ; do
echo ${num}
#cat /tmp/baihen/table_${tname}_tmp | awk $"${num}"=($"${num}"=="19000101000000"?"_":substr($"${num}",1,4)"/"substr($"${num}",5,2)"/"substr($"${num}",7,2)"_"substr($"${num}",9,2)":"substr($"${num}",11,2)":"substr($"${num}",13,2)) >/tmp/baihen/tmp
cat /tmp/baihen/table_${tname}_tmp | awk $"${num}"=substr($"${num}",1,4)"/"substr($"${num}",5,2)"/"substr($"${num}",7,2)"_"substr($"${num}",9,2)":"substr($"${num}",11,2)":"substr($"${num}",13,2) >/tmp/baihen/tmp
mv /tmp/baihen/tmp /tmp/baihen/table_${tname}_tmp
done
fi
### Step3.そのた処理
cat /tmp/baihen/table_${tname}_tmp | sed s/ /,/g;s/_/ /g;s/, ,/,\\N,/g;s/, ,/,\\N,/g;s/, /,\\N/g | gzip -cf >table_${tname}.gz
rm /tmp/baihen/table_${tname}_tmp
### Step4.処理後のPostgreへINPUTのファイルをPostgreサーバーへ送付(圧縮ファイルで送付してから解凍)
scp table_${tname}.gz root@10.100.2.90:/tmp/data
ssh -n root@10.100.2.90 "gunzip /tmp/data/table_${tname}.gz"
### Step5.Postgreへ投入対象テーブルクリアして、データ投入
ssh -n root@10.100.2.90 " /opt/postgres/9.3/bin/psql -U postgres -d ${dbname} -t -p 5432 -c \"truncate table ${tname} ; copy ${tname} from /tmp/data/table_${tname} DELIMITER ,;\""
done
exit 0
来源张永光的博客