/> 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
linux中通过FTP下载指定的文件方法
时间: 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