您的位置:首页 > 运维架构 > Shell

ftp自动上传下载文件(Shell脚本)及ftp命令详解

2014-04-18 09:45 901 查看
(1)ftp自动批量下载文件
#####从ftp服务器上的/data/localacc 到 本地的/data/localacc####
#!/bin/bash
ftp -n<<!
open 10.0.129.170
user sfhc sfhc1234
binary
cd /data/localacc
lcd /data/localacc
prompt
mget *.gz
close
bye
!

命令详解:

-n是不使用ftp的自动登录 

open host[port]:建立指定ftp服务器连接,可指定连接端口

user username password:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous

 my@email

binary:设置文件传输模式为binary,缺省为ascii。binary模式不会对数据进行任何处理,ascii模式会将回车换行

转换为本机的回车字符。关于binary和ascii传输模

式的区别请看: FTP的ASCII和Binary传输模式

cd remote-dir:进入远程主机目录remote-dir

lcd local-dir:将本地工作目录切换至local-dir

prompt:设置多个文件传输时的交互提示(默认为提示,批量下载在每个文件都会提示,输入Y才能进行下一文件的

传输,prompt可取消交互提示)

mget remote-files:下载多个远程文件

close:中断与远程服务器的ftp会话

bye:退出ftp会话过程

!:在本地机器执行交互shell,exit回到ftp环境

(2)ftp自动批量上传文件

####本地的/data/localacc to ftp服务器上的/data/localacc####
#!/bin/bash
ftp -n<<!
open 10.0.129.171
user sfhc sfhc1234
binary
hash
cd /data/localacc
lcd /data/localacc
prompt
mput *.*
close
bye
!


命令详解:

hash:每传输1024个字节,显示一个hash符号(#)

mput local-files:将多个文件传输至远程主机

(3)以上为批量下载上传多个文件,如果想下载单个文件,将mget *.xls更改为get 123.xls 123.xls;如果想上传单个文件,将mput *.xls更改为put 123.xls
123.xls。

(4)更多详细ftp详细命令请看: FTP命令详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息