ftp上传

原创 2015年11月20日 18:20:10

项目中要使用ftp上传文件,在linux下运行,思路是由加一个模块,定时读取上传任务,然后调用脚本上传文件

将工作中遇到的问题备忘一下。

1、linux下安装ftp服务

网上有很多方法,我用的是unbantu,用

全新安装:apt-get install vsftpd,重新安装:apt-get --reinstall install vsftp,卸载并清除配置文件:apt-get -purge remove vsftp

我在安装的过程中,服务器能访问外网ip,但访问不了域名,这是没配置域名服务器,在/etc/resolv.conf文件中增加

nameserver 8.8.8.8(也可用8.8.4.4,这些是谷歌的域名解析服务器)

安装后要配置用户和组

首先创建用户组 testFTP的主目录

groupadd test

mkdir /tmp/test

然后创建用户

useradd -G test -d /tmp/test -M usr1

useradd -G test -d /tmp/test -M usr2

设置用户密码

passwd usr1

然后会提示输入新密码,再确认一次就设置好密码了

接着改变文件夹的属主和权限

chown usr1.test /tmp/test ----这表示把/tmp/test的属主定为usr1

chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么权限都没有

ftp默认端口是21,如果要修改端口,在vsftpd.conf 文件中增加listen_port=2121(这是你想要设置的端口号)

要实现上传除了目录有权限,还得在配置文件中write_enable=YES要打开

详细可参考:

http://www.linuxidc.com/Linux/2007-10/8062p3.htm

服务的启动、重启和停止

service  vsftpd start,service vsftpd restart,service vsftpd stop


解决vsftpd的530 Login incorrect错误

在etc下面有个pam.d文件夹,进去打开vsftpd这个文件,里面对之前的用户进行了限制,将里面对应的限制注释掉,问题解决。

227原来安装过vsftp,后来重新安装系统,安装vsftp总提示530
修改/etc/pam.d/vsftpd文件,屏蔽下面2行(红色),重启服务后OK

# Standard behaviour for ftpd(8).
#auth   required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed


# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.


# Standard pam includes
@include common-account
@include common-session
@include common-auth
#auth   required        pam_shells.so

2、windws下使用serv-u比较方便

windows下的资源管理器下看不到ftp服务器上的文件,要在浏览器(不是资源管理器)的工具/internet选项/高级下,将启用FTP文件夹视图选中

3、登录ftp服务器

使用不同的服务器返回的代码是相同的,但文字有区别,比如登录成功,在linux下的server返回了230 Login successful.用win下返回了230 User logged in, proceed.

可以使用 || 进行2个条件的判断,

if [ "${RESULT_CON_WIN}" = "${SUCC_CON_WIN}" ] || [ "${RESULT_CON_LINUX}" = "${SUCC_CON_LINUX}" ]

注意 [ ]要有空格,

如果要判断一个字符串中是否有别一个字符串,可以这样

if [[ $RESULT == *$SUCC* ]]

这样可以c++调用脚本system可以得到返回值,判断是否成功

4、sqlite3数据库中有timespan类型的字段,

想用比较大小的sql放到xml中,然后根据id得到sql,但是将 < 放到xml中会破坏xml的结构,读不到的别的sql了,用转义字符也不行,别的id能读到,本id的sql读不出来。

不过原来的sql有使用转义的sql,要看一下怎么处理的。

这样只好将日期取出来,放到tm结构中,用mktime转换成time_t,然后与当前的时间比较


FTP上传客户端

  • 2017年12月08日 15:04
  • 3.28MB
  • 下载

C# ftp 上传、下载、删除

public class FtpHelper { public static readonly FtpHelper Instance = new FtpHelper(); ...
  • CsethCRM
  • CsethCRM
  • 2012年11月02日 10:36
  • 27954

监控目录文件FTP上传程序

  • 2017年10月28日 00:49
  • 203KB
  • 下载

ftp上传/下载工具

  • 2017年11月29日 10:17
  • 6.75MB
  • 下载

FTP上传bin模式与ASCII模式

话说,今天在ftp上传一个txt文件的时候,习惯性的用的bin模式,但是后来同事告诉我文件不能使用。于是重新用ASCII模式上传。 简单说: 1、FTP在传送文件时分为ASC和Bin两种格式,只有...

C#ftp文件上传、下载文件管理

  • 2015年10月09日 21:43
  • 18KB
  • 下载

使用JAVA在线下载图片至本地,并上传至FTP

1.首先我们需要将图片下载至本地。相关操作类如下所示: /** * 下载文件到本地 * * @param urlString * 被下载的文件地址 *...

filezilla,ftp上传工具

  • 2015年10月27日 22:48
  • 11.54MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ftp上传
举报原因:
原因补充:

(最多只允许输入30个字)