先设置 免密码
在当前用户目录下创建.pgpass文件
localhost:5432:*:postgres:password
ip地址:端口:数据库名:用户名:密码
例如: 172.16.5.85:5432:test:postgres:xxx
赋权 : chmod -R 0700 .pgpass
导出脚本
./export_table.sh /root/export_table.txt /root/temporary
第一个参数 存放表名的文件
第二个参数 保存路径
#!/bin/sh
# 存放表名的文件
table_name_file=$1
# 保存路径
save_path=$2
for line in `cat $table_name_file`
do
pg_dump -h 172.16.5.85 -U postgres -p 5432 -d eimos_business -t $line --inserts >$save_path/$line.sql
echo $line
done
导入脚本
先删除 需要导入的表(具体原因看,导出sql脚本的内容)
./import_table.sh /root/temporary /root/logs
第一个参数 数据文件存放路径
第二个参数 日志文件存放位置
#!/bin/sh
# 遍历的文件夹
import_path=$1
# 保存路径
save_path=$2
for file in ${import_path}/*
do
file_name=`basename $file`
psql -h 172.16.5.85 -p 5432 -U postgres -f $import_path/$file_name test >> $save_path/$file_name.log
echo $file_name
done
export_table.txt中存放内容
public.stu1
public.stu2
public.stu3
ods.stu4
ods.stu5
analyse.stu6
analyse.stu7