linux中通过FTP下载指定的文件方法

      /> cat > test25.sh
      #!/bin/sh
      #1. 测试脚本参数数量的有效性。   
      if [ $# -ne 2 ]; then
          echo "Usage: $0 ftp://... username" >&2
          exit 1
      fi
      #2. 获取第一个参数的前六个字符,如果不是"ftp://",则视为非法FTP URL格式。这里cut的-c选项表示按照字符的方式截取第一到第六个字符。
      header=`echo $1 | cut -c1-6`
      if [ "$header" != "ftp://" ]; then
          echo "$0: Invalid ftp URL." >&2
          exit 1
      fi
      #3. 合法ftp URL的例子:ftp://ftp.myserver.com/download/test.tar
      #4. 针对上面的URL示例,cut命令通过/字符作为分隔符,这样第三个域字段表示server(ftp.myserver.com)。
      #5. 在截取filename时,cut命令也是通过/字符作为分隔符,但是"-f4-"将获取从第四个字段开始的后面所有字段(download/test.tar)。
      #6. 通过basename命令获取filename的文件名部分。
      server=`echo $1 | cut -d/ -f3`
      filename=`echo $1 | cut -d/ -f4-`
      basefile=`basename $filename`
      ftpuser=$2
      #7. 这里需要调用stty -echo,以便后面的密码输入不会显示,在输入密码之后,需要再重新打开该选项,以保证后面的输入可以恢复显示。
      #8. echo "",是模拟一次换换。
      echo -n "Password for $ftpuser: "
      stty -echo
      read password
      stty echo
      echo ""
      #9. 通过HERE文档,批量执行ftp命令。
      echo ${0}: Downloading $baseile from server $server.
      ftp -n << EOF
      open $server
      user $ftpuser $password
      get $filename $basefile
      quit
      EOF
      #10.Shell内置变量$?表示上一个Shell进程的退出值,0表示成功执行,其余值均表示不同原因的失败。
      if [ $? -eq 0 ]; then
          ls -l $basefile
      fi
      exit 0
      CTRL+D
      /> ./test25.sh  ftp://ftp.myserver.com/download/test.tar stephen
      Password for stephen:
      ./test25.sh: Downloading from server ftp.myserver.com.
      -rwxr-xr-x. 1 root root 678 Dec  9 11:46 test.tar

时间: 2024-10-25 13:44:43

linux中通过FTP下载指定的文件方法的相关文章

linux中关于ftp查看不到文件列表的问题详解_Linux

今天配置linux服务器的ftp后,登录都正常,使用ftp工具登录后,所有目录都可以通过手工写路径访问,但是文件夹和文件列表看不到数据. 后来分析,总结原因得出结果是跟selinux有关,于是通过关闭selinux后尝试,ftp文件夹和文件列表都正常可以查看了. 如下2张图为解决前和解决后的截图: 1.解决前,通过输入正确的路径可以正常读取访问,但是看不到列表. 2.解决后,可以可视化查看列表数据. 在Linux下设置selinux有三种方法 一.在图形界面中: 桌面-->管理-->安全级别和

Linux中使用wget下载https类型文件报错解决方法

般我们远程调用下载文件直接用wget就可以,一般文件路径类型是http.如果有遇到是https就会下载出错,稍微不注意的新手朋友可能还认为是数据源出现问题.因为大脑不好用,所以刚才在有遇到这样问题的时候老左就顺带做一个记录,以便下次遇到这样的问题,以及有遇到同类问题的网友可以参照使用. 出现的错误大同小异类似上面的界面演示一样.其实我们仔细根据提示可以解决问题,只需要在wget后面加上--no-check-certificate就可以,需要一个认证下载指令而已. 比如我们可以修改成:  代码如下

linux中tar 压缩排除目录与文件方法

例1. 如我要压缩 /opt/apache/htdocs 这个文件夹 ,但是不将里面的图片文件夹uploads也压缩了. 可以用tar命令的--exclude 排除掉. 方法 压缩所有目录  代码如下 复制代码 tar -zcvf htdocs.tar.gz  /opt/apache/htdocs 排除一个目录  代码如下 复制代码 tar -zcvf htdocs.tar.gz  --exclude=/opt/apache/htdocs/uploads  /opt/apache/htdocs

Linux中使用split来分割合并文件

Linux中使用split来分割合并文件 我们使用split命令来完成: 用法:split [选项]... [输入 [前缀]]将输入内容拆分为固定大小的分片并输出到"前缀aa"."前缀ab",...:默认以 1000 行为拆分单位,默认前缀为"x".如果不指定文件,或者文件为"-",则从标准输入读取数据. 长选项必须使用的参数对于短选项时也是必需使用的.&http://www.aliyun.com/zixun/aggr

Linux中在当前目录下解压rpm文件?

Linux中在当前目录下解压rpm文件? cat kernel-ntfs-2.4.20-8.i686.rpm | rpm2cpio | pax -r 示例如下: [root@localhost 6-18]# cat kernel-ntfs-2.4.20-8.i686.rpm | rpm2cpio | pax -r[root@localhost 6-18]# ll总用量 44-rw-r--r--. 1 root root 40174 6月&http://www.aliyun.com/zixun/a

教你使用vsftpd架设Linux中的FTP:测试

教你使用vsftpd架设Linux中的FTP:测试 配置安装完成之后,现在我们需要对vsftpd进行测试一下,看是否正常! 打开防火墙的21端口 [root@centos tmp]# vi /etc/sysconfig/iptables 添加如下规则: -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT 重启防火墙应用新规则 [root@centos tmp]# service iptables restartiptables:清除防火墙规则:&http://

Linux中使用cat命令查看系统信息的方法

Linux中使用cat命令查看系统信息的方法 cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx) cat /proc/interrupts - 中断 cat /proc/ioports - 设备IO端口 cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size) cat /proc/partitions - 所有设备的所有分区 cat /proc/pci - PCI设备的信息

jQuery实现将div中滚动条滚动到指定位置的方法_jquery

本文实例讲述了jQuery实现将div中滚动条滚动到指定位置的方法.分享给大家供大家参考,具体如下: 一.Js代码: onload = function () { //初始化 scrollToLocation(); }; function scrollToLocation() { var mainContainer = $('#thisMainPanel'), scrollToContainer = mainContainer.find('.son-panel:last');//滚动到<div

VB.NET中使用FTP下载文件的两种方法

下载   .net没有专门处理FTP的类,我们可以通过调用系统自带的FTP.EXE 或者是调用win32 API中的wininet.dll来完成基本操作.希望以下的代码能为大家抛砖引玉. 方法一: 使用Ftp.exe ,通过process类来调用它. Imports System.Diagnostics ...   Public Sub GetFileByCallFtp()        '定义ProcessStartInfo,Process的启动信息.         Dim psi As N