天天看点

云运维-任务4-共享资源库系统FTP、NFS-20201112

一、FTP服务

1、简介

FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文件传输协议,FTP协议是现今使用最为广泛的网络文件共享协议之一,我们现在也一直有在用着FTP协议来进行各种文件的传输,FTP为我们提供了一种可靠的方式在网络上进行文件的共享。

2、实验目标

以工坊单位为基础,每个工坊设立一个单独共享资源目录,创建FTP虚拟用户名为zhang1-6;权限限制只有下载没有上传的权限,限制最大带宽60KB;zhang1-6用户的家目录名称对应6个不同的工坊名词缩写。

3、搭建、配置、测试

#yum -y install vsftpd
#systemctl start vsftpd
#systemctl enable vsftpd
#vi /etc/vsftpd/users.conf
zhang1
123456
zhang2
123456
zhang3
123456
zhang4
123456
zhang5
123456
zhang6
123456

#db_load -T -t hash -f /etc/vsftpd/users.conf /etc/vsftpd/users.db    //生成虚拟用户口令认证的db文件
#chmod 600 /etc/vsftpd/users.*
#ls    -lh /etc/vsftpd/users.*

#useradd vsftpd -d /home/vsftpd -s /sbin/nologin   //创建 FTP 根目录及虚拟用户映射的系统用户
#mkdir -p /home/vsftpd/xmcsxy
#chmod -R 755 /home/vsftpd

#vi /etc/pam.d/vsftpd   //建立支持虚拟用户的PAM认证文件
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users

#vi /etc/vsftpd/vsftpd.conf
搜索:anonymous_enable=YES 改为: NO      #禁止匿名用户登录
增加下面配置参数:
chroot_local_user=YES             #禁止用户访问除主目录以外的目录
guest_enable=YES                   #启用虚拟用户
allow_writeable_chroot=YES    # 允许写入用户主目录 

#vi /etc/vsftpd/vsftpd.conf           //若要为不同的虚拟用户账号设置不同的访问权限,为每个虚拟用户建立单独的配置文件来实现
user_config_dir=/etc/vsftpd/vsftpd_user_conf   //虚拟用户使用的配置文件目录

#mkdir -p /etc/vsftpd/vsftpd_user_conf
#cd /etc/vsftpd/vsftpd_user_conf/
#vi zhang1                                       //为每个虚拟用户分别建立配置文件!!!
local_root=/home/vsftpd/xmcsxy
anon_upload_enable=NO
write_enable=YES
anon_world_readable_only=NO


重启服务并测试:
#systemctl restart vsftpd
#关闭防火墙、selinux
#cd /home/vsftpd/xmcsxy/
#echo "hello"   >  a.txt
           

注意:编辑了虚拟用户账号和密码后不要轻易修改用户名称或密码,若需修改,先把/etc/vsftpd 下的users.db文件删除,然后编辑完成后,要重新执行命令:db_load -T -t hash -f /etc/vsftpd/users.conf /etc/vsftpd/users.db

运用windows图形化FTP工具(Filezilla):

① 登录:

云运维-任务4-共享资源库系统FTP、NFS-20201112

② 上传:

云运维-任务4-共享资源库系统FTP、NFS-20201112

③ 下载:

云运维-任务4-共享资源库系统FTP、NFS-20201112

#tail -f /var/log/secure //可以通过日志查看登录是否报错

使用lftp相比使用ftp的优势较多,可以显示上传下载的百分比进度以及可以上传下载文件夹。

用法:

lftp username:[email protected] //默认21端口 回车后输入密码

NFS节点上部署lftp客户端:

#yum -y install lftp
#lftp [email protected]    //如下图所示:
           
云运维-任务4-共享资源库系统FTP、NFS-20201112

二、NFS服务

1、什么是NFS

它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

而 NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间的传输数据就要有相对应的网络端口;基本上NFS服务器的端口开在2049上,但是由于文件系统较为复杂,NFS其他程序需要开启一些额外的端口,而这些额外端口又是随机的;那么客户端如何去知道这些额外随机端口呢?

通过远程过程调用(Remote Procedure Call,RPC)协议来实现!

2、实验目标

新建一块10G存储磁盘挂载到nfs的共享目录上,每周一晚上21点要求备份一次nfs的共享数据,到/backup/weekbackup目录下, 存放在以日期命名的目录;每14天清除上上一周的备份数据。

3、NFS部署

#yum -y install nfs-utils rpcbind
#id nfsnobody                            //安装完后查看nfsnobody用户在不在
#systemctl start rpcbind           //启动rpc服务:
#systemctl enable rpcbind
#yum  -y install net-tools
#netstat -tnulp|grep rpc    //查看rpc端口

#systemctl start nfs           //启动nfs服务:
#systemctl enable nfs
#rpcinfo -p localhost       //rpcinfo实用工具显示那些使用portmap注册的程序的信息,并向程序进行RPC调用,检查它们是否正常运行
#关闭防火墙、selinux
           
云运维-任务4-共享资源库系统FTP、NFS-20201112
#mkdir -p /data/public      //创建共享目录
#mkdir -p /data/test
#mkdir -p /data/linux

#chown -R nfsnobody.nfsnobody /data    //更改共享目录权限
#chmod 755 -R /data

#vi /etc/exports       //编辑nfs配置文件
/tmp    *(rw,no_root_squash)
/data/public    192.168.100.0/24(rw) 
/data/test      192.168.100.11(rw)
/data/linux     *.xmcsxy.com(rw,all_squash,anonuid=40,anongid=40)

#systemctl restart nfs
#showmount -e localhost

#fdisk -l   //可以看到有一块10G的磁盘
#fdisk /dev/sdb      //分一个区,默认全部容量,保存:w
#mkfs.ext3 /dev/sdb1      //Ext3文件系统是直接从Ext2文件系统发展而来,目前ext3文件系统已经非常稳定可靠。它完全兼容ext2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。
#mount /dev/sdb1 /data/public/
           
云运维-任务4-共享资源库系统FTP、NFS-20201112
然后转到另外一台客户端,已安装nfs-utils和rpcbind 的虚拟机:192.168.100.11
#mkdir /mnt/public   //创建共享目录
#showmount -e 192.168.100.12
Export list for 192.168.100.12:
/tmp         *
/data/linux  *.xmcsxy.com
/data/public 192.168.100.0/24
/data/test   192.168.100.11
#mount -t nfs 192.168.100.12:/data/public /mnt/public/
           
云运维-任务4-共享资源库系统FTP、NFS-20201112

测试:

服务器(192.168.100.12):
#cd /data/public/
#echo "test" > test.txt
#ls


客户端(192.168.100.11):
#cd    /mnt/public/
#ls
#cat    test.txt
           

永久挂载:

#vi /etc/fstab       //
增加一行在末尾:
/dev/sdb1               /data/public            ext3    defaults        0 0

#mount -a
           

4、定时计划与备份脚本

#rpm -qa |grep crontabs      //yum install -y crontabs
#systemct3
l start crond

#cd /usr/local/sbin/
#vi  nfsbak.sh
#!/bin/bash
bakfile=/home/vsftpd
bak2dir=/backup/weekbackup/`date +"%F"`
predir=/backup/weekbackup/`date -d "-2 weeks" +"%F"`
baklog=/backup/backup_log.txt

if [ -d $bak2dir ]; then
    echo "`date +'%F'`:$bak2dir is exist." >> $baklog
else
     mkdir -p $bak2dir
     cp -rf $bakfile $bak2dir
     rm -rf $predir
    echo "`date +'%F'`:backup to $bak2dir is successful." >> $baklog
fi

#chmod +x /usr/local/sbin/nfsbak.sh 

使用date -s 修改当前实时的日期和时间:
#date -s 2020-11-12
#date -s 10:25:00
           
#crontab -e
* 21 * * */7   /usr/local/sbin/nfsbak.sh
#crontab -l   //查看当前已配置的定时任务
           

继续阅读