环境
修改主机名:
# hostnamectl set-hostname ftp
# hostnamectl set-hostname nfs
关闭防火墙及安全规则:
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
给NFS挂载一个20G的磁盘
部署FTP
[root@nfs ~]# yum install -y vsftpd
[root@ftp ~]# systemctl start vsftpd
[root@ftp ~]# systemctl enable vsftpd
//安装ftp并设置开机自启
[root@ftp ~]# vi /etc/vsftpd/users.conf
zhanghao1
0
zhanghao2
0
zhanghao3
0
zhanghao4
0
zhanghao5
0
zhanghao6
0
//添加账号(1~6)
[root@ftp ~]# rm /etc/vsftpd/users.db
[root@ftp ~]# db_load -T -t hash -f /etc/vsftpd/users.conf /etc/vsftpd/users.db
[root@ftp ~]# chmod 600 /etc/vsftpd/users.db
//删除原有的users.db,将users.conf转化为 Berkeley DB 格式的数据文件,并设置权限
# cd /etc/vsftpd/vsftpd_user_conf/
# vi zhanghao1
local_root=/home/vsftpd/xmcsxy/yumwei #本地家目录路径
write_enable=YES
anon_upload_enable=NO
anon_max_rate=60000
//以此类推,定义zhanghao1~6
local_root=/home/vsftpd/xmcsxy/JAVA
write_enable=YES
anon_upload_enable=NO
anon_max_rate=60000
local_root=/home/vsftpd/xmcsxy/bigdata
write_enable=YES
anon_upload_enable=NO
anon_max_rate=60000
local_root=/home/vsftpd/xmcsxy/weixin
write_enable=YES
anon_upload_enable=NO
anon_max_rate=60000
local_root=/home/vsftpd/xmcsxy/android
write_enable=YES
anon_upload_enable=NO
anon_max_rate=60000
local_root=/home/vsftpd/xmcsxy/game
write_enable=YES
anon_upload_enable=NO
anon_max_rate=60000
[root@ftp vsftpd_user_conf]# systemctl restart vsftpd
[root@ftp vsftpd_user_conf]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2021-03-16 19:10:02 CST; 8s ago
Process: 1480 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 1481 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─1481 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
3月 16 19:10:02 ftp systemd[1]: Stopped Vsftpd ftp daemon.
3月 16 19:10:02 ftp systemd[1]: Starting Vsftpd ftp daemon...
3月 16 19:10:02 ftp systemd[1]: Started Vsftpd ftp daemon.
[root@ftp vsftpd_user_conf]# netstat -lntp | grep 21
tcp6 0 0 :::21 :::* LISTEN 1481/vsftpd
//重启ftp
部署NFS(两台都要)
# yum -y install nfs-utils rpcbind
//nfs依赖包(两台都要)
# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) 组=65534(nfsnobody)
//查看nfsnobody用户在不在(两台都需要)
# systemctl start rpcbind
# systemctl enable rpcbind
# systemctl start nfs
# systemctl enable nfs
# rpcinfo -p localhost
//启动nfs(两台都要)
在nfs上挂载分区
划分分区
挂载
[root@nfs ~]# mkdir /data.
[root@nfs ~]# vim /etc/fstab
/dev/sdb1 /data. ext4 defaults 0 0
//创建共享目录,并在/etc/fstab文件中添加挂载信息
查看是否挂载成功
[root@nfs ~]# vi /etc/exports
/data 192.168.1.40(rw,no_root_squash,async)
//分配no_root_squash权限
检测共享目录建成
NFS:
[root@nfs ~]# exportfs -rv
exporting 192.168.1.40:/data.
[root@nfs ~]# showmount -e localhost
Export list for localhost:
/data. 192.168.1.40
FTP
[root@ftp ~]# showmount -e 192.168.1.39
Export list for 192.168.1.39:
/data. 192.168.1.40
测试
[root@ftp ~]# vim /etc/fstab
192.168.1.39:/data. /home/vsftpd/xmcsxy nfs defaults 0 0
//ftp上挂载
[root@ftp ~]# mount -a
[root@ftp ~]# df -h
[root@ftp xmcsxy]# mkdir yumwei
[root@ftp xmcsxy]# mkdir JAVA
[root@ftp xmcsxy]# mkdir bigdata
[root@ftp xmcsxy]# mkdir weixin
[root@ftp xmcsxy]# mkdir android
[root@ftp xmcsxy]# mkdir game
[root@ftp xmcsxy]# ll
总用量 40
drwxr-xr-x. 2 root root 4096 3月 16 20:00 android
drwxr-xr-x. 2 root root 4096 3月 16 19:59 bigdata
drwxr-xr-x. 2 root root 4096 3月 16 20:00 game
drwxr-xr-x. 2 root root 4096 3月 16 19:59 JAVA
drwx------. 2 root root 16384 3月 16 19:32 lost+found
drwxr-xr-x. 2 root root 4096 3月 16 19:59 weixin
drwxr-xr-x. 2 root root 4096 3月 16 19:59 yumwei
[root@nfs ~]# yum -y install lftp
shell备用数据脚本及定时计划
[root@nfs ~]# vi /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
[root@nfs ~]# sh -x /usr/local/sbin/backup.sh
设置定时计划
[root@nfs ~]# crontab -e
* 21 */7 * * sh /usr/local/sbin/backup.sh
[root@nfs ~]# crontab -l
* 21 */7 * * sh /usr/local/sbin/backup.sh