Frank的学习之路

8.0_FTP安装与配置

安装vsftpd
rpm -qa | grep vsftpd 
检查是否安装
yum -y install vsftpd
chkconfig vsftpd on
基于虚拟用户的配置:
修改配置文件:
vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO
设定不允许匿名访问
local_enable=YES
允许本地用户登录
local_umask=022
上传后文件的权限,反掩码实际755
xferlog_enable=YES
打开日志记录
xferlog_std_format=YES
标准日志格式
connect_from_port_20=YES
使用20号端口传输数据
listen=YES
监听/被动模式
write_enable=YES
拥有写入权限
anon_upload_enable=YES
允许虚拟用户和匿名用户上传
anon_mkdir_write_enable=YES
允许虚拟用户和匿名用户建立目录的权限
anon_other_write_enable=YES
允许虚拟用户和匿名用户修改文件名和删除文件
one_process_model=NO
chroot_local_user=YES
ftpd_banner=Welcom to log FTP server.
欢迎信息
anon_world_readable_only=NO
是否只读,NO则可写
guest_enable=YES
设定启用虚拟用户功能;以下手动添加CentOS FTP服务配置
guest_username=virtual_user
设定虚拟用户的宿主用户
pam_service_name=vsftpd
PAM认证文件名
user_config_dir=/etc/vsftpd/vconf/userlocal
设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。
存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
listen_port=88
监听端口
pasv_enable=yes
开启PASV模式
pasv_address=101.198.151.148
搭建FTP服务地址
进行认证:
yum install db4 db4-utils
安装Berkeley DB工具
建立文件夹
mkdir /etc/vsftpd/vconf
mkdir /etc/vsftpd/vconf/userlocal
创建用户密码文本
vim /etc/vsftpd/vuser_passwd
奇行是用户名,偶行是密码
test
123456
生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vconf/vuser_passwd /etc/vsftpd/vconf/vuser_passwd.db
编辑认证文件
vim /etc/pam.d/vsftpd
增加以下两句,vsftpd与vsftpd.conf中的pam_service_name一致
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vuser_passwd
创建虚拟用户配置文件
cd /etc/vsftpd/vconf/userlocal
虚拟用户的根目录(根据实际修改) 
vim test
test文件名与/etc/vsftpd/vuser_passwd中的用户名一致
local_root=/home/Qihoo360/ceshi
write_enable=YES
anon_upload_enable=YES
增加用户
用户名和vsftpd.conf中guest_username指定用户名一致
useradd -d /home/Qihoo360/ceshi -g Qihoo360 -s /sbin/nologin virtual_user
增加virtual_user用户,指定目录和Qihoo360用户组
service vsftpd restart
测试是否连通
ftp 101.198.151.148 88
安装ftp,通过地址和端口连接,在通过虚拟用户和密码登陆
service vsftpd start
定时通过ftp获取数据库服务器上的文件
#!/bin/sh
datadir="/root/ceshi/"
ftphost="101.198.151.148"
ftpport="88"
ftpuser="test"
ftppass="123456"
sqlfile="user_info_`date '+%Y%m%d'`.sql"
lastweek_file="user_info_`date -d"-2 week" '+%Y%m%d'`.sql"
echo "delete $lastweek_file ."
cd $DATADIR
rm -f $lastweek_file
cd $datadir
ftp -in  << EOF
open $ftphost $ftpport
user $ftpuser $ftppass
bin
get ${sqlfile}.gz
bye
EOF
gunzip -f ${sqlfile}.gz
mysqluser="yixue"
mysqlpass="123456"
mysql -u$mysqluser -p$mysqlpass yixue_web < ${sqlfile}
备份数据库表文件,并上传FTP空间
#!/bin/bash
DATADIR="/root/dbbackup/data/"
LOGDIR="/root/dbbackup/log/"
MONTHSTR=`date +"%Y%m"`
DATESTR=`date +"%Y%m%d"`
LOGFILE="user_info_${MONTHSTR}.log"
mysqluser="yixue"
mysqlpass="123456"
dumpfile="user_info_${DATESTR}.sql.gz"
lastweek_file1="user_info_`date -d" " '+%Y%m%d'`.sql.gz"
echo "delete $lastweek_file1 " >> ${LOGDIR}${LOGFILE}
cd $DATADIR
rm -f $lastweek_file1
echo "`date +"%Y%m%d%H%M"`: Start backup." >> ${LOGDIR}${LOGFILE}
cd $DATADIR
mysqldump -u${mysqluser} -p${mysqlpass} --default-character-set=utf8 yixue-web user_info sub_blue_info live_info course_info  | gzip --best > $dumpfile 2>>${LOGDIR}${LOGFILE}
echo "`date +"%Y%m%d%H%M"`: Start ftp." >> ${LOGDIR}${LOGFILE}
ftphost="101.198.151.148"
ftpport="88"
ftpuser="test"
ftppass="123456"
cd $DATADIR
ftp -in  << EOF
open $ftphost $ftpport
user $ftpuser $ftppass
bin
delete $lastweek_file1
put $dumpfile
bye
EOF
echo "`date +"%Y%m%d%H%M"`: ftp finished." >> ${LOGDIR}${LOGFILE}
echo "" >> ${LOGDIR}${LOGFILE}
设置定时任务
crontab -e        
编辑定时任务
*/8 * * * *  bash  /root/user_info_dump.sh
每8分钟执行一次,注意星号中间只有一个空格
30 21 * * *  bash /root/sync.sh
每晚的21:30执行
crontab -r 
删除所有定时任务
防火墙设定
service iptables stop
iptables -A INPUT --src 101.198.151.148  -p tcp  -j ACCEPT
ftp 101.198.151.148 88
iptables -nL
netstat -na | grep 88
vi /etc/sysconfig/iptables
chkconfig iptables off //永久关闭防火墙

返回顶部