linux shell脚本连接mysql数据库并使用sftp上传文件

#!/bin/bash
db_host="xxx.xxx.xxx.xx"
db_port="3870"
db_user="xx"
db_pwd="xxxxxxxxxx"
db_name="xx"
#当天文件对应id,需配置
report_id="301"
date=`date --date='0 days ago' "+%Y-%m-%d"`
db_sql="select local_path from r_report_log where report_id = ${report_id} and date_report='${date}'"

#sftp相关信息,上传文件目标地址信息,需配置
sftp_user="xxxxxx"
sftp_pwd="xxxxxxxx"
sftp_port="22"
sftp_ip="xxxxxx"
#上传文件目录
ftp_path="/xx"

MYSQL="mysql -h${db_host} -u${db_user} -p${db_pwd} -P${db_port} -D${db_name} -A -N --default-character-set=utf8"

#文件全路径带文件名 /usr/local/file/my.zip
result="$($MYSQL -e "$db_sql")"

#待上传文件根目录 /usr/local/file
file_path="${result%/*}"

#文件名 my.zip
file_name="${result##*/}"

#重命名文件
file_date=`date --date='0 days ago' "+%Y%m%d"`
#文件后缀 .zip
file_suffix="${result##*.}"
#新文件名  分期-20180620.zip
new_file_name="分期-"${file_date}"."${file_suffix}

#复制文件并改名
if test -s ${result}; then
	\cp -r ${result} /${file_path}/${new_file_name}
fi

#lftp客户端采用sftp上传文件
#发送文件 (关键部分)
lftp -u ${sftp_user},${sftp_pwd} sftp://${sftp_ip}:${sftp_port} <<EOF
cd ${ftp_path}/
#上传新文件
lcd ${file_path}
put ${new_file_name}
by
EOF

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值