linux怎么查看系统重启原因?LINUX系统不明原因重启解决步骤,在Linux中如何排查系统启动问题?
linux怎么查看系统重启原因,网上大部分总结的步骤如下:
-
查看系统日志:系统日志中存储了系统重启异常的情况及其可能的原因。因此,排查和定位问题时,应尽量先详细查看系统日志,确定重启异常的原因,以便有针对性地解决问题。我们可以使用
dmesg
命令来查看系统日志:$ dmesg
2.查看服务状态:如果在查看系统日志后发现有一些正在运行的服务经常挂起,而挂起的服务可能会引起系统重启,因此我们可以使用systemctl
命令来查看服务状态:
$ systemctl status
3.检查硬件设备:根据上述查看系统日志和服务状态,如果还不能搞清楚问题原因,那么可以考虑检查硬件状态,比如磁盘、内存以及电源供电等。因此,可以使用lshw
命令查看硬件设备情况:
$ lshw -short
首先我们排除了硬件故障,UPS故障等问题。
1,查看系统日志
[root@pbx /]# cat /var/log/messages|grep nr -i "shutting down"
2,查看匹配行前后各4行
前4行
[root@pbx /]# cat /var/log/messages|grep -B 4 "shutting down"
后4行
[root@pbx /]# cat /var/log/messages|grep -A 4 "shutting down"
3,查看定时任务
查看定时任务状态
#通过查看发下,所有定时都注销了
[root@pbx etc]# crontab -l
sed 获取一段时间日志
[root@pbx etc]# sed -n '/Nov 15 04:50:01/,/Nov 15 10:51:54/p' /var/log/cron
通过日志看到有reboot的记录,但是上面查看了crontab-l 没有任务
注意:
crontab支持两种状态:
一、直接编写计划任务;
二、使用目录的方式,放在目录里面的都会定时执行。
4,通过ps 进程查看
ps -ef | grep -i reboot
5,crontab 还有2种模式,然后我们就去查看了cron配置文件,发现有sys目录自定义了重启命令。
[root@pbx crontab]# cat /etc/cron.d/sys
在Linux中,可以使用以下命令来查看系统重启的原因:
-
dmesg命令:dmesg命令用于打印出内核环缓冲区的内容,包括系统启动时的信息。使用"dmesg -T | grep 'Restarting system'"命令可以查找包含"Restarting system"的行,以找出系统重启的原因。
-
last命令:last命令用于查看登录和系统重启的历史记录。使用"last -x"命令可以列出系统重启的记录,倒序显示最近的重启记录。
-
journalctl命令:journalctl命令用于查看系统的日志消息。使用"journalctl -b -1"命令可以查看上一次的系统启动日志,其中包括系统重启的原因。
-
/var/log/syslog文件:/var/log/syslog文件是系统的日志文件,其中包含了丰富的系统信息,包括系统重启的原因。可以使用文本编辑器(如vi或nano)打开该文件,并搜索关键词"reboot"来找出重启的原因。
-
/var/log/dmesg文件:/var/log/dmesg文件记录了系统启动时的信息,可以使用文本编辑器打开该文件,并搜索关键词"reboot"来查找系统重启的原因。
在Linux系统中,可以通过以下方法查看系统的重启原因:
使用dmesg命令查看系统日志: dmesg命令可以显示系统启动时的内核日志,包括系统重启的原因。使用以下命令查看:
dmesg | grep -i "reset"
使用last命令查看系统重启历史: last命令可以显示系统的登录和重启历史记录。使用以下命令查看:
last reboot
查看上一次重启时间
who -b
查看/var/log目录下的日志文件: Linux系统将系统的重启原因记录在/var/log目录下的多个日志文件中,常见的包括/var/log/messages、/var/log/syslog等。使用以下命令查看日志文件中的重启原因:
cat /var/log/messages | grep -i "reboot"
使用以下命令来查看最近的重启日志:
sudo cat /var/log/syslog | grep "system reboot"
如果上述命令没有返回任何结果,可以尝试查看其他系统日志文件,比如:
sudo cat /var/log/kern.log | grep "system reboot"
sudo cat /var/log/messages | grep "system reboot"
sudo cat /var/log/boot.log | grep "system reboot"
如果仍然无法找到重启原因,可以尝试查看系统的"last"命令输出,该命令可以显示最近的系统登录和重启记录:
last -x reboot
以上是常见的方法,具体查看系统重启原因的方式可能因Linux发行版和系统配置而有所不同。
在Linux系统中,可以使用以下命令来查看系统重启的原因:
-
dmesg命令:dmesg命令用于显示系统启动时的内核消息。系统重启后,可以使用此命令来查看是否有与重启相关的错误或警告消息。使用以下命令查看dmesg输出:
dmesg | grep "restart"
-
last命令:last命令用于显示系统登录记录和重启记录。可以使用以下命令来查看最近的重启记录:
last -x reboot
-
/var/log/messages文件:系统的重启记录通常会被保存在/var/log/messages文件中。使用以下命令来查看该文件的内容:
cat /var/log/messages | grep "reboot"
-
journalctl命令:journalctl命令用于查看系统日志。可以使用以下命令来查看最近的重启记录:
journalctl -b | grep "reboot"
-
uptime命令:uptime命令用于显示系统的运行时间和当前的负载情况。虽然不直接显示重启原因,但可以通过查看系统运行时间来判断是否发生了重启:
uptime
dmesg
命令:该命令会显示内核的日志消息。重启的原因通常会在这些消息中显示出来。使用以下命令查看dmesg日志:
dmesg -T
/var/log/messages
文件:这个文件记录了系统的运行信息,包括重启原因。使用以下命令查看该文件:
cat /var/log/messages
last
命令:这个命令用于查看系统的登录记录和用户的登出状态,其中也包括了系统的重启记录。使用以下命令查看系统的重启记录:
last -x | grep reboot
/var/log/wtmp
文件:这个文件记录了系统的登录和登出信息,其中也包括了系统的重启记录。使用以下命令查看该文件:
last reboot
uptime
命令:该命令会显示系统的运行时间和平均负载。如果系统是最近重启的,它会显示重启时间。使用以下命令查看系统的重启时间:
shell uptime -s
以上命令都可以在终端中直接执行。根据系统和权限的不同,可能需要以root用户身份运行某些命令。
遇到系统出现不明原因的重启,为迅速查找到原因,解决的步骤一定要清晰。
一、判断是硬件故障还是软件故障,如果服务器有管理口,首先从服务器的管理口登录,查看是否有故障报警,当前,主流服务器厂商一般都有管理口,各个厂商的缺省用户名和口令都不一样,可在网上查询到。
二、执行命令,注意时区设置情况,锁定系统重启的时间
last reboot
三、执行文件查找命令:
find /var/log -type f grep "Mar 27 16" {} \;|iconv -f UTF-8 -t GBK
这里假设重启的时间是3月27日 16点 00分到 59分的某个时间,可过滤重启时的相关细节
四、寻找多次重启时的相似点
cat /var/log/messages|grep "[Mar 27 16,Mar 27 06]"
在使用Linux系统时,经常会遇到服务器意外重启或者需要查看服务器重启的记录的情况。红帽操作系统提供了多种方式来查看服务器的重启记录,让管理员能够及时发现问题并进行相应处理。
一种常用的方式是通过系统日志来查看服务器的重启记录。在Linux系统中,系统日志包含了系统发生的各种操作和事件的记录,包括服务器的重启记录。管理员可以通过命令行工具如journalctl
来查看系统日志。在红帽系统中,可以使用如下命令来查看系统的重启记录:
journalctl --list-boots
这条命令将列出系统的所有启动记录,包括每次启动的时间戳、启动持续时间等信息。通过查看这些记录,管理员可以了解服务器的重启情况,并根据需要进行进一步的排查和处理。
另外一种方式是通过查看/var/log/wtmp
文件来获取服务器的启动和关机记录。这个文件记录了系统的登录、注销以及系统的启动和关机等信息。可以通过如下命令查看该文件:
last reboot
这条命令将列出最近的服务器重启记录,包括重启的时间、持续时间以及重启的原因等信息。管理员可以通过查看这些记录来追踪服务器的重启情况,及时处理相关问题。
除了查看系统日志和/var/log/wtmp
文件外,管理员还可以通过查看/var/log/messages
文件来获取服务器的重启记录。这个文件包含了系统的各种消息和事件的记录,包括服务器的重启信息。可以通过如下命令查看这个文件:
cat /var/log/messages | grep "reboot"
这条命令将筛选出包含"reboot"关键字的记录,即服务器的重启记录。通过查看这些记录,管理员可以获取服务器的重启情况,并根据需要进行相应的处理。
总的来说,在红帽系统中,管理员可以通过查看系统日志、/var/log/wtmp
文件以及/var/log/messages
文件来获取服务器的重启记录。通过及时发现和处理服务器的重启问题,可以提高系统的稳定性和安全性,保障服务器的正常运行。希望以上信息对管理员在维护红帽系统时有所帮助。
CentOS 几种重启方式的区别
Linux centos重启命令:
1、reboot 普通重启
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
Linux centos关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
1.shutdown
shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,
这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能
会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。
而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。
并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机
都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕
决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和
新闻〔news〕的程序则可以正常地离开等等。
shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。
Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐
而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也
没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些
动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
shutdown 参数说明:
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往
往不总是你所预期得到的。
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有
时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
2.halt----最简单的关机命令
其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐
文件系统写操作完成后就会停止内核。
参数说明:
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超
级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。
3.reboot
reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它
的参数与halt相差不多。
4.init
init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的
用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),
init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有
telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐
并且得不到使用shutdown时的信息和等待时间。
在Linux中如何排查系统启动问题?
在Linux中排查系统启动问题通常涉及几个关键步骤,包括但不限于检查日志文件、使用救援模式、分析启动过程中的错误信息等。以下是一个详细的排查流程:
- 安全模式或救援模式启动
单用户模式:如果系统能够启动到一定程度,尝试进入单用户模式(某些发行版中可能是救援模式)。这可以通过在GRUB引导加载器界面编辑启动项,添加single或1到内核命令行来实现。单用户模式下,系统将以根用户身份启动,且不启动网络服务,便于故障排查。
救援模式:对于RHEL/CentOS等系统,可以选择从GRUB菜单启动进入救援模式。救援模式提供了有限的环境,用于修复系统。
- 检查日志文件
系统启动过程中的错误通常会被记录在各种日志文件中,主要关注以下几个:
/var/log/boot.log:许多系统会在这里记录启动时的信息。
/var/log/messages 或 /var/log/syslog:这些日志文件记录了广泛的系统活动,包括启动时的错误信息。
/var/log/dmesg 或 journalctl(对于使用systemd的系统):记录了内核启动时的信息和硬件检测结果。可以使用dmesg命令查看最近一次启动的日志,或者使用journalctl -b(查看当前启动日志)或journalctl -b -1(查看上一次启动日志)。
- 分析启动错误信息
仔细阅读上述日志文件,寻找错误(通常以[ERROR]、[CRITICAL]或类似的标签标识)和警告信息。
注意内核 panic 信息,它们通常指示了严重的系统崩溃问题。
- 硬件检查
如果错误信息指向硬件问题(如磁盘错误、内存问题等),使用相应的工具进行检查。例如,使用smartctl检查硬盘健康状态,或使用memtest86+测试内存。 - 核心转储分析
如果系统崩溃并生成了核心转储文件(通常位于/var/crash),可以使用crash工具结合内核映像和核心转储文件来分析崩溃原因。 - 系统服务和依赖关系
使用systemctl status (针对systemd系统)或service status(针对sysvinit系统)检查特定服务的状态,看是否有服务未能正常启动导致的问题。通过systemctl list-units --state=failed查看所有失败的服务。 - 核心模块和驱动问题
如果问题与特定的硬件驱动或核心模块相关,可能需要更新或重新配置这些模块。 - 远程求助
如果以上步骤无法解决问题,考虑将错误信息和日志文件中的相关内容发布到技术论坛或Stack Overflow等平台上寻求帮助。记得隐去敏感信息。 - 使用Live CD/DVD或USB
在极端情况下,可以使用Linux Live CD/DVD或USB启动系统,然后从外部介质访问和修复主系统的文件,这有助于避免启动过程中由于系统文件损坏导致的问题。
综上所述,你应该能够诊断并解决大多数Linux系统启动问题。记住,耐心和细致是关键,因为问题可能隐藏在大量的日志信息之中。
查看 Linux 系统重启原因
1. 查看系统日志
系统日志记录了系统运行过程中的各种事件和信息,包括系统启动、重启、关机等。我们可以通过查看系统日志来排查系统重启的原因。
在 CentOS 7 中,常用的系统日志文件包括:
/var/log/messages
: 记录了系统的一般信息,包括启动、重启、关机等事件。/var/log/syslog
: 记录了系统的所有日志信息,包括/var/log/messages
中的日志。/var/log/dmesg
: 记录了内核启动过程中的信息,包括硬件检测、驱动加载等信息。
我们可以使用以下命令来查看系统日志:
bash
# 查看最近的系统日志
tail /var/log/messages
# 查看所有系统日志
cat /var/log/messages
# 查看内核启动日志
dmesg
在日志文件中,我们可以查找与系统重启相关的关键字,例如 "Restarting system"、"reboot" 等。找到相关日志后,我们可以进一步分析日志内容来确定系统重启的原因。
2. 使用 last
命令
last
命令可以显示最近登录到系统的所有用户,以及他们的登录时间和退出时间。我们可以使用 last
命令来查看系统重启前后的登录情况,从而判断是否有用户在系统重启前进行了操作。
bash
last
3. 使用 journalctl
命令
journalctl
命令是 Systemd 的日志管理工具,可以用来查看和管理系统日志。我们可以使用 journalctl
命令来查看系统启动日志,其中包括系统重启的原因。
bash
# 查看最近一次的系统启动日志
journalctl -b -1
4. 分析其他信息
除了上述方法之外,我们还可以分析其他信息来排查系统重启的原因,例如:
- 查看系统运行时间:我们可以使用
uptime
命令来查看系统运行时间。如果系统运行时间较短,则可能表明系统存在硬件问题。 - 查看系统负载:我们可以使用
top
或htop
命令来查看系统负载。如果系统负载过高,则可能表明系统存在性能问题。 - 检查系统更新:我们可以使用
yum check-update
命令来检查是否有可用的系统更新。如果存在可用的系统更新,则建议安装更新后重新启动系统。
解决 Linux 系统不明原因重启
如果我们无法确定系统重启的原因,我们可以尝试以下步骤来解决问题:
1. 检查硬件问题
硬件问题是导致系统重启的最常见原因之一。我们可以使用以下方法来检查硬件问题:
- 检查内存:我们可以使用
memtest86+
等工具来测试内存。 - 检查硬盘:我们可以使用
smartctl
等工具来检查硬盘。 - 检查 CPU:我们可以使用
stress
等工具来测试 CPU。
2. 检查软件问题
软件问题也可能导致系统重启。我们可以尝试以下步骤来检查软件问题:
- 更新系统:我们可以使用
yum update
命令来更新系统。 - 检查内核版本:我们可以使用
uname -r
命令来检查内核版本。如果内核版本较旧,则建议更新内核。 - 检查是否存在已知的错误:我们可以搜索已知的错误报告,看看我们的问题是否是一个已知的问题。
3. 禁用自动更新
如果我们在安装系统更新后系统出现重启问题,我们可以尝试禁用自动更新,并手动安装更新。
bash
# 禁用自动更新
systemctl disable yum-cron
# 手动安装更新
yum update
4. 寻求帮助
如果我们尝试了上述所有步骤仍然无法解决问题,我们可以寻求社区或专业人士的帮助。
排查 Linux 系统启动问题
在 Linux 中,我们可以使用以下方法来排查系统启动问题:
1. 查看系统日志
我们可以使用上述方法来查看系统日志,并查找与系统启动相关的错误信息。
2. 使用 grub
命令
GRUB 是 Linux 的启动管理器。我们可以使用 grub
命令来查看启动菜单,并选择不同的启动项。
bash
grub
3. 使用 systemd
工具
Systemd 是 CentOS 7 的默认系统管理工具。我们可以使用 Systemd 工具来查看和管理系统启动服务。
bash
systemctl status <service-name>
4. 使用其他工具
我们可以使用其他工具来排查系统启动问题,例如 chkconfig
、bootchart
等。
以下是一些具体的排查步骤:
1. 如果系统无法进入 GRUB,则可能是硬件问题
我们可以尝试重新插拔内存条、硬盘等硬件设备,或者更换硬件设备。
在 CentOS 7 上排查系统不明原因重启的步骤如下:
1. 查看系统日志
首先,查看系统日志文件,这些文件包含了系统启动和运行时的重要信息。
查看 dmesg
输出
sh
dmesg | less
dmesg
命令会显示内核的消息缓冲区,包含系统启动和硬件相关的信息。寻找关键字如 "panic", "error", "fail" 等。
查看 journalctl
日志
sh
journalctl -xe
journalctl
提供了系统日志的详细输出,可以用 -xe
参数查看最近的严重错误。
2. 检查最近的启动记录
查看系统最近启动时间
sh
who -b
这个命令会显示系统的最近启动时间。
查看重启日志
sh
journalctl --since "2023-07-02 00:00:00" --until "2023-07-03 00:00:00"
用 journalctl
检查特定时间段的日志,用来发现系统在特定时间段的活动。
3. 检查崩溃转储文件
如果系统启用了 kdump
,会在崩溃时生成转储文件。
启用并检查 kdump
sh
systemctl status kdump
确保 kdump
服务已启用和运行。如果有生成的转储文件,通常在 /var/crash/
目录下。
4. 检查硬件错误
硬件故障可能导致系统重启。
查看 lspci
和 lsblk
输出
sh
lspci -vv | less
sh
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
这些命令显示详细的硬件信息,查找任何可疑的硬件问题。
5. 检查电源问题
电源问题也可能导致系统重启。
查看 journalctl
中的电源相关日志
sh
journalctl | grep -i power
6. 检查系统资源
系统资源不足(如内存、CPU)也可能导致重启。
使用 top
或 htop
实时监控系统资源
sh
top
sh
htop
查看历史资源使用情况
sh
sar -r
这个命令显示内存使用情况。
sh
sar -u
这个命令显示 CPU 使用情况。
7. 检查系统更新或软件包更新
有时系统更新或软件包更新会导致重启。
查看 yum
历史记录
sh
yum history
8. 检查计划任务
定时任务或计划任务(如 cron
作业)可能导致重启。
查看 cron
日志
sh
cat /var/log/cron
9. 检查文件系统错误
文件系统错误可能导致系统不稳定和重启。
检查并修复文件系统错误
sh
fsck -f /dev/sda1
以上是详细的步骤和命令,帮助你在 CentOS 7 中排查系统重启的问题。通过系统日志、电源、硬件、系统资源等多个方面的检查,可以更全面地了解系统重启的原因并进行相应的解决。