一、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
共享资源系统搭建完成