1 安装依赖包:libssh2-1.2.7.tar.gz (其他依赖包一般系统自带,如果没有在装)
#cd depended
#tar –zxvf libssh2-1.2.7.tar.gz
#cd libssh2-1.2.7
#./configure
#make
#make install
2 在/etc/ld.so.conf中加入”/usr/local/lib”
#echo “/usr/local/lib” >> /etc/ld.so.conf
3 运行ldconfig
4 删除老版本的libcurl
#find / -name libcurl.so.*
#find / -name libcurl.a*
把上面两条命令执行后找到的文件删除。
#rm –f xxxx //xxxx表示找到的curl动态库与静态库。
5安装curl-7.21.4.tar.gz包
#tar –zxvf curl-7.21.4.tar.gz
#cd curl-7.21.4
#./configure
#make
#make install
#ldconfig
6 验证libcurl是否安装成功
#curl --version
如果信息如下,代表成功:
curl 7.21.4 (i686-pc-linux-gnu) libcurl/7.21.4 OpenSSL/0.9.8b zlib/1.2.5 libidn/1.0 libssh2/1.2.7
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM SSL libz
二.上传模块配置文件配置
进入配置文件所在目录:编辑inotify_up.conf。
#cd ../src/up_src
#vi inotify_up.conf
解释如下:
1. transfer_mode 可以配置三中协议,分别是: ftp , sftp , scp 任选一种
2. server_ip 填写要上传到对方服务器的ip
3.server_port 填写协议使用的端口号
4.user_name 填写用户名
5.passwd 填写密码
6.server_dir 表示上传到对方ip的哪个目录。注意:如果是ftp协议传输,填写用户名家目
录的相对地址。例如root用户的家目录是/root/ 如果要传输到家目录 配置成:”server_dir = / “ 就行。如果是sftp或scp则填写绝对路径。
7.source_file_path 本地监听的目录,可配置多个本地目录,每行一个,如果续行,末尾加
上续行符”\”
8.suffix 表示要监听的文件的后缀名。如”ctr”
9. reflected_suffix 表示.ctr将要映射文件的后缀,如xml
10. suffix_process表示监听后缀名的文件与实际要处理的文件名的关系。有3种映射关系:
(1)replace 如果监听aaa.xml.ctr 那么要传输的文件是aaa.xml.txt
(2)cut如果监听aaa.xml.ctr 那么要传输的文件是aaa.xml
(3)no_reflect 如果监听aaa.xml.ctr 那么要传输的文件是aaa.xml.ctr
11.is_compress 是否压缩要传输的文件: yes或no
12.append_okfile 是否在传输完文件后,追加传输一个.ok的确认文件: yes或no
13. sleep_period 单位为秒。表示传输周期。
三.上传模块编译与使用
进入up_src目录:
#make
#./run
如果要做定时任务:
在/etc/cron.d/cron_dcol 文件中加入定时运行脚本 ,例如如下语句:
*/1 * * * * root /root/transfer/aut_dcol
四.vsftp的配置与添加用户
1.编辑/etc/vsftpd/vsftpd.conf 添加如下内容:
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
chown_uploads=YES
2. 重启vsftpd
#service vsftpd restart
#chkconfig vsftpd on
3. vsftpd用户增加:
#adduser ftpuser //添加用户
#mkdir –p /home/pcap_file //创建家目录
#usermod –g ftp user1 //修改用户usermod –d /home/pcap_file –g ftp ftpuser
#vim /etc/passwd //修改ftpuser的家目录为/home/pcap_file
#pwconv //更新/etc/passwd与/etc/shadow同步
#chown –R ftpuser.ftp /home/pcap_file
#passwd ftpuser //修改用户名的密码
4 以下问题可能由selinux产生的可能:
关于ftp用户连接时出现500 OOPS: cannot change directory:/root报错,selinux 默认下是没有开启FTP的支持,所以访问时都被阻止了。
解决办法1:
a. 查看SELinux设置
# getsebool -a | grep ftp
发现如下:
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> on
ftpd_connect_db --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
或者
ftp_home_dir–>off
b. 使用setsebool命令开启以上所有开关,例如:
# setsebool ftpd_disable_trans 1 或者 # setsebool ftp_home_dir 1
c. 查看当前状态是否是on的状态
# getsebool -a|grep ftp
此时
allow_ftpd_anon_write --> on
allow_ftpd_full_access --> on
allow_ftpd_use_cifs --> on
allow_ftpd_use_nfs --> on
ftp_home_dir --> on
ftpd_connect_db --> on
sftpd_anon_write --> on
sftpd_enable_homedirs --> on
sftpd_full_access --> on
sftpd_write_ssh_home --> on
d. 最后重启 # service vsftpd restart
OK,问题解决了。
另外 setsebool 使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1
解决办法2:
关闭SELinux:修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。