共享资源库系统--练习题

-----------------------------案例需求-----------------------------

①以工坊单位为基础,每个工坊设立一个单独共享资源目录,创建FTP虚拟用户名为zhang1-6;

②权限限制只有下载没有上传的权限,限制最大带宽60KB;

③zhang1-6用户的家目录名称对应6个不同的工坊名词缩写;

④新建的一块20G存储磁盘必须挂载在nfs的共享目录上,每7天晚上21点要求增量备份一次nfs的共享数据,到/backup/weekbackup目录下,存放在以日期命名的目录;

⑤每14天清除上上一周的备份数据。

基础准备:
部署服务的节点规划
IP 主机名 节点
192.168.200.11 FTP FTP服务器、NFS客户端
192.168.200.12 NFS NFS服务器

[root@ftp ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.11
PREFIX=24
GATEWAY=192.168.200.2
DNS1=8.8.8.8
[root@nfs ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.12
PREFIX=24
GATEWAY=192.168.200.2
DNS1=8.8.8.8

两台虚拟机关闭防火墙:
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0

两台虚拟机安装并启动NFS服务:
# yum install -y nfs-utils rpcbind
# systemctl start nfs
# systemctl enable nfs
# systemctl start rpcbind
# systemctl enable rpcbind

安装完后查看nfsnobody用户在不在:

[root@nfs ~]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)

安装并启动vsftp服务:

[root@ftp ~]# yum install -y vsftpd
[root@ftp ~]# systemctl start vsftpd
[root@ftp ~]# systemctl enable vsftpd

需求①

设立一个单独共享资源目录:

[root@nfs ~]# mkdir /data		//创建共享目录
[root@nfs ~]# chown -R nfsnobody:nfsnobody /data		//更改共享目录权限
[root@nfs ~]# chmod -R 755 /data

创建FTP虚拟用户名为zhang1-6:

[root@ftp ~]# vi /etc/vsftpd/users.conf				//创建FTP虚拟用户账号数据 
zhang1		//奇数行为用户名
000000		//偶数行为上一行用户对应的密码
zhang2
000000
zhang3
000000
zhang4
000000
zhang5
000000
zhang6
000000
[root@ftp ~]# db_load -T -t hash -f /etc/vsftpd/users.conf /etc/vsftpd/users.db	//转化为 Berkeley DB 格式的数据文件
[root@ftp ~]# chmod 600 /etc/vsftpd/users.*		//文件权限设置为600,以免数据外泄。
[root@ftp ~]# ls -lh /etc/vsftpd/users.*
-rw------- 1 root root  84 Nov 11 20:46 /etc/vsftpd/users.conf
-rw------- 1 root root 12K Nov 11 20:46 /etc/vsftpd/users.db

要求②

在/etc/vsftpd/vsftpd_user_conf 目录中为每个虚拟用户分别建立配置文件

[root@ftp ~]# mkdir -p /etc/vsftpd/vsftpd_user_conf
[root@ftp ~]# cd /etc/vsftpd/vsftpd_user_conf
[root@ftp vsftpd_user_conf]# vi zhang1 
local_root=/home/vsftpd/yunwei1          # 当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。 
anon_upload_enable=NO                   #是否允许登陆用户有上传权限。
local_max_rate=60000                    #限制最大下载带宽
[root@ftp vsftpd_user_conf]# vi zhang2 
local_root=/home/vsftpd/yunwei2
anon_upload_enable=NO   
local_max_rate=60000  
[root@ftp vsftpd_user_conf]# vi zhang3 
local_root=/home/vsftpd/yunwei3
anon_upload_enable=NO   
local_max_rate=60000
[root@ftp vsftpd_user_conf]# vi zhang4 
local_root=/home/vsftpd/yunwei4
anon_upload_enable=NO   
local_max_rate=60000
[root@ftp vsftpd_user_conf]# vi zhang5 
local_root=/home/vsftpd/yunwei5
anon_upload_enable=NO   
local_max_rate=60000
[root@ftp vsftpd_user_conf]# vi zhang6 
local_root=/home/vsftpd/yunwei6
anon_upload_enable=NO   
local_max_rate=60000

需求③

[root@ftp ~]# useradd vsftpd -d /home/vsftpd -s /sbin/nologin	 //创建vsftpd系统用户,指定家目录。
[root@ftp ~]# mkdir -p /home/vsftpd/yunwei1					//zhang1-6用户的家目录
[root@ftp ~]# mkdir -p /home/vsftpd/yunwei2
[root@ftp ~]# mkdir -p /home/vsftpd/yunwei3
[root@ftp ~]# mkdir -p /home/vsftpd/yunwei4
[root@ftp ~]# mkdir -p /home/vsftpd/yunwei5
[root@ftp ~]# mkdir -p /home/vsftpd/yunwei6
[root@ftp ~]# chmod -R 755 /home/vsftpd

建立支持虚拟用户的PAM认证文件:

[root@ftp ~]# vi /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

在 vsftpd.conf 文件中添加虚拟用户支持配置:

[root@ftp ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO   #禁止匿名用户登录
增加下面配置参数:
chroot_local_user=YES	#禁止用户访问除主目录以外的目录
guest_enable=YES           #启用虚拟用户
allow_writeable_chroot=YES        # 允许写入用户主目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf      #虚拟用户使用的配置文件目录

重启服务:

[root@ftp ~]# systemctl restart vsftpd
[root@ftp ~]# systemctl enable vsftpd

需求④

NFS虚拟机创建一块新的20G存储磁盘:在这里插入图片描述

[root@nfs ~]# mkdir -p /backup/weekbackup		//创建备份共享目录
[root@nfs ~]# mkfs.xfs /dev/sdb1			//格式化磁盘
[root@nfs ~]# mkfs.xfs /dev/sdb2
[root@nfs ~]# mount /dev/sdb1 /data/		//挂载
[root@nfs ~]# mount /dev/sdb2 /backup/weekbackup/
[root@nfs ~]# lsblk				//查看挂载情况
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   40G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   39G  0 part 
  ├─centos-root 253:0    0   37G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  
sdb               8:16   0   20G  0 disk 
├─sdb1            8:17   0   10G  0 part /data
└─sdb2            8:18   0   10G  0 part /backup/weekbackup
sr0              11:0    1  4.2G  0 rom 
[root@nfs ~]# df -hT
/dev/sdb1               xfs        10G   33M   10G   1% /data
/dev/sdb2               xfs        10G   33M   10G   1% /backup/weekbackup
[root@nfs ~]# vi /etc/fstab 
/dev/sdb1       /data               			   ext4    defaults        0  0
/dev/sdb2       /backup/weekbackup   ext4    defaults        0  0

ftp虚拟机磁盘挂载:

[root@ftp ~]# mount -t nfs 192.168.200.12:/data /home/vsftpd/  //挂载到服务端上
[root@ftp ~]# vi /etc/fstab
192.168.200.12:/data     /home/vsftpd    nfs4    defaults        0 0
[root@ftp ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
192.168.200.12:/data     nfs4       20G   44M   19G   1% /home/vsftpd

编辑nfs配置文件:

[root@nfs ~]# vi /etc/exports
/data   192.168.200.0/24(rw,no_root_squash)

生效配置:

[root@nfs ~]# systemctl restart nfs
[root@nfs ~]# showmount -e 192.168.200.12 	//查看共享目录列表
Export list for 192.168.200.12:
/data 192.168.200.0/24

定时计划与备份脚本:
检验是否安装crontab:

[root@nfs ~]# rpm -qa | grep crontabs
crontabs-1.11-6.20121102git.el7.noarch

如果未安装crontab,运用本地yum安装部署:
# yum install crontabs
启动服务并检查服务状态:

[root@nfs ~]# systemctl start crond
[root@nfs ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-11-12 03:11:24 EST; 17min ago
 Main PID: 690 (crond)
    Tasks: 1
   Memory: 700.0K
   CGroup: /system.slice/crond.service
           └─690 /usr/sbin/crond -n

Nov 12 03:11:24 nfs crond[690]: (CRON) INFO (RANDOM_DELAY will be scaled wi....)
Nov 12 03:11:24 nfs crond[690]: (CRON) INFO (running with inotify support)
Nov 12 03:11:24 nfs systemd[1]: Started Command Scheduler.
Nov 12 03:11:24 nfs systemd[1]: Starting Command Scheduler...
Hint: Some lines were ellipsized, use -l to show in full.

备份脚本:

[root@nfs ~]# cat /usr/local/sbin/backup.sh
a=`date '+%Y%m%d'`
b=/backup/weekbackup
c=/var/log/backup.log
pname=$(rpm -qa | grep 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
[root@nfs ~]# chmod 755 /usr/local/sbin/backup.sh

脚本添加可执行权限:

[root@nfs ~]# chmod 755 /usr/local/sbin/backup.sh

需求⑤

添加定时任务:(每7天21点执行一次脚本)

[root@nfs ~]# crontab -e
* 21 */7 * * sh /usr/local/sbin/backup.sh
[root@nfs ~]# crontab -l
* 21 */7 * * /bin/bash /usr/local/sbin/backup.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值