shell调用sftp实现自动批量上传or下载

来源:互联网 发布:艾瑞数据报告 编辑:程序博客网 时间:2024/05/16 08:31

最近项目需要自动FTP批量上传文件或下载文件。最快的完成方式就是在shell里调用相关的命点击打开链接令,并用crontab调用shell脚本实现周期性FTP批理处理。

当前流行的FTP分为 ftp vs sftp,关于这二者的的样例各举一个。

    注意:在编写shell脚本时需要特别注意脚本格式是windows or unix,因为换行符会引出一些莫名的错误。

cd /PATH_YOU_WANT_TO_UPLOAD(DOWNLOAD)  ftp -niv <<- EOF  open IP_ADDRESS  user USERNAME PASSWORD  ascii(or bin)  put *(or get)  bye  EOF
引用:http://blog.chinaunix.net/uid-20526681-id-3549245.html

#!/bin/bashlftp -u user,password sftp://IP:Port <<EOF or lftp -e "put theFile; quit" -u username,password sftp://remotehostcd direcorylcd local directoryget file.gz#put file.gzbyeEOF

引用:http://seanliu.sa.blog.163.com/blog/static/102965911200910164850382/


#!/bin/bash#=====================================================#功能:自动生成脱机文件上,并将文件上传银联FTP服务器##作者:jingdong#日期:2016-04-29#===================================================== #########初始配置数据#################################SRCDIR=${HOME}/run/data#FTP目录DESDIR=test#IPIP=xxxxxxxxx #脱机消费文件成参数#文件记录条数LINE=1000#文件生成清算日期(需要变更操作)#DATE=20140507DATE=`date +%Y%m%d`#文件目录DIR=${SRCDIR}/${DATE} #######生成脱机文件###################################产生文件offline ${DATE} ${LINE} #######上传脱机文件###################################获取文件cd ${DIR} ; FILES=`ls` for FILE in ${FILES}do    echo ${FILE}#发送文件 (关键部分)sftp://${IP} <<EOF cd ${DESDIR}/lcd ${DIR}put ${FILE} byeEOF done



参考:http://my.oschina.net/u/1377935/blog/262209?fromerr=IAoXP5jQ

?


0 0
原创粉丝点击