一、系统引导过程
1.1开机自检:初始化硬件
开始加电,主板BIOS对硬件检查,如错误中断,成功移交系统控制权
1.2查找启动介质
自检后选引导介质
1.3引导加载器
从介质中加载介质程序
1.4加载内核
内核初始化,探测可用硬件,硬件启动程序
1.5第一个进程
/sbin/init 启动systemd进程
1.6运行级别
/etc/systemd/system/default.target
模式:
0 ==> runlevel0.target, poweroff.target 关机
1 ==> runlevel1.target, rescue.target 字符界面,单用户模式,不能联网
2 ==> runlevel2.target, multi-user.target 字符界面
3 ==> runlevel3.target, multi-user.target 字符界面,多用户模式,可以联网
4 ==> runlevel4.target, multi-user.target 保留
5 ==> runlevel5.target, graphical.target 图形界面
6 ==> runlevel6.target, reboot.target 重启
1.7初始化及准备操作系统
systemd执行sysinit.target
1.8 systemd启动multi-user.target下的服务
1.9 systemd执行multi-user.target下的/etc/rc.d/rc.local
1.10 Systemd执行multi-user.target下的getty.target及登录服务
1.11 systemd执行graphical需要的服务
2.CentOS 7 系统服务管理
启动:systemctl start name.service
停止:systemctl stop name .service
重启:systemctl restart name.service
重载:systemctl reload name.service
状态:systemctl status name.service
查看某服务当前是否运行:systemctl is-active name.service
查看所有已经激活的服务:systemctl list-units --type service
开机自启动:systemctl enable name.service
1.日志的两个比较重要的作用是:审核和监测(如系统故障排错、统计访问量)。对于Linux系统而言,日志文件都默认放在/var/log/下
2.在linux系统中,日志数据主要包括以下三种类型:
2.1内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/syslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置,系统中有相当一部分程序会把自己的日志文件交由rsyslog管理,因而这些程序使用的日志记录已具有相似的格式。
2.2用户日志:这种日志数据用于记录linux操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
2.3程序日志:有些应用程序会选择由自己独立管理一份日志文件,而不是交给rsyslog服务管理,用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同程序使用的日志记录格式可能会存在较大的差异。
3.常见的日志文件:(/var/log/)
大多数日志文件是纯文本文件,可以用cat 、head、tail等来查看
文件类型用file命令查,格式:file 文件名或者目录名
secure:安全相关,主要是用户认证,如登录 、创建和删除账号 、sudo等
messages:记录linux内核消息及各种应用程序的公共日志消息,包括启动、I/O错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获取相关的时间记录信息。
boot.log:系统启动日志。能看到启动流程。
cron:计划任务日志。会记录crontab计划任务的创建、执行信息。
dmesg:硬件设备信息(device)。纯文本,也可以用dmesg命令查看。
yum.log:yum软件的日志。记录yum安装、卸载软件的记录。
lastlog:用来记录用户最后登录事件的日志。用lastlog查看(二进制日志文件)
btmp:登录失败的信息(bad)。用lastb查(二进制日志文件)
wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,用last查(二进制日志文件)。
4.1内核及系统日志
内核及系统日志功能主要由rsyslog软件包提供
/etc/logrotate.d/syslog //日志轮转(切割)相关文件
/etc/rsyslog.conf //rsyslogd的主配置文件
/etc/sysconfig/rsyslog //环境设置配置文件
4.1.1日志类别:(用man 3 syslog来查看)
LOG_AUTH //安全或授权信息
LOG_AUTHPRIV //安全或授权信息 (私有)
LOG_CRON //计划任务
LOG_DAEMON //系统守护进程
LOG_FTP //ftp守护进程相关
LOG_KERN //内核消息 (these can't be generated from user processes)
LOG_LOCAL0 //本地自定义
LOG_LPR //打印子系统
LOG_MAIL //邮件子系统
LOG_NEWS //新闻组子系统
LOG_SYSLOG //系统消息
4.1.2日志等级level:(用man 3 syslog来查看)
LOG_EMERG //紧急,紧急情况,系统不可用(例如系统崩溃)。
LOG_ALERT //警告,需要立即修复,例如系统数据库损坏。
LOG_CRIT //严重,例如硬盘错误,可能会阻碍程序的部分功能。
LOG_ERR //错误,运行出现错误
LOG_WARNING //提醒,可能影响正常功能,但是需要注意的事件
LOG_NOTICE //注意,不是错误,不会影响正常功能,但是需要注意的事件
LOG_INFO //信息,一般信息
LOG_DEBUG //调试,程序或系统调试信息等
以公共日志/var/log/messages文件的记录格式为例,其中每一行表示一条日志消息,每一条消息均包括以下四个字段。
时间标签:消息发出的日期和时间
主机名:生成消息的计算机的名称
子系统名称:发出消息的应用程序的名称
消息:消息的具体内容
4.2用户日志
在wtmp、btmp、lastlog等日志文件中,保存了系统用户登录、退出等相关的事件消息,但这些文件都是二进制的数据文件,不能直接使用cat、tail等文本查看工具进行浏览,需要使用who、w、users、last和lastb等命令获取日志信息。
(1)查询当前登录的用户情况:users、who、w命令
(2)查询用户登录的历史记录:last(用于查询成功登录到系统的用户记录)、lastb(用于查询登录失败的用户记录,也可以直接从安全日志文件/var/log/secure中获得相关信息)命令
4.3程序日志
在Linux系统中,还有相当一部分应用程序没有使用rsyslog服务来管理日志,而是由程序自己维护日志记录。例如,httpd网站服务程序使用两个日志文件access_log和error_log分别记录客户访问事件和错误事件,不同应用程序的日志记录格式差别较大,且没有严格使用统一的格式。
故障 忘记root密码(7.5版本)
排除文件系统故障
磁盘资源耗尽故障
1)模拟i节点耗尽故障
# mkdir /dir2
# mount /dev/sdb2 /dir2
# df -i /dir2
编写一个测试程序,运行该程序后可以耗尽sdb2分区中所有可用的i节点。
运行测试程序,确认磁盘空间占用情况
当i节点耗尽以后,在该文件系统中在创建新的文件时,将出现“设备上没有空间”的错误提示,通过df命令可以查看到分区中实际上还有可用的剩余空间,但是因为i节点已经用完,所以无法创建新的文件
修复i节点耗尽故障
只需找出该分区中占用大量i节点的细小文件或空文件,并进行转移或者删除即可。
2.加容量
3.find 查找大文件删除
4.查看磁盘
扩展:添加磁盘不重启
1. 添加了磁盘后查看,没有刷新出来
[root@node /]# fdisk -l
2. 查看主机总线号
root@node /]# ls /sys/class/scsi_host/
host0 host1 host2
3.重新扫描SCSI总线来添加设备
[root@node /]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@node /]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@node /]# echo "- - -" > /sys/class/scsi_host/host2/scan
4. 查看磁盘,可以看到 /dev/sdb这个就是新加的盘
[root@node /]# fdisk -l
扩展:添加网卡不重启
1.首先切换到/etc/sysconfig/network-scripts目录下
2.仿照第一块网卡的配置文件为第二块网卡添加配置文件,配置文件名ifcfg-网卡名,网卡名可以通过ifconfig获取
3.需要修改的字段包括,NAME改成第二块网卡的网卡名、DEVICE改成第二块网卡的网卡名、UUID可以通过nmcli con show查看然后修改