linux ftp 自动下载数据后更新到mysql数据库中

在项目中有个需求,需要重ftp下载数据,然后更新到mysql数据库中,由于文件较大,也不希望在数据库服务器上部署java应用,所以写了一段shell脚本,定时重ftp下载数据,然后跟新到mysql数据库中,定时任务这里没写。


#!/bin/bash

MYSQL_CSV_FORMAT="fields terminated by ',' optionally enclosed by '\"' escaped by '\"' lines terminated by '\r\n'"
#echo "MYSQL_CSV_FORMAT=$MYSQL_CSV_FORMAT"
HOST=ftp地址
PORT=端口号
USERNAME=用户名
PASSWORD=密码
DST_FOLDER=/data/mysql/import/
DST_FILENAME=/2013123111303.csv
i=1
csv=30.csv
date=$(date +%Y%m%d%H)
#filename=$(($date-$i))$csv

array=($(($date-$i))$csv $(($date-2))$csv $(($date-3))$csv $(($date-4))$csv)

for name in ${array[@]}
do
echo "----------------------------------"
echo ${name}
/usr/kerberos/bin/ftp -u -n $HOST $PORT<<EOF
user $USERNAME $PASSWORD
binary
lcd $DST_FOLDER
get ${name}
quit
#bye
EOF

cd $DST_FOLDER
deletefile=$(($(date +%Y%m%d)-$i))*
echo "delete files ="$deletefile
rm -rf $deletefile
isfile=$(ls|grep ${name})

if [ "${name}" = "$isfile" ]; then
echo "download success"
echo "data import start"
mysql<<MYSQLEOF
use vwdas_newcp

truncate table tab_currentweather_grid;

load data infile '$DST_FOLDER$name' into table tab_currentweather_grid $MYSQL_CSV_FORMAT;
select count(1) total from tab_currentweather_grid;


quit
MYSQLEOF
echo "data import end"
break 1;
else
echo "download fail!"
fi
done
echo "----------------------------------"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值