话不多说,脚本如下
#!/usr/bin/bash
TimeDate=`date +%Y%m%d`
dirname=$TimeDate
#Local_Environment
USER=Jemmma
PASSWORD=Jemmma520
Local_Path=/batchfile/import/OPT/
#Remote__Environment
IP=ftp.jemmma.com
PORT=20021
Remote_Path=public/cod_sod_du/
function lftp_module(){
echo "Staring function lftp_module"
lftp -u ${USER},${PASSWORD} ${IP} -p ${PORT} <<EOF
lcd ${Local_Path}
cd ${Remote_Path}
lpwd
pwd
mirror ${dirname}
EOF
}
#MAIN
if [ -d ${Local_Path} ];then
lftp_module
else
mkdir -p ${Local_Path}
lftp_module
fi
部分解析
1)函数
shell的函数格式为function 函数名(){
内容
}
2)lftp命令格式
lftp -u ${USER},${PASSWORD} ${IP} -p ${PORT}
其实这就是lftp的命令格式,对应的变量名含义也很清晰
3)ftp命令
在登陆ftp服务器后,可以使用shell基本命令
如cd也是进入目录的指令,不过在这里进入的是ftp服务端的目录
pwd,显示当前目录
而带l的命令则是运行在本地服务器的指令
lcd则是进入linux服务器对应路径
4)lftp命令
mirror {xx} 意为下载目录
pget {xx} 意为下载文件
#Remote_Dir=${Remote_Path}${dirname}
#Remote_Path=public/jemmma/20240808
#filename=ZINVEST_US_EOD_20240808.txt