Linux—FTP+NFS案例实操

实操需求:以工坊单位为基础,每个工坊设立一个单独共享资源目录,创建FTP虚拟用户名为xmcu1-6;权限限制只有下载没有上传的权限,限制最大带宽60KB; xmcu1-6 用户的家目录名称对应6个不同的工坊名词缩写; nfs的共享目录必须挂载在新建的一块20G存储磁盘上,每周晚上21点要求备份一次nfs的共享数据到/backup/weekbackup目录下;每14天清除上一周的备份数据。

节点规划

IP Hostname 备注
192.168.88.15 nfs nfs服务端
192.168.88.16 ftp nfs客户端+FTP

基础环境部署:

 # systemctl stop firewalld
 # systemctl disable firewalld
 # setenforce 0
 # sed -i 's/=enforcing/=disabled/' /etc/selinux/config
 # yum -y install ntpdate && ntpdate -u ntp.api.bz  //同步服务器时间
 

一.NFS配置
1.添加两个新硬盘
在这里插入图片描述
添加硬盘后使用fdisk命令创建分区

[root@nfs ~]# lsblk  
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part 			//新创硬盘分区
sdc               8:32   0   50G  0 disk 			
└─sdc1            8:33   0   50G  0 part 			//新创硬盘分区
sr0              11:0    1    4G  0 rom  
[root@nfs ~]# mkfs.ext4 /dev/sdb1 					//格式化分区
[root@nfs ~]# mkfs.ext4 /dev/sdc1 

2.创建共享和备份目录,并挂载磁盘。

[root@nfs ~]# mkdir /data
[root@nfs ~]# chown -R nfsnobody:nfsnobody /data
[root@nfs ~]# chmod -R 755 /data
[root@nfs ~]# mkdir -p /backup/weekbackup
[root@nfs ~]# mount /dev/sdb1 /data/			
[root@nfs ~]# mount /dev/sdc1 /backup/weekbackup    	//因备份目录数据较大,挂载50G的磁盘。
[root@nfs ~]# df -hT  
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/sdb1               ext4       20G   45M   19G   1% /data
/dev/sdc1               ext4       50G   53M   47G   1% /backup/weekbackup
[root@nfs ~]# vi /etc/fstab 
/dev/sdb1       /data   ext4    defaults        0  0
/dev/sdc1       /backup/weekbackup   ext4    defaults        0  0

3.nfs服务端配置

在两台服务器上安装nfs-utils rpcbind
# yum install -y nfs-utils rpcbind
# systemctl start nfs
# systemctl enable nfs
# systemctl start rpcbind
# systemctl enable rpcbind

配置nfs服务端配置文件

[root@nfs ~]# vi /etc/exports
/data 192.168.88.0/24(rw,no_root_squash)
[root@nfs ~]# systemctl restart nfs
[root@nfs ~]# showmount -e 192.168.88.15		//查看共享目录列表
Export list for 192.168.88.15:
/data 192.168.88.0/24

4.nfs客户端配置

[root@ftp ~]# useradd vsftpd -d /home/vsftpd -s /sbin/nologin //创建vsftpd系统用户,指定家目录。
[root@ftp ~]# mount -t nfs 192.168.88.15:/data /home/vsftpd/  //挂载到服务端上
[root@ftp ~]# vi /etc/fstab
192.168.88.15:/data     /home/vsftpd    nfs4    defaults        0 0
[root@ftp ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
192.168.88.15:/data     nfs4       20G   44M   19G   1% /home/vsftpd
[root@ftp ~]# cd /home/vsftpd
[root@ftp ~]# mkdir Android dsj java xcx yxkf yyw	//创建ftp用户家目录
[root@ftp ~]# chmod -R 755 /home/vsftpd/
[root@ftp ~]# ll /home/vsftpd/
total 40
drwxr-xr-x. 2 root      root       4096 Mar 12 05:29 Android
drwxr-xr-x. 2 root      root       4096 Mar 12 05:31 dsj
drwxr-xr-x. 2 root      root       4096 Mar 12 05:29 java
drwxr-xr-x. 2 nfsnobody nfsnobody 16384 Mar 12 04:51 lost+found
drwxr-xr-x. 2 root      root       4096 Mar 12 05:28 xcx
drwxr-xr-x. 2 root      root       4096 Mar 12 05:31 yxkf
drwxr-xr-x. 2 root      root       4096 Mar 12 05:29 yyw

二.FTP配置
1.FTP安装并启动

[root@ftp ~]# yum -y install vsftpd 
[root@ftp ~]# systemctl start vsftpd
[root@ftp ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

2.虚拟用户账号密码配置

[root@ftp ~]# vi /etc/vsftpd/users.conf 
xmcu1
111111
xmcu2
222222
xmcu3
333333
xmcu4
444444
xmcu5
555555
xmcu6
666666
[root@ftp ~]# db_load -T -t hash -f /etc/vsftpd/users.conf /etc/vsftpd/users.db
[root@ftp ~]# chmod 600 /etc/vsftpd/users.*
[root@ftp ~]# ll /etc/vsftpd/users.*
-rw-------. 1 root root    78 Mar 12 05:35 /etc/vsftpd/users.conf
-rw-------. 1 root root 12288 Mar 12 05:35 /etc/vsftpd/users.db
[root@ftp ~]# rm -rf /etc/vsftpd/users.conf 

3.新建一个用于虚拟用户认证的PAM文件vsftpd.xmcu

[root@ftp ~]# vi /etc/pam.d/vsftpd.xmcu 
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users

4.修改FTP主配置文件

[root@ftp ~]# vi /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO					//禁止匿名开放模式
local_enable=YES					//允许本地用户模式
guest_enable=YES					//开启虚拟用户模式
guest_username=vsftpd				//指定虚拟用户账户
allow_writeable_chroot=YES			//允许对禁锢的FTP根目录执行写入操作
user_config_dir=/etc/vsftpd/vsftpd_user_conf  //指定虚拟用户配置文件
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.xmcu		//指定PAM文件
userlist_enable=YES
tcp_wrappers=YES

5.配置虚拟用户使用的配置文件目录

[root@ftp ~]# mkdir -p /etc/vsftpd/vsftpd_user_conf
[root@ftp ~]# vi /etc/vsftpd/vsftpd_user_conf/xmcu1
local_root=/home/vsftpd/yyw
anon_upload_enable=NO		//是否允许上传
write_enable=NO 			//是否开放写权限	
local_max_rate=60000			//下载带宽
[root@ftp ~]# vi /etc/vsftpd/vsftpd_user_conf/xmcu2		//其他配置一样,指定家目录更改
local_root=/home/vsftpd/xcx
[root@ftp ~]# vi /etc/vsftpd/vsftpd_user_conf/xmcu3
local_root=/home/vsftpd/dsj
[root@ftp ~]# vi /etc/vsftpd/vsftpd_user_conf/xmcu4
local_root=/home/vsftpd/Android
[root@ftp ~]# vi /etc/vsftpd/vsftpd_user_conf/xmcu5
local_root=/home/vsftpd/yxkf
[root@ftp ~]# vi /etc/vsftpd/vsftpd_user_conf/xmcu6
local_root=/home/vsftpd/java
[root@ftp ~]# systemctl restart vsftpd	
[root@ftp ~]# touch /home/vsftpd/yyw/xmcu1-yyw.txt  //创建一个测试文件

File Zilla删除,创建,上传测试
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
三.NFS服务端备份配置
1.编写备份脚本

[root@nfs ~]# vi /usr/local/sbin/backup.sh
#!/bin/bash
date=`date +%Y-%m%d`
bkdir=/backup/weekbackup
if [ ! -d $bkdir ];then
        mkdir -p $bkdir
        echo "$bkdir not exist!" >> /var/log/backup.log
else
        mkdir $bkdir/$date
        cp -rf /data/*  $bkdir/$date
        if [ -d $bkdir/$date ];then
        echo "$bkdir/$date backup success" >> /var/log/backup.log
        find $bkdir -mtime +14 -exec rm -rf {} \;
else
        echo "$date backup failed!" >> /var/log/backup.log
fi
fi

2.配置定时计划

[root@localhost ~]# crontab -e
0 21 * * 1 /bin/bash /usr/local/sbin/backup.sh 
[root@localhost ~]# crontab -l
0 21 * * 1 /bin/bash /usr/local/sbin/backup.sh 
发布了29 篇原创文章 · 获赞 15 · 访问量 2506

猜你喜欢

转载自blog.csdn.net/qq_20027745/article/details/104803778