【Linux命令】《鸟哥Linux基础》第二十章 基础系统设置与备份策略

第二十章 基础系统设置与备份策略

20.1 系统基本设置

20.1.1 网络设置(手动设置和DHCP自动获取)

网络参数的3种获取方式:

(1)手动设置固定IP
常用于学术网络服务器设置,公司内部特定网络设置,这种方式必须获取的信息如下:

  • IP
  • 子网掩码(netmask)
  • 网关(gateway)
  • DNS主机的IP(通常会有两个,若记不住的话,硬背119.29.29.29即可)

(2)网络参数可自动获取(DHCP协议自动获取)
常见于IP路由器后端的主机,或是学习宿舍的网络环境等。这种网络参数获取方式就被称为DHCP,你啥都不需要知道,只要设置上网方式为DHCP即可。

(3)光纤到户与ADSL宽带拨号
不管是固定IP还是动态IP,只要通过光纤到户或宽带调制解调器拨号上网的,就是这种方式。

通过网卡这个硬件连上Internet。有1块以太网卡,Linux主机的网络接口为ethN(N为数字)。
手动设置IP网络参数:

假设你已经向你的ISP获取了你的网络参数,基本上的网络参数需要如下信息:

  • method:manual(手动设置)
  • IP:172.16.1.1
  • netmask:255.255.0.0
  • gateway:172.16.200.254
  • DNS:172.16.200.254
  • hostname:study.centos.vbird (这个没有影响不大)

查看目前系统上有什么连接代号:

[dj@study ~]$ nmcli connection show 		看看都有哪些
NAME    UUID                                  TYPE      DEVICE 
ens33   e8a9d81b-0ad9-4ee2-948e-67d8aeab208e  ethernet  ens33  
virbr0  6375af01-10eb-44cd-b483-ae27e791f0c8  bridge    virbr0 


[dj@study ~]$ nmcli connection show ens33	选择一个看看具体信息
会输出很多内容


如果要设置参数:
nmcli connection show ens33 \
connection.autoconnect yes \
ipv4.method manual \
ipv4.address 172.16.1.1/16 \
ipv4.getway 172.16.200.254 \
ipv4.dns 172.16.200.254


修改完参数后,还得让它生效:
nmcli connection up ens33


检查下看看是不是生效了:
nmcli connection show ens33
自动获取IP参数

如果你的网络是由自动获取的DHCP协议所分配,上述所有的功能都可以不用知道,只要知道ipv4.method那个项目改成auto即可。

nmcli connection modify ens33 \
connection.autoconnect yes \
ipv4.method auto

nmcli connection up ens33

nmcli connection show ens33
修改主机名
[dj@study ~]$ hostnamectl
   Static hostname: study.centos.vbird					主机名称
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 6abd99169ddf4e83841c049cf5a68726
           Boot ID: c410de2144d84633ab97919f4ebb15ff
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)				操作系统名称
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1062.el7.x86_64		内核名称
      Architecture: x86-64								硬件架构


[dj@study ~]$ hostnamectl set-hostname study.centos.dj	修改vbird为dj


[dj@study ~]$ cat /etc/hostname		看看主机名称,果然改好了!
study.centos.dj

20.1.2 日期与时间设置

[dj@study ~]$ timedatectl 
      Local time: 三 2020-06-17 18:51:28 CST	本地时间
  Universal time: 三 2020-06-17 10:51:28 UTC	UTC时间,格林威治标准时间
        RTC time: 三 2020-06-17 10:51:28		
       Time zone: Asia/Shanghai (CST, +0800)	时区
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a



[dj@study ~]$ timedatectl list-timezones | grep -i new		看看有没有New York时区,若有,将目前的时区更新一下
America/New_York
America/North_Dakota/New_Salem



[dj@study ~]$ timedatectl set-timezone "America/New_York"	重新设置一下
[dj@study ~]$ timedatectl 									查看当前时区信息
      Local time: 三 2020-06-17 06:54:54 EDT
  Universal time: 三 2020-06-17 10:54:54 UTC
        RTC time: 三 2020-06-17 10:54:54
       Time zone: America/New_York (EDT, -0400)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  日 2020-03-08 01:59:59 EST
                  日 2020-03-08 03:00:00 EDT
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  日 2020-11-01 01:59:59 EDT
                  日 2020-11-01 01:00:00 EST



[dj@study ~]$ timedatectl set-timezone "Asia/Shanghai"		最好重新设置回来
[dj@study ~]$ timedatectl 
      Local time: 三 2020-06-17 18:55:38 CST
  Universal time: 三 2020-06-17 10:55:38 UTC
        RTC time: 三 2020-06-17 10:55:38
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

20.1.3 语系设置

[dj@study ~]$ localectl					查看系统语系
   System Locale: LANG=zh_CN.UTF-8
       VC Keymap: n/a
      X11 Layout: cn,gb
     X11 Variant: ,


[dj@study ~]$ locale					当前这个软件的语系信息
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

切换为en_US.utf8:

[dj@study ~]$ localectl set-locale LANG=en_US.utf8
[dj@study ~]$ systemctl isolate multi-user.target
[dj@study ~]$ systemctl isolate graphical.target

20.1.4 防火墙简易设置

防火墙是一种网络数据的过滤方式,可以根据你服务器启动的服务来设置是否开放,也能对你信任的用户来开放。

CentOS 7.x默认的防火墙机制是firewalld,它的管理界面主要是通过命令行firewall-cmd这个详细的命令,这里仅使用图形界面来介绍。

配置:运行时、永久,两者差异

不要只是在运行时记录区增加规则设置,而是必须要在永久记录区增加规则才行。

区域:根据不同的环境所涉及的网络区域

目前只需要考虑public这个项目即可。

相关设置项目
  • 服务:默认开启了ssh和dhcpv6-client
  • 端口:如果你提供的服务所启动的端口不是常规的端口,那么还要调整整个端口。
  • 富规则
  • 接口:这个区域是针对哪个网卡来做规范,只有一个网卡的话,那当然就是针对那个网卡做的规范

打开tcp、http、HTTPS服务,同时添加222(tcp)、555(tcp)端口。

开放局域网络:

[dj@study ~]$ firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'
success


[dj@study ~]$ firewall-cmd --reload			重新加载防火墙系统
success

20.2 服务器硬件数据的收集

20.2.1 使用dmidecode查看硬件设备

可以查看CPU型号、主板型号、内存相关的型号等,在升级设备方面很有用。

[root@study ~]$ dmidecode -t 1		阿拉伯数字1,详细的系统信息,含主板的型号与硬件的基础信息等
[root@study ~]$ dmidecode -t 4		数字4,CPU相关信息
[root@study ~]$ dmidecode -t 9		数字9,系统的相关插槽格式,包括PCI、PCI-E等插槽规格说明
[root@study ~]$ dmidecode -t 17		每一个内存插槽的规格,若有内存,则列出该内存的容量与型号

20.2.2 硬件资源的收集与分析

除了直接调出/proc下面的文件内容之外,还有几个简单命令来将内核所检测到的硬件显示出来,常见的命令:

gdisk	可以使用gdisk -I 将分区表列出
dmesg	查看内核运行过程中所显示的各项信息记录
vmstat	可分析系统(CPU、RAM、IO)目前的状态
lspci	列出整个PC系统的PCI接口设备
lsusb	列出目前系统上面各个USB端口的状态,与连接的USB设备
iostat	与vmstat类似,可实时列出整个CPU与接口设备的输入/输出状态

20.2.3 了解磁盘的健康状态

smartctl -a /dev/sda		显示/dev/sda完整的信息
smartctl -t short /dev/sda	让磁盘进行一次自我检测的操作
smartctl -a /dev/sda		再次查看一下

磁盘自我检测的操作,可能磁盘的I/O状态会比较忙碌,不建议在系统忙碌的时候进行,否则会影响系统性能。

20.3 备份的要点

20.3.1 备份数据的考虑

Ghost,单机备份软件,可以将你系统上面的磁盘数据完整地复制起来,变成一个大文件,你可以通过限制非常便宜的USB外接磁盘备份出来,未来恢复时,只需要将USB硬盘连接到主机,就几乎可以进行裸机恢复了。

20.3.2 哪些Linux数据具有备份的意义

可以选择备份重要的文件,也可以备份整个系统,这里讲解备份重要文件。

重要文件分为两类:

  1. 操作系统本身需要备份的文件
  2. 类似网络服务的内容数据
操作系统本身需要备份的文件
  • /etc/*
  • /home/*
  • /var/spool/mail/
  • /var/spool/{at|cron}/
  • /boot/
  • /root/
  • 如果安装过其他的软件,那么/usr/local//opt也最好备份一下
网络服务的数据库方面
  • 软件本身的配置文件,如/etc/*/usr/local/*
  • 软件服务提供的数据,
    WWW数据:/var/www/*/srv/www/*,及系统的用户家目录
    MariaDB:/var/lib/mysql/*
  • 其他在Linux主机上面提供的服务的数据库文件
推荐需要备份的目录
  • /etc
  • /home
  • /root
  • /var/spool/mail/var/spool/cron//var/spool/at/
  • /var/lib
不需要备份的目录
  • /dev
  • /proc/sys/run
  • /mnt/media
  • /tmp

20.3.3 备份用存储媒介的选择

如果可以的话,最好使用能够容错的外接式NAS存储设备。所谓NAS其实就是一台小型的Linux服务器,里面还能提供定制化的服务,包括不同的接口和传输协议。

一般如果要存储较长时间,同时担心碰撞问题,目前企业界还是很多人会喜欢用磁带来存储。磁带的存储方式除了怕被消磁和发霉,还是很受企业欢迎的。

20.4 备份的种类、频率与工具的选择

备份的种类:累计备份、差异备份。

20.4.1 完整备份之累积备份

完整备份的话,当硬件出问题导致系统损坏时,只要将完整备份拿出来,整个给它填回硬盘,所有事情就搞定了。不涉及什么配置环境啥的,如果是使用dd命令甚至都不需要重装系统。

完整备份就是将整个目录/整个系统通通备份下来的意思。

累积备份的原则:第一次备份后,下次备份,只比较当前待备份内容与第一次备份内容的差异,仅备份差异的文件。

还原麻烦,要先把第一次备份内容还原,再还原第二次备份的差异,再还原第三次备份的差异…

累计备份用的备份软件:ddcpioxfsdump/xfsrestore等。dd可以直接读取磁盘的扇区而不理会文件系统,是相当好的备份工具,就是慢!

dd if=/dev/sda of=/dev/sdb		dd用来将/dev/sda备份到完全一模一样的/dev/sdb硬盘中(由于dd是读取扇区,因此后者不需要格式化)


find / -print | cpio -covB > /dev/st0		备份到磁带机
cpio -iduv < /dev/st0						还原


完整备份文件系统:
xfsdump -l 0 -L 'full' -M 'full' -f /backupdata/home.dump /home
第一次进行累积备份:
xfsdump -l 1 -L 'full-1' -M 'full-1' -f /backupdata/home.dump1 /home


使用tar,将不需要备份的排除在外
tar --exclude /proc --exclude /mnt --exclude /tmp --exclude /backupdata -jcvp -f /backupdata/system.tar.bz2/

20.4.2 完整备份之差异备份

差异备份是,每次的备份都是与原始的完整备份比较的结果。

rsync -av 来源目录 目标目录	

将/home镜像到/backupdata/home中:
rsync -av /home /backupdata/	此时会在/backupdata下面产生/home这个目录

rsync -av /home /backupdata/	再次进行备份会快很多,如果没有修改,几乎不会进行任何操作

差异备份所使用的的磁盘容量可能比累积备份更大,但是它还原很快,因为只需要还原完整备份与最近一次的差异备份即可。

20.4.3 关键数据备份

备份关键数据最麻烦的地方在于还原。

根据日期备份MariaDB数据库:

tar -jpcvf mysql.`date +%Y-%m-%d`.tar.bz2 /var/lib/mysql

20.5 鸟哥的备份策略

  1. 主机硬件:使用一个独立的文件系统来存储备份数据,将此文件系统挂载到/backup当中
  2. 每日进行:备份mysql数据库
  3. 每周进行:包括/home/var,/etc,/boot,/usr/local等目录与特殊服务的目录
  4. 自动处理:利用/etc/crontab来进行自动备份
  5. 异地备份:(a)每月定期将数据分贝刻录到光盘上面,(b)使用网络传输给另一台机器上面

20.6 灾难恢复的考虑

硬件损坏,且具有完整备份的数据时

首先处理好硬件。

然后直接将完整的系统恢复回去即可。

由于软件的问题产生的被攻击信息安全事件
  1. 先拔掉网线,最好将系统进行完整备份到其他媒介上,以备未来查验
  2. 开始查看日志文件,尝试找出各种可能的问题
  3. 开始安装新系统(最好找最新的发行版)
  4. 进行系统升级,与防火墙相关规则的制定
  5. 根据2的错误,在安装完成新系统后,将那些bug修复
  6. 进行各项服务与相关数据的恢复
  7. 正式上线提供服务,并且开始测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值