Linux健康检查脚本health-check-script

Linux健康检查脚本health-check-script,第1张

    平时在Linux做巡视时,都通过命令行来输入指令,比如df -k等等,但是对于多指令多任务来说,单个指令就显得不够效率。于是笔者想着有没有啥脚本可以自动完成这个任务呢?笔者以前的文章-sysstat性能监控工具,里面有系统监控工具 Sysstat,可以查看CPU使用率、硬盘和网络吞吐数据等等信息。但是这个也是命令行,并且也没有集合的脚本。带着问题,笔者想着自己写一个脚本来,但是想着检查项目还是不熟悉,于是在github上搜索一番,找到一款老外写的脚本,于是乎,clone下来测试一番。

    github真是太劲了。

    开始clone脚本:

    sudo  git clone  https://github.com/SimplyLinuxFAQ/health-check-script.git

    进入目录:cd health-check-script/

    由于health-check.sh文件没有执行权限,需要加上可执行权限sudo chmod +x health-check.sh,然后执行./health-check.sh。

    脚本大概分为几个部分,现罗列其中的几个。

1、 系统基本信息

    脚本写的非常好,比如查看hostname,即/etc/hostname文件里面的内容。整个指令结构显示看hostname -f是否执行成功,然后hostname -f或者hostname -s,也就是 long host name或者 short host name。 &&为与, ||时或。

hostname -f &>/dev/null &&printf "Hostname : $(hostname -f)" || printf "Hostname : $(hostname -s)"

2、 磁盘Disk Usage

FS_USAGE=$(df -PThl -x tmpfs -x iso9660 -x devtmpfs -x squashfs|awk '!seen[$1]++'|sort -k6n|tail -n +2)

3、负载率uptime

echo -e "Current Load Average : $(uptime|grep -o "load average.*"|awk '{print $3" " $4" " $5}')"

4、三次重启事件

last -x 2> /dev/null|grep reboot 1> /dev/null && /usr/bin/last -x 2> /dev/null|grep reboot|head -3 || \

5、三次关机事件

last -x 2> /dev/null|grep shutdown 1> /dev/null && /usr/bin/last -x 2> /dev/null|grep shutdown|head -3 || \

6、占用cpu最高的进程

ps -eo pcpu,pid,ppid,user,stat,args --sort=-pcpu|grep -v $$|head -6|sed 's/$/\n/'

7、占用内存最高的进程

ps -eo pmem,pid,ppid,user,stat,args --sort=-pmem|grep -v $$|head -6|sed 's/$/\n/'

    这个脚本关注点在系统信息、磁盘、内存、进程信息,没有打印网络状态,需要监控的进程等等信息,可以使用指令iostat、ps -ef | grep your_process。在局域网中,如果循环可以读取/etc/hosts文件内容,按照ip来远程到linux主机ssh ip_addrsss,执行脚本内容来检查整个服务器的信息。

    最后看一下测试效果,检查结果正常的话,会有颜色提示的,这也是笔者才知道shell可以设置颜色的。开始位是\e[  , 结束位是\e[0m  ,第一个数字代表字体颜色,第二个数字代表底色,当然还可以有其他下划线等等特殊效果。

GCOLOR="\e[4732m ------ OK/HEALTHY \e[0m"

WCOLOR="\e[4331m ------ WARNING \e[0m"

CCOLOR="\e[4731m ------ CRITICAL \e[0m"

linux 里有很多文档可以帮助学习!

比如

GNU bash, version 3.2.33(1)-release (i386-redhat-linux-gnu)

These shell commands are defined internally. Type `help' to see this list.

Type `help name' to find out more about the function `name'.

Use `info bash' to find out more about the shell in general.

Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

JOB_SPEC [&] (( expression ))

. filename [arguments] :

[ arg... ] [[ expression ]]

alias [-p] [name[=value] ... ] bg [job_spec ...]

bind [-lpvsPVS] [-m keymap] [-f fi break [n]

builtin [shell-builtin [arg ...]] caller [EXPR]

case WORD in [PATTERN [| PATTERN]. cd [-L|-P] [dir]

command [-pVv] command [arg ...] compgen [-abcdefgjksuv] [-o option

complete [-abcdefgjksuv] [-pr] [-o continue [n]

declare [-afFirtx] [-p] [name[=val dirs [-clpv] [+N] [-N]

disown [-h] [-ar] [jobspec ...]echo [-neE] [arg ...]

enable [-pnds] [-a] [-f filename] eval [arg ...]

exec [-cl] [-a name] file [redirec exit [n]

export [-nf] [name[=value] ...] or false

fc [-e ename] [-nlr] [first] [last fg [job_spec]

for NAME [in WORDS ... ] do COMMA for (( exp1exp2exp3 ))do COM

function NAME { COMMANDS } or NA getopts optstring name [arg]

hash [-lr] [-p pathname] [-dt] [na help [-s] [pattern ...]

history [-c] [-d offset] [n] or hi if COMMANDSthen COMMANDS[ elif

jobs [-lnprs] [jobspec ...] or job kill [-s sigspec | -n signum | -si

let arg [arg ...] local name[=value] ...

logout popd [+N | -N] [-n]

printf [-v var] format [arguments] pushd [dir | +N | -N] [-n]

pwd [-LP] read [-ers] [-u fd] [-t timeout] [

readonly [-af] [name[=value] ...] return [n]

select NAME [in WORDS ... ] do CO set [--abefhkmnptuvxBCHP] [-o opti

shift [n] shopt [-pqsu] [-o long-option] opt

source filename [arguments]suspend [-f]

test [expr]time [-p] PIPELINE

times trap [-lp] [arg signal_spec ...]

true type [-afptP] name [name ...]

typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit

umask [-p] [-S] [mode] unalias [-a] name [name ...]

unset [-f] [-v] [name ...] until COMMANDSdo COMMANDSdone

variables - Some variable names an wait [n]

while COMMANDSdo COMMANDSdone { COMMANDS }

good luck

字符串比较包括

注意 :这里的符号要 转义 ,否则变成了重定向了。

运行结果:

注意 :上面的 等号左右两侧 中括号内侧 一定要有空格

运行结果:

以上的例子,说明 小写字母排在字典的后面 (类似于ascii的大小)。

sort 可以对字符串排序,sort 命令会把小写字母放在前面

运行结果:

注意上面的 中括号内侧 一定要有空格。

注意 :有时候想在字符串比较的时候使用 正则表达式 ,可以使用 双方括号 ,如:

运行如下:

注意:上面的 双等号左右两侧,中括号内侧 一定要有空格


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7395927.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存