1.ftp自动登陆下载文件
1
2
3
4
5
6
7
8
9
10
11
|
-n 不受.netrc文件的影响。(
ftp
默认为读取.netrc文件中的设定)
!是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾
binary - 设置文件传输类型为binary(二进制传输)
prompt - 开关交互提示(默认为ON)
close - 结束FTP会话并返回命令行
quit - 结束FTP会话并退出FTP(功能通bye)
mget - 复制一个或多个远程文件至本地
get - 复制单个远程文件到本地
put - 复制一个本地文件到远程
mput - 复制一个或多个本地文件到远程
hash
- Toggles
hash
-sign (
#) printing for each data block transferred (default = OFF) 为每个缓冲区传输切换打印“#”(哈希标记打印)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#####从ftp服务器上的/home/data 到 本地的/home/databackup####
#!/bin/bash
ftp
-n<<!
open
192.168.1.171
user guest 123456
binary
cd
/home/data
lcd
/home/databackup
prompt
mget *
close
bye
!
|
2.ftp自动登录上传文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
####本地的/home/databackup to ftp服务器上的/home/data####
#!/bin/bash
ftp
-n<<!
open
192.168.1.171
user guest 123456
binary
hash
cd
/home/data
lcd
/home/databackup
prompt
mput *
close
bye
!
|
3.ftp自动登陆并下载单个文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
####ftp服务器上下载/home/data/a.sh to local /home/databackup####
#!/bin/bash
ftp
-n<<!
open
192.168.1.171
user guest 123456
binary
cd
/home/data
lcd
/home/databackup
prompt
get a.sh a.sh
close
bye
!
|
4.ftp自动登录并上传单个文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
####把本地/home/databachup/a.sh up ftp /home/databackup 下####
#!/bin/bash
ftp
-n<<!
open
192.168.1.171
user guest 123456
binary
cd
/home/data
lcd
/home/databackup
prompt
put a.sh a.sh
close
bye
!
|
5.python登陆ftp并下载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
ftp登陆连接
from
ftplib
import
FTP
#加载ftp模块
ftp
=
FTP()
#设置变量
ftp.set_debuglevel(
2
)
#打开调试级别2,显示详细信息
ftp.connect(
"IP"
,
"port"
)
#连接的ftp sever和端口
ftp.login(
"user"
,
"password"
)
#连接的用户名,密码
print
ftp.getwelcome()
#打印出欢迎信息
ftp.cmd(
"xxx/xxx"
)
#进入远程目录
bufsize
=
1024
#设置的缓冲区大小
filename
=
"filename.txt"
#需要下载的文件
file_handle
=
open
(filename,
"wb"
).write
#以写模式在本地打开文件
ftp.retrbinaly(
"RETR filename.txt"
,file_handle,bufsize)
#接收服务器上文件并写入本地文件
ftp.set_debuglevel(
0
)
#关闭调试模式
ftp.quit()
#退出ftp
ftp相关命令操作
ftp.cwd(pathname)
#设置FTP当前操作的路径
ftp.
dir
()
#显示目录下所有目录信息
ftp.nlst()
#获取目录下的文件
ftp.mkd(pathname)
#新建远程目录
ftp.pwd()
#返回当前所在位置
ftp.rmd(dirname)
#删除远程目录
ftp.delete(filename)
#删除远程文件
ftp.rename(fromname, toname)
#将fromname修改名称为toname。
ftp.storbinaly(
"STOR filename.txt"
,file_handel,bufsize)
#上传目标文件
ftp.retrbinary(
"RETR filename.txt"
,file_handel,bufsize)
#下载FTP文件
|
登陆ftp查看文件
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/usr/bin/env python
#_*_ coding:utf8 _*_
import
ftplib
#from ftplib import FTP
ftp
=
ftplib.FTP(
"123.56.1.1"
)
ftp.login(
"user"
,
"passwd"
)
data
=
[]
ftp.cwd(
"hxy/tmp"
)
ftp.
dir
(data.append)
ftp.quit()
for
line
in
data:
print
(line)
|
上传下载文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#coding: utf-8
from
ftplib
import
FTP
import
time
import
tarfile
#!/usr/bin/python
#-*- coding: utf-8 -*-
from
ftplib
import
FTP
def
ftpconnect(host, username, password):
ftp
=
FTP()
#ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
ftp.connect(host,
21
)
#连接
ftp.login(username, password)
#登录,如果匿名登录则用空串代替即可
return
ftp
def
downloadfile(ftp, remotepath, localpath):
bufsize
=
1024
#设置缓冲块大小
fp
=
open
(localpath,
'wb'
)
#以写模式在本地打开文件
ftp.retrbinary(
'RETR '
+
remotepath, fp.write, bufsize)
#接收服务器上文件并写入本地文件
ftp.set_debuglevel(
0
)
#关闭调试
fp.close()
#关闭文件
def
uploadfile(ftp, remotepath, localpath):
bufsize
=
1024
fp
=
open
(localpath,
'rb'
)
ftp.storbinary(
'STOR '
+
remotepath , fp, bufsize)
#上传文件
ftp.set_debuglevel(
0
)
fp.close()
if
__name__
=
=
"__main__"
:
ftp
=
ftpconnect(
"******"
,
"***"
,
"***"
)
downloadfile(ftp,
"***"
,
"***"
)
uploadfile(ftp,
"***"
,
"***"
)
ftp.quit()
|
本文参考:
http://www.cnblogs.com/kaituorensheng/p/4480512.html
http://www.jb51.net/article/34361.htm
http://blog.csdn.net/indexman/article/details/46387561
本文转自 Forande 51CTO博客,原文链接:http://blog.51cto.com/853056088/1960242