用shell和python实现FTP自动登陆然后上传和下载

前端之家收集整理的这篇文章主要介绍了用shell和python实现FTP自动登陆然后上传和下载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.ftp自动登陆下载文件

  1. -n不受.netrc文件的影响。(ftp默认为读取.netrc文件中的设定)
  2. !是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾
  3. binary-设置文件传输类型为binary(二进制传输)
  4. prompt-开关交互提示(默认为ON
  5. close-结束FTP会话并返回命令行
  6. quit-结束FTP会话并退出FTP功能bye
  7. mget-复制一个或多个远程文件至本地
  8. get-复制单个远程文件到本地
  9. put-复制一个本地文件到远程
  10. mput-复制一个或多个本地文件到远程
  11. hash-Toggleshash-sign(#)printingforeachdatablocktransferred(default=OFF)为每个缓冲区传输切换打印“#”(哈希标记打印)
  1. #####从ftp服务器上的/home/data到本地的/home/databackup####
  2. #!/bin/bash
  3. ftp
  4. -n<<!
  5. open192.168.1.171
  6. userguest123456
  7. binary
  8. cd/home/data
  9. lcd/home/databackup
  10. prompt
  11. mget*
  12. close
  13. bye
  14. !

2.ftp自动登录上传文件

  1. ####本地的/home/databackuptoftp服务器上的/home/data####
  2. #!/bin/bash
  3. ftp
  4. -n<<!
  5. open192.168.1.171
  6. userguest123456
  7. binary
  8. hash
  9. cd/home/data
  10. lcd/home/databackup
  11. prompt
  12. mput*
  13. close
  14. bye
  15. !

3.ftp自动登陆并下载单个文件

  1. ####ftp服务器上下载/home/data/a.shtolocal/home/databackup####
  2. #!/bin/bash
  3. ftp
  4. -n<<!
  5. open192.168.1.171
  6. userguest123456
  7. binary
  8. cd/home/data
  9. lcd/home/databackup
  10. prompt
  11. geta.sha.sh
  12. close
  13. bye
  14. !

4.ftp自动登录上传单个文件

  1. ####把本地/home/databachup/a.shupftp/home/databackup下####
  2. #!/bin/bash
  3. ftp
  4. -n<<!
  5. open192.168.1.171
  6. userguest123456
  7. binary
  8. cd/home/data
  9. lcd/home/databackup
  10. prompt
  11. puta.sha.sh
  12. close
  13. bye
  14. !



5.python登陆ftp并下载

  1. ftp登陆连接
  2. fromftplibimportFTP#加载ftp模块
  3. ftp=FTP()#设置变量
  4. ftp.set_debuglevel(2)#打开调试级别2显示详细信息
  5. ftp.connect("IP","port")#连接的ftpsever和端口
  6. ftp.login("user","password")#连接的用户名,密码
  7. printftp.getwelcome()#打印出欢迎信息
  8. ftp.cmd("xxx/xxx")#进入远程目录
  9. bufsize=1024#设置的缓冲区大小
  10. filename="filename.txt"#需要下载的文件
  11. file_handle=open(filename,"wb").write#以写模式在本地打开文件
  12. ftp.retrbinaly("RETRfilename.txt",file_handle,bufsize)#接收服务器上文件并写入本地文件
  13. ftp.set_debuglevel(0)#关闭调试模式
  14. ftp.quit()#退出ftp
  15.  
  16. ftp相关命令操作
  17. ftp.cwd(pathname)#设置FTP当前操作的路径
  18. ftp.dir()#显示目录下所有目录信息
  19. ftp.nlst()#获取目录下的文件
  20. ftp.mkd(pathname)#新建远程目录
  21. ftp.pwd()#返回当前所在位置
  22. ftp.rmd(dirname)#删除远程目录
  23. ftp.delete(filename)#删除远程文件
  24. ftp.rename(fromname,toname)#将fromname修改名称toname
  25. ftp.storbinaly("STORfilename.txt",file_handel,bufsize)#上传目标文件
  26. ftp.retrbinary("RETRfilename.txt",bufsize)#下载FTP文件


登陆ftp查看文件

  1. #!/usr/bin/envpython
  2. #_*_coding:utf8_*_
  3. importftplib
  4. #fromftplibimportFTP
  5. ftp=ftplib.FTP("123.56.1.1")
  6. ftp.login("user","passwd")
  7. data=[]
  8. ftp.cwd("hxy/tmp")
  9. ftp.dir(data.append)
  10. ftp.quit()
  11. forlineindata:
  12. print(line)

上传下载文件

  1. #coding:utf-8
  2. fromftplibimportFTP
  3. importtime
  4. importtarfile
  5. #!/usr/bin/python
  6. #-*-coding:utf-8-*-
  7.  
  8. fromftplibimportFTP
  9.  
  10. defftpconnect(host,username,password):
  11. ftp=FTP()
  12. #ftp.set_debuglevel(2)#打开调试级别2,显示详细信息
  13. ftp.connect(host,21)#连接
  14. ftp.login(username,password)#登录,如果匿名登录则用空串代替即可
  15. returnftp
  16.  
  17. defdownloadfile(ftp,remotepath,localpath):
  18. bufsize=1024#设置缓冲块大小
  19. fp=open(localpath,'wb')#以写模式在本地打开文件
  20. ftp.retrbinary('RETR'+remotepath,fp.write,bufsize)#接收服务器上文件并写入本地文件
  21. ftp.set_debuglevel(0)#关闭调试
  22. fp.close()#关闭文件
  23.  
  24. defuploadfile(ftp,localpath):
  25. bufsize=1024
  26. fp=open(localpath,'rb')
  27. ftp.storbinary('STOR'+remotepath,fp,bufsize)#上传文件
  28. ftp.set_debuglevel(0)
  29. fp.close()
  30.  
  31. if__name__=="__main__":
  32. ftp=ftpconnect("******","***","***")
  33. downloadfile(ftp,"***")
  34. uploadfile(ftp,"***")
  35.  
  36. ftp.quit()

本文参考:

http://www.cnblogs.com/kaituorensheng/p/4480512.html

http://www.jb51.net/article/34361.htm

http://www.jb51.cc/article/p-xpjhzrdx-um.html

猜你在找的Bash相关文章