1.统一hosts

cat /etc/hosts
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web02
172.16.1.8 web01
172.16.1.51 db01
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.61 m01

2.服务端软件安装及启动

rpm -qa nfs-utils rpcbind
yum -y install nfs-utils rpcbind
# 注意启动顺序,rpcbind在前,nfs在后
/etc/init.d/rpcbind start
# 查看有没有'房源'
rpcinfo -p localhost
# 使用yum/rpm包安装的软件,推荐使用/etc/init.d/nfs start这样的启动方式
/etc/init.d/nfs start
chkconfig nfs on
chkconfig rpcbind on
# 开机启动的顺序在脚本中写着
ls /etc/rc.d/rc3.d/ | egrep "nfs|rpcbind"
S13rpcbind
S14nfslock
S30nfs

3.服务器端配置

mkdir /data
chown nfsnobody.nfsnobody /data/
# sync是直接写入磁盘,async是先写到缓存,再统一写到磁盘
cat /etc/exports
/data 172.16.1.0/24(rw,sync)
# reload的作用:让已经到达服务器的连接正常被处理,并拒绝新连接
/etc/init.d/nfs reload
# reload相当于下面的命令,exportfs还支持不用配置文件就可以把目录共享出去
/usr/sbin/exportfs -rv
/usr/sbin/exportfs -o rw,sync 172.16.1.0/24:/data2
# 查看有没有把目录'共享出去'
showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
# 查看nfs挂载出去的目录的所有情况
cat /var/lib/nfs/etab

4.客户端(web01)安装及启动,优化挂载

yum -y install nfs-utils rpcbind
/etc/init.d/rpcbind start
chkconfig rpcbind on
# 挂载之前检测
showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
mount -t nfs 172.16.1.31:/data /mnt
umount /mnt
# 如果发现了device is busy,不要用fuser此类的命令,直接用lf(lazy、force)参数
umount -lf /mnt
# 优化的参数有下面这些,但默认的其实就行(性能参数越多,速度可能越慢)
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 172.16.1.31:/data /mnt
echo 'mount -t nfs 172.16.1.31:/data /mnt' >> /etc/rc.local
# 服务端进行NFS内核优化
cat >> /etc/sysctl.conf << EOF
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
EOF
sysctl -p

5.故障修复案例:人为失误损坏fstab文件,错误导致系统无法启动

进入救援模式:
mount -o rw,remount /
然后修改/etc/fstab
文件系统只读故障修复案例:
问题产生原因:
a.RSYNC bug
b.文件系统内部自动一致性导致称为ro(只读)
解决办法:进入救援模式
mount -o rw,remount /

6.如何把挂载nfs信息写在/etc/fstab中,并能开机挂载成功

172.16.1.31:/mnt  /mnt  nfs defaults  0 0
chkconfig netfs on
all_squash:将远程访问的所有普通用户映射为匿名用户或用户组(一般为nfsnobody)
root_squash:将root用户及所属用户组都映射为匿名用户
# 客户端/etc/exports中添加如下配置:
/data1 172.16.1.0/24(rw,sync,all_squash,root_squash,anonuid=888,anongid=888)
useradd -u 888 zuma -s /sbin/nologin -M
chown -R zuma.zuma /data1/
# 就这样,客户端不论是root来还是普通用户来,都被映射为zuma这个用户.

7.实现全网备份脚本

#!/bin/bash
IP=$(ifconfig eth1|awk -F '[ :]+' 'NR==2 {print$4}')
Path=/backup
if [$(date +%w) -eq 0]
then
Time="week_$(date +%F-%w -d "-1day")"
else
Time=$(date +%F -d "-1day")
fi
mkdir $Path/$IP/ -p cd /
tar zcvfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html/* app/logs/*
md5sum $Path/$IP/backup_$Time.tar.gz > $Path/$IP/flag_$Time.log
rsync -az $Path/ rsync_backup@172.16.1.41::conf --password-file=/etc/rsync.password
find /backup/ -type f -mtime +7 \( -name "*.tar.gz" -o -name "*.log" \) | xargs rm -f

8.find实战

# 找7天以内指定的文件
find /backup/ -type f -mtime -7 \( -name "*.tar.gz" -o -name "*.log" \)
# backup上保留180天以内的数据,但周六的数据都保留
find /backup/ -type f -mtime +180 ! -name "*week*_6*"|xargs rm -f
# 查找当天的flag日志,并检查文件完整性(备份服务器的目录结构得和客户端一模一样)
find /backup -type f -name "*${Time}*.log"|xargs md5sum -c

9.备份服务器上的脚本

cat check_and_del.sh
Path=/backup
if [$(date +%w) -eq 0]
then
Time="week_$(date +%F-%w -d "-1day")"
else
Time=$(date +%F -d "-1day")
fi
LANG=en
find /backup -type f -name "*${Time}*.log"|xargs md5sum -c >> $Path/${Time}_result.log 2>&1
mail -s "$Time bak result" oldboytraining@163.com < $Path/${Time}_result.log
find /backup/ -type f -mtime +180 ! -name "*week*_6*"|xargs rm -f

nfs详解及实现全网备份的更多相关文章

  1. NFS详解

    00.什么是 NFS (Network FileSystem) NFS 就是 Network FileSystem 的缩写,最早之前是由 sun这家公司所发展出来的. 他最大的功能就是可以透过网络,让 ...

  2. Linux NFS 详解

    目录:      1.了解NFS服务      2.NFS主要文件      3.NFS安装      4.NFS配置     5.NFS客户端配置 6.固定NFS端口      7.Windows挂 ...

  3. Linux网络文件系统NFS详解

    什么是文件系统,NFS文件系统又是什么? 简单的说,文件系统就是通过软件对磁盘上的数据进行组织和管理的一种机制,对其的一种封装或透视. 你女朋友拍了美美的暧昧照片,放一个文件夹里发送给了A服务器,当你 ...

  4. Ubuntu 16.04或14.04里下安装搜狗输入法(图文详解)(全网最简单)

    不多说,直接上干货! 其实啊,很简单 分三步走 1.添加fcitx的键盘输入法系统,因为sogou是基于fcitx的,而系统默认的是iBus: 2.安装sogou输入法: 3.设置系统参数及一些注意点 ...

  5. MySQL 备份与还原详解

    相关阅读: MySQL备份和恢复具体实施 http://www.linuxidc.com/Linux/2012-12/76257.htm MySQL备份与恢复的三种方法总结 http://www.li ...

  6. Oracle的exp/imp详解

    原文地址:Oracle的exp/imp详解 作者:jxlazzw 备份概述 逻辑备份:备份可分为两类 ,物理备份和逻辑备份 物理备份:该方法实现数据库的完整恢复,但需要极大的外部存储设备,例如磁带库, ...

  7. NFS原理详解

    NFS原理详解 摘自:http://atong.blog.51cto.com/2393905/1343950 2013-12-23 12:17:31 标签:linux NFS nfs原理详解 nfs搭 ...

  8. NFS和mount常用参数详解 本文目录

    NFS和mount常用参数详解   本文目录 NFS权限参数配置 mount挂载参数 原始驱动程序的挂载选项. 新驱动程序的挂载选项. 怎样改变已经挂载的NTFS卷的权限? 怎样自动挂载一个NTFS卷 ...

  9. Win7 NFS 设置详解 | X-Space

    Win7 NFS 设置详解 | X-Space Win7 NFS 设置详解

随机推荐

  1. GoF23种设计模式之行为型模式之策略模式

    传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 1概述           定义一系列算法,把它们一个个都封装起来,并且让它们可以相互 ...

  2. LeetCode(290) Word Pattern

    题目 Given a pattern and a string str, find if str follows the same pattern. Here follow means a full ...

  3. selenium2-元素管理方式及解析

    1.管理文件格式:yaml 2.Yaml里面的内容格式:   3.格式说明: baidu_input后面接上":",直接回车,然后空两格 type与value这两个key是固定 ...

  4. selenium2-框架思想介绍

    为什么要有框架? 可维护性 提高编写脚本效率 提高脚本的可读性 框架的几大要素: 1. driver管理 2. 脚本 3. 数据 4. 元素对象 5. Log 6. 报告 7. 运行机制 8. 失败用 ...

  5. nginx的常用负载均衡算法,分别是

    随机分配,hash一致性分配,最小连接数分配,主备分配 随机,轮训,一致性哈希,主备,https://blog.csdn.net/liu88010988/article/details/5154741 ...

  6. react技术栈实践(1)

    本文来自网易云社区 作者:汪洋 背景 最近开发一个全新AB测试平台,思考了下正好可以使用react技术开发. 实践前技术准备 首先遇到一个概念,redux.这货还真不好理解,大体的理解:Store包含 ...

  7. webdriver高级应用- 操作日期控件

    1. 通过点击的方式操作日期控件 #encoding=utf-8 from selenium import webdriver import unittest, time, traceback fro ...

  8. C#-SqlServer连接

    C#连接数据库在类方面没有java通用,不同数据库有不同的类库.在这里只做了SqlServer的连接类. public class DbLink { private string config = C ...

  9. c/c++内存泄露的检测方法

    此文内容摘自 https://zhuanlan.zhihu.com/p/22664202 作为   从零开始的 JSON 库教程(三):解析字符串解答篇  的笔记 1A. Windows 下的内存泄漏 ...

  10. 【bzoj4568】[Scoi2016]幸运数字 树上倍增+高斯消元动态维护线性基

    题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一些旅行者希望游 ...