NFS部署以及备份web服务器代码和数据库

NFS服务部署流程

服务端部署:

第一个历程: 下载安装软件

yum install -y nfs-utils rpcbind

第二个历程: 编写nfs服务配置文件

vim /etc/exports
/data 192.168.149.0/24(rw,sync)
#
/data: 这是 NFS 服务器上要共享出去的目录的路径。在这个例子中,服务器上的 /data 目录将被共享给网络上的其他主机。

192.168.149.0/24:表示的 IP 地址范围。它指定了哪些客户端可以访问这个共享。

(rw,sync): 这些是共享的选项,定义了客户端如何访问共享资源。
rw: 表示远程主机可以对共享的文件系统进行读写操作(read-write)。这意味着客户端不仅可以读取 /data 目录中的文件,还可以修改、创建和删除文件。
sync: 表示所有的文件系统操作都将同步写入磁盘。当客户端执行写操作时,数据将立即被写入存储设备,而不是被缓存。这有助于保证数据的一致性和完整性,特别是在多客户端环境中。

第三个历程: 创建一个存储目录

mkdir /data
chown nfsnobody.nfsnobody /data

#
更改属主和属组为 nfsnobody 是为了提高系统的安全性,确保 NFS 服务在一个受限制的环境中运行,并简化对共享资源的管理和访问控制。这是一种在配置 NFS 服务时广泛采用的安全措施。

第四个历程: 启动服务程序

先启动 rpc服务
systemctl start rpcbind.service 
systemctl enable rpcbind.service

再启动 nfs服务
systemctl start nfs
systemctl enable nfs

客户端部署:

第一个历程: 安装nfs服务软件

yum install -y nfs-utils

第二个历程: 实现远程挂载共享目录

mount -t nfs 192.168.149.113:/data  /mnt 

如何实现自动挂载:

01. 利用rc.local

echo "mount -t nfs 192.168.149.113:/data /mnt" >>/etc/rc.local

02. 利用fstab文件

vim /etc/fstab

172.16.1.31:/data /mnt nfs defaults 0 0

客户端如何卸载

umount -lf /mnt --- 强制卸载挂载点

-l 不退出挂载点目录进行卸载

-f 强制进行卸载操作

PS:扩展说明:

nfs服务端详细配置说明:

实现多个网段主机可以进行挂载

第一种方法:

/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(rw,sync)

第二种方法:

/data 172.16.1.0/24(rw,sync)

/data 10.0.0.0/24(rw,sync)

总结:共享目录的权限和哪些因素有关:

1)和存储目录的本身权限有关 (755 属主:nfsnobody)
2)和配置文件中的权限配置有关 rw/ro xxx_squash anonuid/anongid

NFS配置参数权限:

rw -- 存储目录是否有读写权限
ro -- 存储目录是否时只读权限
sync -- 同步方式存储数据 直接将数据保存到磁盘(数据存储安全)
async -- 异步方式存储数据 直接将数据保存到内存(提高数据存储效率)
no_root_squash -- 不要将root用户身份进行转换
root_squash -- 将root用户身份进行转换
all_squash -- 将所有用户身份都进行转换
no_all_squash -- 不要将普通用户身份进行转换

保证网站存储服务器用户数据安全性:

no_all_squash 需要进行配置 共享目录权限为www(确保客户端用户 服务端用户 uid数值一致)
root_squash 需要进行配置 root---nfsnobody data目录---www
以上默认配置(很多服务默认配置都是从安全角度出发)

如何查看nfs默认配置

cat /var/lib/nfs/etab --- 记录nfs服务的默认配置记录信息

[root@backup ~]# cat /var/lib/nfs/etab 
/data	192.168.149.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

实战例子:

要求:

通过NFS挂载目录,将/html代码,和所有数据库备份到backup的NFS存储目录上

1.将/html目录进行打包压缩

cd /html
tar -zcvf html_back.tar.gz /html

2.将所有数据库进行备份:

要备份MySQL中的所有数据库,可以使用 mysqldump 工具,它是MySQL自带的一个用于导出数据库内容的命令行工具。

mysqldump -u root -p123456 --all-databases > alldb_backup.sql

想要备份特定的数据库,可以省略 --all-databases 并指定数据库名,如下所示:

mysqldump -u root -p123456 blog > blog_backup.sql

#
blog是指mysql里面的数据库名

备份数据库用户信息:

mysqldump -u root -p123456 --single-transaction --routines --triggers --lock-tables --databases mysql > mysqluser_backup.sql

3.将备份好的站点代码文件和数据库文件转移到备份服务器

cp alldb_backup.sql mysqluser_backup.sql html_back.tar.gz /mnt

#mv剪切也可以,复制安全一些.确认复制过去以后再进行删除节省空间

到备份服务器的/data目录检查

[root@backup ~]# cd /data/
[root@backup data]# ll
total 199664
-rw-r--r-- 1 nfsnobody nfsnobody   1279390 Mar 29 15:42 alldb_backup.sql
-rw-r--r-- 1 nfsnobody nfsnobody 202655254 Mar 29 15:42 html_back.tar.gz
-rw-r--r-- 1 nfsnobody nfsnobody    515491 Mar 29 15:42 mysqluser_backup.sql

至此,以上已确认备份完成;

PS:扩展

还原数据库备份:

1.导入数据库备份用户信息:
mysql -u root -p123456 mysql < mysqluser_backup.sql
2.导入数据库备份
mysql -u root -p --force < alldb_backup.sql


#--force: 忽略导入过程中可能出现的错误,例如由于表已存在而导致的错误。

感谢观看~

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ycchenG7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值