linux如何用ftp脚本自动下载文件

我一直觉得黑客就应该把图形画界面丢弃 , 这一直是我的坚持 , 所以我就学写一些脚本 , 毕竟自己写脚本也有乐趣 , 还能写写一些文章 , 挺好玩的 。
在internet中最火热的应用就是文件传输 , 其中最简单的就是FTP(文件传输协议) 。在基本层面上 , 所有的internet交互都是基于文件传输 , web浏览器请求html文档及其相关的图片文件 , 聊天服务器来回转发消息 , 发发邮件 , 这个都是属于文件传输 。
最初的ftp程序仍未消失 , 尽管界面粗糙 , 功能强大 , 值得善加利用 。ftp程序还有后继者 , 特别是fileZilla和NcFTP , 加上漂亮的用户界面 , 用起来更加友好 。借助一些shell脚本包装器 , ftp在文件上传和下载方面仍旧表现不错 。
我写了点bash脚本来从ftp服务器上下载文件 , 当然是匿名用户登入 , 文章最后面我会把源码发出来 。

linux如何用ftp脚本自动下载文件

文章插图
 
接下来就是拿我们公司的ftp就可以拿来玩玩!之前文章大伙就知道咱公司的ftp的ip为:192.168.1.251
我登入ftp匿名服务器的账户看看上面有啥东西 。
linux如何用ftp脚本自动下载文件

文章插图
 
Test是我建的 , 用来做测试的 。
【linux如何用ftp脚本自动下载文件】那好 , 我们开始啦
./ftpget.sh ftp://192.168.1.251/pub/test
linux如何用ftp脚本自动下载文件

文章插图
 
你看吧 , 下载成功!!!
linux如何用ftp脚本自动下载文件

文章插图
 
我解释一下工作原理
核心部分就是传给ftp程序的一系列命令 , 这说明了批处理文件的本质:就是将指令传给单独的程序 , 使得接受程序认为是用户输入的 。
我就把源码给到大家 。
#!/bin/bash#Date 2019-09-17PATH=/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATH hostname=192.168.1.251anonpass="$LOGNAME@$(hostname)" if [ $# -ne 1 ] ; then echo "Usage:$0 ftp://..." exit 1fiif [ "$(echo $1 | cut -c1-6)" != "ftp://" ];then echo "$0: Malformed url. I need if to start with ftp://" >&2 exit 1fi server="$(echo $1 | cut -d/ -f3)"filename="$(echo $1 | cut -d/ -f4-)"basefile="$(basename $filename)"echo ${0}:Downloadin $basefile from server $server ftp -np << EOFopen $serveruser ftp $anonpassget "$filename" "$basefile"quitEOF if [ $? -eq 0 ];then ls -l $basefilefi exit 0在最后 , 我提一提最厉害的黑客肯定是只打命令的 , 还有自己写的脚本 , 还可以自己写工具 , 大伙真的对linux有兴趣 , 可以私信加群讨论 , 我们一直是专心研究技术的 。




    推荐阅读