1. 简介
由于部门要将统计出来的数据提供给其他部门同事使用,以及其他公司使用。考虑数据的传输管理简单,我们搭建了ftp文件服务器。
2. 部署架构
1)数据源在内网上面的,数据分析服务器上计算完成,然后内网通过rsync同步到ftp服务器上。
ftp-server rsync配置:
1 [root@VM_72_183_centos ftpdata]# cat /etc/rsyncd.conf 2 uid = root 3 gid = root 4 use chroot = no 5 max connections = 10 6 pid file = /var/run/rsyncd.pid 7 lock file = /var/run/rsync.lock 8 log file = /var/log/rsyncd.log 9 [ftpdata] 10 path=/data/ftpdata 11 ignore errors 12 read only = no 13 list = no 14 #hosts allow = 192.168.0.0/255.255.255.0 15 auth users = root 16 secrets file = /etc/rsyncd.secrets 17 18 [root@VM_72_183_centos ftpdata]# cat /etc/rsyncd.secrets 19 root:ftpdata5666 20 21 [root@VM_72_183_centos ~]# rsync --daemon --config=/etc/rsyncd.conf --log-file=/var/log/rsync.log
数据源同步数据设置
1 [root@lnmp ~]# vim /etc/rsync.pass 2 ftpdata5666 3 4 [root@lnmp ~]# chmod 600 /etc/rsync.pass 5 6 [root@lnmp ~]# rsync -avrzp --password-file=/etc/rsync.pass 20150703/data.log root@10.232.72.183::ftpdata/mike/20150703/ #同步 7 rsync -auvzP --password-file=/etc/rsyncd.pass $src root@$hostip::ftpdata/$ftpuser/$date/ #自动化同步设置
2)其他部门从ftp-server下载数据。
ftp-server vsftpd配置:
1)安装vsftpd服务
2)配置/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_root=/data/ftpdata
guest_enable=YES
guest_username=vftpuser
user_config_dir=/etc/vsftpd/vusers_dir
pam_service_name=vsftpd.vu
3) 账号管理
useradd -d /data/ftpdata/ -s /sbin/nologin vftpuser vim /etc/vsftpd/vusers.list mike #奇数行,用户名 123 #偶数行,密码 john 456 test 789 db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vusers.db #生成密码数据库 vim /etc/pam.d/vsftpd.vu #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vusers account required pam_userdb.so db=/etc/vsftpd/vusers
添加账号脚本:
[root@lnmp ~]# cat addvftpuser.sh
1 #!/bin/bash 2 user=$1 3 pass=$2 4 dir=/data/ftpdata 5 if [ $# -lt 2 ] ;then echo "addvftpuser.sh <username> <password>";exit 1; fi 6 #update password 7 cd /etc/vsftpd/ 8 cp -f vusers.list vusers.list.old 9 echo $user >> vusers.list 10 echo $pass >> vusers.list 11 db_load -T -t hash -f vusers.list vusers.db 12 #mkdir user home dir 13 mkdir -p $dir/$user 14 echo "local_root=$dir/$user" > vusers_dir/$user
[root@lnmp ~]#sh addvftpuser.sh hello 1234 #后续只需这种方式,就可以添加账号
默认每个用户只能在自己的独立的目录,权限只读。
客户端下载:
lftp [root@node1 ~]# lftp -u mike,123 192.168.191.130 lftp mike@192.168.191.130:~> ls -rw-r--r-- 1 0 0 0 Jun 30 14:38 aa lftp mike@192.168.191.130:/> get aa lftp mike@192.168.191.130:/> exit [root@node1 ~]# ls aa aa wget [root@lnmp ~]# wget --ftp-user=mike --ftp-password=123 ftp://localhost/aa --2015-06-30 23:39:04-- ftp://localhost/aa => “aa” 浏览器打开 ftp://192.168.191.130