| 节点 | IP地址 | 镜像 |
|---|---|---|
| FTP | 192.168.116.130 | centos7 1511 |
| NFS | 192.168.116.131 | centos7 1511 |
基础搭建
*两个节点都要配置*// 修改主机名:# hostnamectl set-hostname ftp# hostnamectl set-hostname nfs// 关闭防火墙及安全规则:# systemctl stop firewalld# systemctl disable firewalld# setenforce 0
FTP 部署
yum 安装 FTP
[root@ftp ~]# yum -y install vsftpd//启动 ftp 并设置开机自启:[root@ftp ~]# systemctl start vsftpd[root@ftp ~]# systemctl enable vsftpd//创建虚拟用户账号(bai1-6):[root@ftp ~]# vi /etc/vsftpd/users.conf//内容bai10000bai20000bai30000bai40000bai50000bai60000//转化为 Berkeley DB 格式的数据文件:[root@ftp ~]# db_load -T -t hash -f /etc/vsftpd/users.conf /etc/vsftpd/users.db//设置 DB 文件权限提高安全性:[root@ftp ~]# chmod 600 /etc/vsftpd/users.db//创建 FTP 根目录及虚拟用户映射的系统用户:[root@ftp ~]# useradd vsftpd -d /home/vsftpd -s /sbin/nologin[root@ftp ~]# mkdir -p /home/vsftpd/xmcsxy[root@ftp ~]# chmod -R 755 /home/vsftpd//建立支持虚拟用户的 PAM 认证文件:[root@ftp ~]# vi /etc/pam.d/vsftpdauth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/usersaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users//备份配置文件并导入有效参数:[root@ftp ~]# cp /etc/vsftpd/vsftpd.conf{,.bak}[root@ftp ~]# egrep -v '^$|^#' /etc/vsftpd/vsftpd.conf.bak >/etc/vsftpd/vsftpd.conf//添加虚拟用户支持修改配置文件/etc/vsftpd/vsftpd.conf:anonymous_enable=NOchroot_local_user=YESguest_enable=YESallow_writeable_chroot=YESuser_config_dir=/etc/vsftpd/vsftpd_conf//为不同的虚拟用户建立独立的配置文件:[root@ftp ~]# mkdir -p /etc/vsftpd/vsftpd_conf[root@ftp ~]# cd /etc/vsftpd/vsftpd_conf[root@ftp vsftpd_conf]# vi bai1local_root=/home/vsftpd/xmcsxy/yumwei #本地家目录路径write_enable=YESanon_upload_enable=NOanon_max_rate=60000//以此类推把 bai1.....bai6 配置完,修改每个用户的本地家目录路径!重启服务生效配置文件:[root@ftp ~]# systemctl restart vsftpd[root@ftp ~]# systemctl status vsftpd[root@ftp ~]# netstat -lntp | grep 21tcp6 0 0 :::21 :::*LISTEN 18750/vsftpd
NFS 部署
检查环境(两台都需要):
//检查环境(两台都需要):# uname -a//安装 nfs 依赖包(两台都需要):# yum -y install nfs-utils rpcbind//查看 nfsnobody 用户在不在(两台都需要):# id nfsnobodyuid=65534(nfsnobody) gid=65534(nfsnobody) 组=65534(nfsnobody)//启动 nfs 相关服务(两台都需要)//启动 rpc 服务:# systemctl start rpcbind# systemctl enable rpcbind//启动 nfs 服务:# systemctl start nfs# systemctl enable nfs//查看 rpc 端口:[root@ftp ~]# netstat -lntp | grep rpctcp 0 0 0.0.0.0:34875 0.0.0.0:*LISTEN 19141/rpc.statdtcp 0 0 0.0.0.0:20048 0.0.0.0:*LISTEN 19162/rpc.mountdtcp6 0 0 :::48860 :::*LISTEN 19141/rpc.statdtcp6 0 0 :::20048 :::*LISTEN 19162/rpc.mountd查看端口映射情况:# rpcinfo -p localhost (注:这里 nfs 服务没启动,看不到 nfs 端口的映射情况)program vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper100024 1 udp 57809 status100024 1 tcp 59892 status100005 1 udp 20048 mountd100005 1 tcp 20048 mountd100005 2 udp 20048 mountd100005 2 tcp 20048 mountd100005 3 udp 20048 mountd100005 3 tcp 20048 mountd100003 3 tcp 2049 nfs100003 4 tcp 2049 nfs100227 3 tcp 2049 nfs_acl100003 3 udp 2049 nfs100003 4 udp 2049 nfs100227 3 udp 2049 nfs_acl100021 1 udp 48151 nlockmgr100021 3 udp 48151 nlockmgr100021 4 udp 48151 nlockmgr100021 1 tcp 49211 nlockmgr100021 3 tcp 49211 nlockmgr100021 4 tcp 49211 nlockmgr
创建共享目录(正是重点部分)
创建共享目录:[root@nfs ~]# mkdir /data更改共享目录权限:[root@nfs ~]# chown -R nfsnobody.nfsnobody /data[root@nfs ~]# chmod 755 -R /data添加一块磁盘将永久挂载在/data 目录上:
添加一块磁盘将永久挂载在/data 目录上:
1 添加新磁盘重启虚拟机

//#查看新磁盘名字[root@nfs ~]# cat /proc/partitionsmajor minor #blocks name8 16 20971520 sdb8 17 20970496 sdb18 0 41943040 sda8 1 512000 sda18 2 41430016 sda211 0 4228096 sr0253 0 39284736 dm-0253 1 2097152 dm-1[root@nfs ~]#[root@nfs ~]# fdisk /dev/sdb//命令(输入 m 获取帮助):nPartition type:p primary (0 primary, 0 extended, 4 free)e extendedSelect (default p): p// 分区号 (1-4,默认 1):// 起始 扇区 (2048-41943039,默认为 2048):// 将使用默认值 2048// Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):// 将使用默认值 41943039// 分区 1 已设置为 Linux 类型,大小设为 20 GiB// 命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。3 .格式化分区并永久挂载[root@nfs ~]# mkfs.ext4 /dev/sdb1

//永久挂载[root@nfs ~]# vi /etc/fstab/dev/sdb1 /data ext4 defaults 0 0[root@nfs ~]# mount -a[root@nfs ~]# df -h #查看是否挂载成功文件系统 容量 已用 可用 已用% 挂载点devtmpfs 898M 0 898M 0% /devtmpfs 910M 0 910M 0% /dev/shmtmpfs 910M 9.6M 901M 2% /runtmpfs 910M 0 910M 0% /sys/fs/cgroup/dev/mapper/centos-root 21G 1.3G 20G 7% //dev/sda1 1014M 150M 865M 15% /boottmpfs 182M 0 182M 0% /run/user/0/dev/sdb1 20G 45M 19G 1% /data//4 配置 nfs 共享目录[root@nfs ~]# vi /etc/exports/data 192.168.116.0/24(rw,no_root_squash,async) #分配no_root_squash 权限//5 生效配置与检验[root@nfs ~]# exportfs -rvexporting 192.168.116.0/24:/data[root@nfs ~]# showmount -e localhostExport list for localhost:/data 192.168.116.0/24[root@ftp ~]# showmount -e 192.168.116.131 #检测 nfs 共享目录创建成果Export list for 192.168.116.131:/data 192.168.116.0/246.4 调试与检验成果将/data 目录挂载到/home/vsftpd/xmcsxy/目录上[root@ftp ~]# mount -t nfs 192.168.116.131:/data /home/vsftpd/xmcsxy/[root@ftp ~]# df -h文件系统 容量 已用 可用 已用% 挂载点devtmpfs 898M 0 898M 0% /devtmpfs 910M 0 910M 0% /dev/shmtmpfs 910M 9.6M 901M 2% /runtmpfs 910M 0 910M 0% /sys/fs/cgroup/dev/mapper/centos-root 30G 1.3G 29G 5% //dev/sda1 1014M 149M 865M 15% /boottmpfs 182M 0 182M 0% /run/user/0192.168.100.12:/data 20G 44M 19G 1% /home/vsftpd/xmcsxy创建对应 FTP 虚拟用户的家目录:[root@ftp ~]# cd /home/vsftpd/xmcsxy/[root@ftp xmcsxy]# mkdir yumwei[root@ftp xmcsxy]# mkdir yumwei2[root@ftp xmcsxy]# mkdir yumwei3[root@ftp xmcsxy]# mkdir yumwei4[root@ftp xmcsxy]# mkdir yumwei5[root@ftp xmcsxy]# mkdir yumwei6测试虚拟用户登录:在 nfs 服务端安装 lftp(ftp 命令行客户端):
测试虚拟用户登录:
在nfs 服务端安装 lftp(ftp 命令行客户端)
测试虚拟用户登录:
在 nfs 服务端安装 lftp(ftp 命令行客户端):
[root@nfs ~]# lftp bai1@192.168.116.130口令:lftp bai1@192.168.116.130:~> ls-rw-r--r-- 1 0 0 15056476 Dec 22 2021 php-5.6.39.tar.bz2lftp bai1@192.168.116.130:/> get php-5.6.39.tar.bz2
shell 备用数据脚本及定时计划
[root@nfs ~]# vi /usr/local/sbin/backup.sha=`date '+%Y%m%d'` #定义时间b=/backup/weekbackup #定义备份目录路径c=/var/log/backup.log #定义输出日志路径pname=$(rpm -qa | grep rsync) #定义 rsync 安装包检查#判断 rsync 是否存在if [ $? -eq 0 ]thenecho "软件包 rsync 已经安装。"elseecho "软件包 rsync 没有安装"yum -y install rsync >> /dev/nullif [ $? -eq 0 ];thenecho "安装 rsync 完成。"elseecho "安装 rsync 失败。"fifi#判断备份目录是否存在,并增量备份。if [ ! -d "$b" ];thenmkdir -p $becho "$a Backup File missing!" >> /var/log/backup.logrsync -rvz /data $b/$aelsersync -rvz /data $b/$aif [ -d $b/$a ];thenecho "$a Backup success." >> /var/log/backup.logfind $b -mtime +14 | xargs rm -rfelseecho "$a Backup failed." >> /var/log/backup.logfifi测试脚本执行过程结果:[root@nfs ~]# sh -x /usr/local/sbin/backup.sh++ date +%Y%m%d+ a=20211222+ b=/backup/weekbackup+ c=/var/log/backup.log++ rpm -qa++ grep rsync+ pname=+ '[' 1 -eq 0 ']'+ echo '软件包 rsync 没有安装'软件包 rsync 没有安装+ yum -y install rsync+ '[' 0 -eq 0 ']'+ echo '安装 rsync 完成。'安装 rsync 完成。+ '[' '!' -d /backup/weekbackup ']'+ mkdir -p /backup/weekbackup+ echo '20211222 Backup File missing!'+ rsync -rvz /data /backup/weekbackup/20211222sending incremental file listcreated directory /backup/weekbackup/20211222data/data/lost+found/data/yumwei/data/yumwei/php-5.6.39.tar.bz2data/yumwei2/data/yumwei3/data/yumwei4/data/yumwei5/data/yumwei6/sent 15061796 bytes received 63 bytes 30123718.00 bytes/sectotal size is 15056476 speedup is 1.00[root@nfs ~]# crontab -eno crontab for root - using an empty onecrontab: installing new crontab[root@nfs ~]#[root@nfs ~]#[root@nfs ~]# crontab -e0 21 */7 * * sh /usr/local/sbin/backup.sh #每 7 天晚上 21 点执行一次脚本
至此案例实操完成!
