一、具体需求
系统之间会存在sftp文件传输需求,经常是利用储存过程去生成指定表的数据,并将数据导入到服务器,直接推送或者对端获取。
二、实现方式
#!/bin/bash
source /etc/profile
. ~/.bash_profile
time=$(date "+%Y%m%d")
PGPASSWORD=woshimima psql -U public -d root -h 192.168.1.1 -p 33 -f /file/proc.sql
PGPASSWORD=woshimima psql -X -A -d "public" -U "root" -h "192.168.1.1" -p "33" -F '|' -t -c "select * from tablename" > /file/tablename_${time}.txt
proc.sql 中是执行sql,例如 call proc_name();
相对应字段说明:woshimima --对应数据库密码
public --数据库名,默认public
root --数据库用户名
192.168.1.1 --数据库ip
33 --数据库端口号
‘|’ --生成文件中字段之间的分隔符
其他不需要变化,直接用即可实现需求。