Linux watchdog的简单使用方法 (linux watchdog使用)

Linux Watchdog的简单使用方法

当计算机系统中遇到崩溃时,通常情况下我们需要手动重启系统。然而,在某些情况下,当系统崩溃后,我们可能并不能立即发现这个问题,如果这个时候没有及时处理,可能会引起更加严重的后果,比如丢失数据、系统物理损坏等。为了解决这个问题,Linux内核中提供了一个叫做Watchdog的工具,用来自动监控系统崩溃并自动重启。

Watchdog是一种硬件和/或软件组合,它可以在检测到系统故障的情况下执行软件自动重启。Watchdog与硬件和软件配合使用是必要的。硬件部分通常由一个物理计时器构成,比如说计时器会周期性的发出信号,如果内核没有在指定时间内对其响应,则会触发硬件故障重启。而软件部分由内核提供。

下面介绍一下在Linux中如何使用Watchdog。

1.检查Kernel支持是否已启用

在开始使用Watchdog之前,需要确保已经启用内核支持。可以通过以下命令来检查:

“`

$ grep -i watchdog /usr/src/linux/.config

“`

如果Kernel支持已启用,会显示这样的信息:

“`

CONFIG_WATCHDOG=y

“`

否则,需要重新编译Kernel,然后确保Kernel支持已启用。

2.安装Watchdog软件包

安装Watchdog的命令如下:

“`

$ sudo apt-get install watchdog

“`

3.修改配置文件

检查Watchdog配置文件/opt/watchdog.conf是否存在,如果不存在可以通过以下命令创建:

“`

$ sudo nano /etc/watchdog.conf

“`

修改配置文件如下:

“`

watchdog-device = /dev/watchdog

watchdog-timeout = 15

realtime = yes

priority = 1

max-load-1 = 24

“`

其中,watchdog-device是指定Watchdog设备,watchdog-timeout是设置Watchdog超时时间,realtime是设置Watchdog以实时方式工作,priority是进程优先级,max-load-1是设置1分钟内系统核心数负载的更大值。

添加运行脚本

下面是一份可以使用的Watchdog脚本。打开一个新文件来编写脚本。

“`

#!/bin/bash

service mysql status # 检查 mysql 服务是否已经停止

if [ “$?” != “0” ]; then

service mysql stop && service mysql start

fi

“`

该脚本可以通过检查MySQL服务是否正在运行,如果它正在运行,则不进行任何操作,否则它会停止并重新启动服务。

接下来,保存脚本,并将其放置在系统可执行路径中,例如在/usr/local/bin/目录中。

“`

sudo chmod +x /usr/local/bin/watchdog_mysql.sh

“`

5.启用Watchdog服务

使用以下命令来启用Watchdog服务:

“`

$ sudo systemctl enable watchdog

“`

重启系统并使用以下命令来启动Watchdog服务:

“`

$ sudo systemctl start watchdog

“`

至此,Watchdog就可以在系统出现故障时自动重启系统了。

Watchdog是一种非常实用的工具,可以在系统出现故障时自动重启系统,更加方便地确保系统的稳定性和安全性。在Linux中安装和使用Watchdog非常简单,只需要通过上面的步骤就可以轻松配置并启用Watchdog服务,对于Linux服务器管理员来说,这个功能绝对是绕不过去的一道重要课题。

相关问题拓展阅读:

您好,如果要关闭linux系统的看门狗,要怎么操作呢?多谢!

您好,感谢您选择岩轮惠普产品。一、为了保证笔记本运行的稳定性和安全性,hp官方不建议用户安装双系统,也没有双系统运行方面的相关资料,惠普推荐您安装使用单一的系统。二、Linux的分区格式和window7及windows8系统的分区格式是不一样的,因此您在安装操作系统前需要将重要的文件保存出来然后用诸如PQ这样的分区软件更改分格粗运信式为NTFS再进行安装。三、修改分区格式后建议您可以保存重要的文件后按下面的方法光驱引导重新安装操作系统:①将安装光盘放入光驱,重悄薯新启动电脑②当屏幕上出现“HP/COMPAQ”的LOGO时,连续点击“F9”键③选择“CD/DVDROMDrive”,按下回车(Enter)键确定。注:由于各机型不同,光驱引导的界面略有不同,请选择代表光驱的一项。④Win7的安装过程,您可以参考一下微软官方文档资料:/portal/site/hpsc/public/kb/docDisplay/?docId=emr_na-c希望以上回复能够对您有所帮助。

linux怎样使用top命令查看系统状态

命令行输入top,回车

13:42:59 当前系统时间

 6 days, 9:29 系统已经运行了6天6小时29分钟(在这期间没有重启过)

 3 users 当前有3个用户登录系统

 load average: 3.06,3.01, 1.79 load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻凳誉瞎辑CPU的数枣空量,结果高于5的时候就表明系统在超负荷运转了。

 Tasks 任务(进程),系统现在共有131个进程,其中处于运行中的有3个,127个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有1个。

 10.6% us 用户空间占用CPU的百分比。

 2.2% sy 内核空间占用CPU的百分比。

 0.0% ni 改变过优先级的进程占用CPU的百分比

 84.5% id 空闲CPU百分比

 2.5% wa IO等待占用CPU的百分比

 0.1% hi 硬中断(Hardware IRQ)占用虚祥CPU的百分比

 0.0% si 软中断(Software Interrupts)占用CPU的百分比

在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。

k total 物理内存总量(8GB)

k used 使用中的内存总量(5.7GB)

k free 空闲内存总量(2.2G)

k buffers 缓存的内存量 (434M)

  

第五行:swap交换分区

k total 交换区总量(8GB)

 41568k used 使用的交换区总量(40.6M)

k free 空闲交换区总量(8GB)

k cached 缓冲的交换区总量(4GB)

内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:++= 6.6GB。

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

各进程(任务)的状态监控:

 PID 进程id

 USER 进程所有者

 PR 进程优先级

 NI nice值。负值表示高优先级,正值表示低优先级

 VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

 RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

 SHR 共享内存大小,单位kb

 S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

 %CPU 上次更新到现在的CPU时间占用百分比

 %MEM 进程使用的物理内存百分比

 TIME+ 进程使用的CPU时间总计,单位1/100秒

 COMMAND 进程名称(命令名/命令行)

1.命令格式:

top

2.命令功能:

显示当前系统正在燃嫌执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

3.命令参数:

-b 批处理

-c 显示完整的治命令

-I 忽略失效过碧李程

-s 保密模式

-S 累积模式

-i 设置间隔时间

-u 指定用户名

-p 指定进程

-n 循环显示的次数

4.使用实悔段迟例:

实例1:显示进程信息

命令:top

输出:

复制代码

代码如下:

# top

top – 14:06:23 up 70 days, 16:44, 2 users, load average: 1.25, 1.32, 1.35

Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie

Cpu(s): 5.9%us, 3.4%sy, 0.0%ni, 90.4%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st

Mem:k total,k used,k free,k buffers

Swap:k total, 0k used,k free,k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

28894 rootm 405m 10m S 52.2 1.3 2534:16 java

18249 rootm 1.9g 11m S 35.9 6.0 569:39.41 java

2808 rootm 1.0g 11m S 24.3 3.1 526:51.85 java

25668 rootm 704m 11m S 14.0 2.2 360:44.53 java

574 rootm 611m 10m S 12.6 1.9 556:59.63 java

1599 rootm 1.9g 11m S 12.3 6.2 262:01.14 java

1008 rootm 842m 10m S 0.3 2.6 4:31.08 java

13823 rootm 2.1g 10m S 0.3 6.8 176:57.34 java

28218 rootR 0.3 0.0 0:01.43 top

29062 rootm 227m 10m S 0.3 0.7 2:07.32 java

1 root4 572 S 0.0 0.0 1:30.85 init

2 root RTS 0.0 0.0 0:01.01 migration/0

3 rootS 0.0 0.0 0:00.00 ksoftirqd/0

4 root RTS 0.0 0.0 0:00.00 watchdog/0

5 root RTS 0.0 0.0 0:00.80 migration/1

6 rootS 0.0 0.0 0:00.00 ksoftirqd/1

7 root RTS 0.0 0.0 0:00.00 watchdog/1

8 root RTS 0.0 0.0 0:20.59 migration/2

9 rootS 0.0 0.0 0:00.09 ksoftirqd/2

10 root RTS 0.0 0.0 0:00.00 watchdog/2

11 root RTS 0.0 0.0 0:23.66 migration/3

12 rootS 0.0 0.0 0:00.03 ksoftirqd/3

13 root RTS 0.0 0.0 0:00.00 watchdog/3

14 root RTS 0.0 0.0 0:20.29 migration/4

15 rootS 0.0 0.0 0:00.07 ksoftirqd/4

16 root RTS 0.0 0.0 0:00.00 watchdog/4

17 root RTS 0.0 0.0 0:23.07 migration/5

18 rootS 0.0 0.0 0:00.07 ksoftirqd/5

19 root RTS 0.0 0.0 0:00.00 watchdog/5

20 root RTS 0.0 0.0 0:17.16 migration/6

21 rootS 0.0 0.0 0:00.05 ksoftirqd/6

22 root RTS 0.0 0.0 0:00.00 watchdog/6

23 root RTS 0.0 0.0 0:58.28 migration/7

top命令输出内容详细说明:

统计信息区:

前五行是当前系统情况整体的统计信息区。下面我们看每一行信息的具体意义。

之一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:

14:06:23 — 当前系统时间

up 70 days, 16:44 — 系统已经运行了70天16小时44分钟(在这期间系统没有重启过的吆!)

2 users — 当前有2个用户登录系统

load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行,Tasks — 任务(进程),具体信息说明如下:

系统现在共有206个进程,其中处于运行中的有1个,205个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行,cpu状态信息,具体属性说明如下:

5.9%us — 用户空间占用CPU的百分比。

3.4% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

90.4% id — 空闲CPU百分比

0.0% wa — IO等待占用CPU的百分比

0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.2% si — 软中断(Software Interrupts)占用CPU的百分比

备注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!

第四行,内存状态,具体信息如下:

k total — 物理内存总量(32GB)

k used — 使用中的内存总量(14GB)

k free — 空闲内存总量(18GB)

169884k buffers — 缓存的内存量 (169M)

第五行,swap交换分区信息,具体信息说明如下:

k total — 交换区总量(32GB)

0k used — 使用的交换区总量(0K)

k free — 空闲交换区总量(32GB)

k cached — 缓冲的交换区总量(3.6GB)

备注:

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:k +169884k +k = 22GB左右。

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第六行,空行。

第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

其他使用技巧:

1.多U多核CPU监控

在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况:

观察上图,服务器有16个逻辑CPU,实际上是4个物理CPU。再按数字键1,就会返回到top基本视图界面。

2.高亮显示当前运行进程

敲击键盘“b”(打开/关闭加亮效果),top的视图变化如下:

我们发现进程id为2570的“top”进程被加亮了,top进程就是视图第二行显示的唯一的运行态(runing)的那个进程,可以通过敲击“y”键关闭或打开运行态进程的加亮效果。

3.进程字段排序

默认进入top时,各进程是按照CPU的占用量来排序的,在下图中进程ID为28894的java进程排在之一(cpu占用142%),进程ID为574的java进程排在第二(cpu占用16%)。

敲击键盘“x”(打开/关闭排序列的加亮效果),top的视图变化如下:

可以看到,top默认的排序列是“%CPU”。

4. 通过”shift + >”或”shift + ”的效果图,视图现在已经按照%MEM来排序。

实例2:显示 完整命令

命令:top -c

输出:

实例3:以批处理模式显示程序信息

命令:top -b

实例4:以累积模式显示程序信息

命令:top -S

实例5:设置信息更新次数

命令:top -n 2

说明:表示更新两次后终止更新显示

实例6:设置信息更新时间

命令:top -d 3

说明:表示更新周期为3秒

实例7:显示指定的进程信息

命令:top -p 574

输出:

5.top交互命令

在top 命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s 选项, 其中一些命令可能会被屏蔽。

h 显示帮助画面,给出一些简短的命令总结说明

k 终止一个进程。

i 忽略闲置和僵死进程。这是一个开关式命令。

q 退出程序

r 重新安排一个进程的优先级别

S 切换到累计模式

s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s

f或者F 从当前显示中添加或者删除项目

o或者O 改变显示项目的顺序

l 切换显示平均负载和启动时间信息

m 切换显示内存信息

t 切换显示进程和CPU状态信息

c 切换显示命令名称和完整命令行

M 根据驻留内存大小进行排序

P 根据CPU使用百分比大小进行排序

T 根据时间/累计时间进行排序

W 将当前设置写入~/.toprc文件中

Linux。 Shell编程。 为hello.sh写一个守护进程watchDog.sh

watchDog.sh实例,这个只如扮森是个思路,具体你得缺伏自己测试

#!/bin/sh

hello=`ps -ef| grep hello.sh|grep -v grep |awk ‘渣亩{print $2}’`

while true;

do

if ; then

./hello.sh

fi

done

linux watchdog使用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux watchdog使用,Linux watchdog的简单使用方法,您好,如果要关闭linux系统的看门狗,要怎么操作呢?多谢!,linux怎样使用top命令查看系统状态,Linux。 Shell编程。 为hello.sh写一个守护进程watchDog.sh的信息别忘了在本站进行查找喔。


数据运维技术 » Linux watchdog的简单使用方法 (linux watchdog使用)