案例:共享资源库系统

一、FTP是什么?

FTP就是文件传输协议。用于互联网双向传输,控制文件下载空间在服务器复制文件从本地计算机或本地上传文件复制到服务器上的空间。

二,

  • NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
  • 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
  • nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能
  • nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上
  • nfs服务只能基于IP进行认证
  • nfs体系分为两部分,一台nfs服务器,若干客户机(客户端)

基础环境准备

IP 节点 主机名
192.168.200.11 FTP服务器,NFS客户端 FTP
192.168.200.12 NFS服务器 NFS

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

#更改主机名
hostnamectl set-hostname ftp
bash
#关闭以及开机自关闭防火墙
systemctl stop firewalld 
systemctl disable firewalld
#临时关闭selinux
setenforce 0 

1.ftp 安装及配置

安装ftp管理(vsftp)和相关工具

yum install -y vsftpd vim net-tools

启动及开机启动

systemctl start vsftpd       #启动
systemctl enable vsftpd      #开机自启动

配置用户及密码

vim /etc/vsftpd/users.conf
yunyunwei
yunyunwei123
dashujv
dashujv123
xiaochengxv
xiaochengxv123

生成hash文件

db_load -T -t hash -f /etc/vsftpd/users.conf  /etc/vsftpd/users.db

设置权限

chmod 600 /etc/vsftpd/users.db 

创建ftp根目录及虚拟用户所映射的系统用户

useradd vsftpd -d /home/vsftpd -s /sbin/nologin 

创建工作目录及设置权限

mkdir -p /home/vsftpd/xmcsxy
chmod -R 777 /home/vsftpd

指定验证文件

vim /etc/pam.d/vsftpd 
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users

修改配置文件,指定子文件

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO       //禁止匿名访问
chroot_local_user=YES    //禁止用户访问除主目录以外的目录
guest_enable=YES          //启用虚拟用户
allow_writeable_chroot=YES   //允许写入用户主目录
user_config_dir=/etc/vsftpd/vsftpd_conf     //设定虚拟用户个人Vsftp的配置文件存放路径

创建子配置文件目录

mkdir -p /etc/vsftpd/vsftpd_conf
cd !$

创建三个用户配置文件

vim yunyunwei

local_root=/home/vsftpd/xmcsxy/yunyunwei  //当本地用户登入时,将被更换到定义
的目录下。默认值为各用户的家目录
write_enable=YES        //是否允许登陆用户有写权限。
anon_upload_enable=NO   //是否允许登陆用户有上传权限。
anon_max_rate=60000     //限制最大传输速率(字节/秒)

vim dashujv
local_root=/home/vsftpd/xmcsxy/dashujv
write_enable=YES
anon_upload_enable=NO
anon_max_rate=60000

vim xiaochengxv
local_root=/home/vsftpd/xmcsxy/xiaochengxv
write_enable=YES
anon_upload_enable=NO
anon_max_rate=60000

创建工作目录

mkdir -p /home/vsftpd/xmcsxy/yunyunwei
mkdir -p /home/vsftpd/xmcsxy/dashujv
mkdir -p /home/vsftpd/xmcsxy/xiaochengxv
#重启生效
systemctl restart vsftpd#重启
systemctl status vsftpd#查看状态
netstat -lntp | grep 21#查看进程

2.NFS节点(NFS主机)

基础环境准备

#更改主机名
hostnamectl set-hostname ftp
bash
#关闭以及开机自关闭防火墙
systemctl stop firewalld 
systemctl disable firewalld
#临时关闭selinux
setenforce 0 

NFS配置

#安装nfs工具
yum install -y vim net-tools 
yum install -y nfs-utils rpcbind

启动服务以及开机自启动

systemctl start rpcbind
systemctl enable rpcbind
systemctl enable nfs
systemctl start  nfs

创建数据存放目录并设置权限

mkdir /data
chown -R nfsnobody:nfsnobody /data/
chmod 755 -R /data

nfs节点主机添加使用一块硬盘

 查看硬盘

lsblk

 开始分区

fdisk /dev/sdb

 分区号默认为1,我是已经分完区的

分完后输入w进行同步写入即可完成

 挂载ext4上

mkfs.ext4 /dev/sdb1

 设置自动挂载

vim /etc/fstab 
/dev/sdb1               /data                   ext4    defaults        0 0

df -h  #查看挂载信息

 配置nfs共享目录(文件上传与下载)

vim /etc/exports
/data   192.168.200.0/24(rw,no_root_squash,async) #分配权限

exportfs -rv

  检测共享目录创建结果

showmount -e 192.168.200.89

 3.ftp主机配置

安装nfs客户端及rpc

yum install -y nfs-utils rpcbind

将nfs的/data目录挂载到/home/vsftpd/xmcsxy/目录上

mount -t nfs 192.168.200.89:/data /home/vsftpd/xmcsxy/
cd /home/vsftpd/xmcsxy/
mkdir yunyunwei dashujv xiaocheng
ls

 编写nfs脚本执行每 7 天晚上 21 点要求增量备份一次 nfs 的共享数据,到/backup/weekbackup 目录下,存放在以日期命名的目录;每 14 天清除上上一周的备份数据。

vim /usr/local/sbin/backup.sh
a=`date '+%Y%m%d'`                              #定义时间
b=/backup/weekbackup                            #定义备份目录路径
c=/var/log/backup.log                           #定义输出日志路径
pname=$(rpm -qa | grep rsync)           #定义rsync安装包检查    
#判断rsync是否存在
if [ $? -eq 0 ]
then
        echo "软件包rsync已经安装。"
else
        echo "软件包rsync没有安装"
        yum -y install rsync >> /dev/null
        if [ $? -eq 0 ];then
                echo "安装rsync完成。"
        else
                echo "安装rsync失败。"
        fi
fi
#判断备份目录是否存在,并增量备份。
if [ ! -d "$b" ];then
        mkdir -p $b
        echo "$a Backup File missing!" >> /var/log/backup.log
        rsync -rvz /data $b/$a
else
        rsync -rvz /data $b/$a
        if [ -d $b/$a ];then
                echo "$a Backup success." >> /var/log/backup.log
                find $b -mtime +14 | xargs rm -rf
        else
                echo "$a Backup failed." >> /var/log/backup.log
        fi
fi

执行脚本

sh -x /usr/local/sbin/backup.sh 

定时,每七天晚上21点执行一次脚本

crontab -e

共享资源系统搭建完成 

猜你喜欢

转载自blog.csdn.net/m0_74090215/article/details/130795100