鸟哥Linux私房菜学习记录day9

发布时间 2023-08-04 17:54:33作者: Redamancy_03

第十七章 认识系统服务daemons

通过systemctl管理服务

通过mask来强迫服务注销

unit 的相依性

 通过systemctl管理服务

[root@study ~]# systemctl [command] [unit]
command 主要有:
start :立刻启动后面接的 unit
stop :立刻关闭后面接的 unit
restart :立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思
reload :不关闭后面接的 unit 的情况下,重新载入配置文件,让设置生效
enable :设置下次开机时,后面接的 unit 会被启动
disable :设置下次开机时,后面接的 unit 不会被启动
status :目前后面接的这个 unit 的状态,会列出有没有正在执行、开机默认执行否、登录等信息等!
is-active :目前有没有正在运行中
is-enable :开机时有没有默认要启用这个 unit

 

通过systemctl观察系统上所有的服务

[root@study ~]# systemctl [command] [--type=TYPE] [--all]
command:
list-units :依据 unit 列出目前有启动的 unit。若加上 --all 才会列出没启动的。
list-unit-files :依据 /usr/lib/systemd/system/ 内的文件,将所有文件列表说明。
--type=TYPE:就是之前提到的 unit type,主要有 service, socket, target 等

 

 

# 列出的项目中,主要的意义是:
# UNIT :项目的名称,包括各个 unit 的类别 (看扩展名)
# LOAD :开机时是否会被载入,默认 systemctl 显示的是有载入的项目而已喔!
# ACTIVE :目前的状态,须与后续的 SUB 搭配!就是我们用 systemctl status 观察时,active 的项目!
# DESCRIPTION :详细描述啰
# cups 比较有趣,因为刚刚被我们玩过,所以 ACTIVE 竟然是 failed 的喔!被玩死了! ^_^
# 另外,systemctl 都不加参数,其实默认就是 list-units 的意思!

 通过systemctl管理不同的操作环境

 

 

 

 

第十八章 认识与分析登陆文件

  • 登录文件的重要性:
    • 解决系统方面的错误;
    • 解决网络服务的问题;
    • 过往事件记录簿;
  • Linux 常见的登录文件文件名
    • /var/log/boot.log:本次开机启动的信息
    • /var/log/cron:crontab调度过程
    • /var/log/dmesg:开机时核心侦测过程所产生的各项信息
    • /var/log/lastlog:系统上面所有的帐号最近一次登陆系统时的相关信息,lastlog指令
    • /var/log/maillog 或 /var/log/mail/*:记录邮件的往来信息,其实主要是记录 postfix (SMTP 协定提供者) 与 dovecot (POP3 协定提供者) 所产生的讯息
    • /var/log/messages:系统发生的错误讯息【极其重要】
    • /var/log/secure:牵涉到“需要输入帐号密码”的软件,当登陆时 (不管登陆正确或错误) 都会被记录在此文件
    • /var/log/wtmp, /var/log/faillog:记录正确登陆系统者的帐号信息 (wtmp与错误登陆时所使用的帐号信息 (faillog),对于追踪一般帐号者的使用行为很有帮助。
    • /var/log/httpd/*, /var/log/samba/*:个别服务所制订的登录文件。

CentOS 提供 rsyslog.service 这个服务来统一管理登录文件。可以通过 logrotate (登录文件轮替) 来自动化处理登录文件容量与更新的问题。

针对登录文件所需的功能,我们需要的服务与程序有:

    • systemd-journald.service:最主要的讯息收受者,由 systemd 提供的;
    • rsyslog.service:主要登录系统与网络等服务的讯息;
    • logrotate:主要在进行登录文件的轮替功能。

 

rsyslogd 针对各种服务与讯息记录在某些文件的配置文件就是 /etc/rsyslog.conf这个文件规定了“(1)什么服务 (2)的什么等级讯息 (3)需要被记录在哪里(设备或文件)”三个信息。

 

讯息等级

 

 

登陆文件安全性设置

[root@study ~]# chattr +a /var/log/admin.log
[root@study ~]# lsattr /var/log/admin.log
-----a---------- /var/log/admin.log

加入了这个属性之后,你的 /var/log/admin.log 登录文件从此就仅能被增加,而不能被删除,直到 root 以“ chattr -a /var/log/admin.log ”取消这个 a 的参数之后,才能被删除或移除。

因为这个 +a 的属性让该文件无法被删除与修改,所以啰,当我们进行登录文件轮替时 (logrotate) ,将会无法移动该登录文件的文件名

 

登陆文件服务器的设置

CentOS 7.x 默认的 rsyslogd 本身就已经具有这个登录文件服务器的功能。既然是登录文件服务器,那么我们的 Linux 主机当然会启动一个端口来监听了,那个默认的端口就是 UDP 或 TCP 的 port 514

服务器会启动监听的端口,用户端则将登录文件再转出一份送到服务器去。 而既然是登录文件“服务器”,所以当然有服务器与用户端 (client啰!这两者的设置分别是这样的:

 

 

 登陆文件的轮替logrotate

 

 

 

/etc/cron.daily/logrotate 就是记录了每天要进行的登录文件轮替的行为

 

journalctl观察登录信息

[root@study ~]# journalctl [-nrpf] [--since TIME] [--until TIME] _optional
选项与参数:
默认会秀出全部的 log 内容,从旧的输出到最新的讯息
-n :秀出最近的几行的意思~找最新的信息相当有用
-r :反向输出,从最新的输出到最旧的数据
-p :秀出后面所接的讯息重要性排序!请参考前一小节的 rsyslogd 信息
-f :类似 tail -f 的功能,持续显示 journal 日志的内容(实时监测时相当有帮助!)
--since --until:设置开始与结束的时间,让在该期间的数据输出而已
_SYSTEMD_UNIT=unit.service :只输出 unit.service 的信息而已
_COMM=bash :只输出与 bash 有关的信息
_PID=pid :只输出 PID 号码的信息
_UID=uid :只输出 UID 为 uid 的信息
SYSLOG_FACILITY=[0-23] :使用 syslog.h 规范的服务相对序号来调用出正确的数据!

 

 

logger指令的运用

-p 服务器名称

 

 

第十九章  开机流程、模块管理、Loader

1、开机流程

   1. 载入 BIOS 的硬件信息与进行自我测试,并依据设置取得第一个可开机的设备;
   2. 读取并执行第一个开机设备内 MBR 的 boot Loader (亦即是 grub2, spfdisk 等程序);
   3. 依据 boot loader 的设置载入 Kernel ,Kernel 会开始侦测硬件与载入驱动程序;
   4. 在硬件驱动成功后,Kernel 会主动调用 systemd 程序,并以 default.target 流程开机;
           systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统;
           systemd 启动 multi-user.target 下的本机与服务器服务;
           systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local 文件;
           systemd 执行 multi-user.target 下的 getty.target 及登陆服务;
           systemd 执行 graphical 需要的服务

 

开机流程第一步:BIOS 、boot loader、kernel载入

BIOS:不论传统 BIOS 还是 UEFI BIOS 都会被简称为 BIOS;
MBR:虽然分区表有传统 MBR 以及新式 GPT,不过 GPT 也有保留一块相容 MBR 的区块,因此,下面的说明在安装 boot loader 的部份,MBR 就代表该磁盘的最前面可安装 boot loader 的那个区块
BIOS, 开机自我测试与 MBR/GPT

POST:开机自我测试 (Power-on Self Test)

我们的系统软件大多放置到硬盘中,所以 BIOS 会指定开机的设备好让我们可以读取磁盘中的操作系统核心文件。但由于不同的操作系统的文件系统格式不相同,因此我们必须要以一个开机管理程序来处理核心文件载入 (load的问题,因此这个开机管理程序就被称为 Boot Loader

系统载入BIOS --> 取得主机各项硬件信息 --> 开机自我测试(POST--> 硬件侦测初始化 --> 定义可开机的设备顺序 --> 开机设备的数据读取(BIOS指定设备来读取磁盘中的操作系统核心文件),
通过开机管理程序(Boot Loader)来载入(load)核心文件,而Boot Loader安装在开机设备的第一个扇区内,即MBR。

开机流程第二步:读取MBR内的loader并执行

BIOS 是通过硬件的 INT 13 中断功能来读取 MBR 他就有办法通过 INT 13 这条信道来读取该磁盘的第一个扇区内地MBR软件,这样boot loader 也就能被执行

boot loader 功能:

1.提供菜单:使用者可以选择不同的开机项目,这也是多重开机的重要功能
2.载入核心文件:直接指向可开机的程序区段来开始操作系统;
3.转交其他 loader:将开机管理功能转交给其他 loader 负责

 

开机流程第三步:boot loader载入内核,Kernel侦测硬件和载入驱动程序

 boot loader 可以载入 kernel 与 initramfs ,然后在内存中让 initramfs 解压缩成为根目录, kernel 就能够借此载入适当的驱动程序,最终释放虚拟文件系统,并挂载实际的根目录文件系统,就能够开始后续的正常开机流程

第一个进程init及配置文件/etc/inittab与runlevel
[设置选项] : [run level] : [init的操作行为] : [命令选项]

init处理系统初始化流程(/etc/rc.d/rc/sysinit)
在/etc/inittab里有一句:”/si::sysinit:/etc/rc.d/rc.sysinit”,这表示:开始加载各项系统服务之前,得先设置好整个系统的系统环境,主要利用/etc/rc.d/rc.sysinit这个shellscript来设置好我的系统环境。
启动系统服务与相关启动配置文件(/etc/re.d/rc N & /etc/sysconfig)

设置运行级别及运行顺序
S99local,即/etc/rc.d/rc.local是最后一个处理

用户自定义开机启动程序(/etc/rc.d/rc.local)

根据/etc/inittab的设置加载终端机或X Windows界面

运行中会用到的配置文件
(1)关于模块/etc/modprobe.conf
(2)/etc/susconfig
authconfig
clock
i18n
keyboard & mouse
network
network-scripts

运行级别的切换
永久修改:/etc/inittab里修改数字
临时修改:init[0-6]

内核模块的放置处
/lib/modules/(uname−r)/kernel模块依赖性检查即是检查/lin/modules/
(uname -r)/modules.dep这个文件
利用depmod创建文件

内核模块的查看
lsmod:查看内核加载了多少模块
modinfo:查看每个模块的信息

内核模块的加载与删除
insmod:加载模块
rmmod:删除模块
modprobe:解决模块依赖问题

内核模块的额外参数设置(/etc/modprobe.conf)





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

1.网络设置

 # NAME 就是连线代号,通常与后面的网卡 DEVICE 会一样!
# UUID 这个是特殊的设备识别,保留就好不要理他!
# TYPE 就是网卡的类型,通常就是以太网卡!
# DEVICE 当然就是网卡名称啰

 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 位址!

 

2.日期与时间设置

[root@study ~]# timedatectl [commamd]
选项与参数:
list-timezones :列出系统上所有支持的时区名称
set-timezone :设置时区位置
set-time :设置时间
set-ntp :设置网络校时系统

3.防火墙简易设置

 4.以系统内置dmidecode解析硬件配备