ftp 服务器创建访问连接抱错_Ruby获取FTP文件

f4d8bd16c4c8759a3c0b9a5e8e4aea78.png

一、FTP安装

  • 安装
 $ sudo apt-get update $ sudo apt-get install vsftpd
  • 修改配置文件 /etc/vsftpd.conf,下面是具体配置说明
 # 禁止匿名用户登录 anonymous_enable=NO # 允许系统用户登录 local_enable=YES # 启用可以修改文件的 FTP 命令 write_enable=YES # 本地用户创建文件的 umask 值 local_umask=022 # 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容 dirmessage_enable=YES # 开启日记功能  xferlog_enable=YES # 使用标准的20端口来连接ftp  connect_from_port_20=YES # 使用标准日志格式  xferlog_std_format=YES # 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 chroot_list_enable=YES # 指定限制的用户文件 chroot_list_file=/etc/vsftpd/chroot_list # ftp服务器将处于独立启动模式 listen=YES # 设置一个本地用户登录后进入到的目录 local_root=/home/ftp # 设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下 pam_service_name=vsftpd # ftp将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器 userlist_enable=YES # 只允许user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。 userlist_deny=NO # 定义限制/允许用户登录的文件 userlist_file=/etc/vsftpd/allowed_users  # ftp服务器将使用tcp_wrappers作为主机访问控制模式 tcp_wrappers=YES # 连接ftp服务费使用的端口 listen_port=21
  • 创建用户
 #创建目录 mkdir /home/ftp #修改目录权限 chmod -R 777 /home/ftp #创建用户,并禁止登陆系统,将fyp目录给予这个用户 useradd -d /home/ftp -s /sbin/nologin ftpuser #为用户创建密码 passwd ftpuser #在etc下创建allowed_users touch allowed_users #然后把ftpuser写入到allowed_users文件中 vim /etc/allowed_users
  • 启动FTP服务
 #启动命令 service vsftpd start #查看状态 service vsftpd status
  • 测试访问

在浏览器地址栏输入 ftp://ip,然后在弹出的输入框中输入刚才创建的账号密码即可访问,如图

cb369205d6fb2217bf3a4385a130daf7.png
446c16d1a57275a98d79ae21847e1305.png

二、Ruby读取FTP

ruby使用自己的net/ftp即可读取ftp内容

 require 'net/ftp' class FtpHelp HOST = "ip" PORT = "21" USER = "ftpuser" PSW = "psw" def self.get_file_by_path(es, path) ftp = Net::FTP.new #连接ftp ftp.connect(HOST, PORT) #登陆 ftp.login(USER, PSW) ftp.passive = true #创建本地路径 local_path = local_path(path) #临时文件路径 tmp_path = local_path+".tmp" #开始读取文件 begin ftp.getbinaryfile(path, tmp_path) rescue File.delete(tmp_path) if File.exist?(tmp_path) end #把临时文件改为正式文件路径 File.rename(tmp_path, local_path) if File.exist?(tmp_path) #关闭ftp ftp.close if File.exist?(local_path) return File.open(local_path) else return nil end end #创建本地路径 def self.local_path(file)  local = File.join(PATH+"/public/ftpfile
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值