ftp上传

Linux下安装vsftp的大概步骤:
1、apt-get install vsftpd安装
2、修改/etc/vsftpd.conf,将write_enable=YES前面的#删除(上传文件要放开这个项目,不允许上传可就要屏蔽这个项目)
3、groupadd test
4、mkdir /ftptest(可以设置其他的目录)
5、useradd -G test -d /ftptest -M usr1
6、passwd usr1,然后输入你想设置的密码
7、chown usr1.test /ftptest
8、chmod 777 /ftptest
9、service vsftpd restart (修改配置后要重启服务)

手动测试:
1、ftp 服务ip 端口
2、输入用户名
3、输入密码
4、put 文件(上传文件)
5、get 文件(下载文件)
备注:ftp默认端口是21,在录播系统上设置ftp服务器之前先手动测试服务是否正常

有时连接总提示失败,要将/etc/pam.d/vsftpd改名或删除

windows下的cmd也可以测试连接ftp服务
1、ftp 服务器ip
然后输入用户名和密码,会显示连接成功
2、ftp回车,再用open 服务器ip 端口,再输入用户名和密码
其他与linux中相同使用

-------------------------------------------------------------------------------------

项目中要使用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,然后与当前的时间比较

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值