安装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 //永久关闭防火墙
|