几个常用的Linux监控脚本

几个常用的Linux监控脚本,第1张

几个常用的Linux监控脚本

下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助。

1、查看主机网卡流量

#!/bin/bash

#network

#MikeXu

while : ; do

time='date +%m"-"%d" "%k":"%M'

day='date +%m"-"%d'

rx_before='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'

tx_before='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-'

sleep 2

rx_after='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'

tx_after='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-'

rx_result=$[(rx_after-rx_before)/256]

tx_result=$[(tx_after-tx_before)/256]

echo "$time Now_In_Speed: "$rx_result"kbps Now_OUt_Speed: "$tx_result"kbps"

sleep 2

done

2、系统状况监控

#!/bin/sh

#systemstatsh

#MikeXu

IP=1921681227

top -n 2| grep "Cpu" >>/temp/cputxt

free -m | grep "Mem" >> /temp/memtxt

df -k | grep "sda1" >> /temp/drive_sda1txt

#df -k | grep sda2 >> /temp/drive_sda2txt

df -k | grep "/mnt/storage_0" >> /temp/mnt_storage_0txt

df -k | grep "/mnt/storage_pic" >> /temp/mnt_storage_pictxt

time=`date +%m""%d" "%k":"%M`

connect=`netstat -na | grep "21923814830:80" | wc -l`

echo "$time $connect" >> /temp/connect_counttxt

3、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告

#!/bin/bash

#monitor available disk space

SPACE='df | sed -n '/ \ / $ / p' | gawk '{print $5}' | sed 's/%//'

if [ $SPACE -ge 90 ]

then

fty89@163com

fi

4、 监控CPU和内存的使用情况

#!/bin/bash

#script to capture system statistics

OUTFILE=/home/xu/capstatscsv

DATE='date +%m/%d/%Y'

TIME='date +%k:%m:%s'

TIMEOUT='uptime'

VMOUT='vmstat 1 2'

USERS='echo $TIMEOUT | gawk '{print $4}' '

LOAD='echo $TIMEOUT | gawk '{print $9}' | sed "s/,//' '

FREE='echo $VMOUT | sed -n '/[0-9]/p' | sed -n '2p' | gawk '{print $4} ' '

IDLE='echo $VMOUT | sed -n '/[0-9]/p' | sed -n '2p' |gawk '{print $15}' '

echo "$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE" >> $OUTFILE

5、全方位监控主机

#!/bin/bash

# check_xush

# 0 /home/check_xush

DAT="`date +%Y%m%d`"

HOUR="`date +%H`"

DIR="/home/oslog/host_${DAT}/${HOUR}"

DELAY=60

COUNT=60

# whether the responsible directory exist

if ! test -d ${DIR}

then

/bin/mkdir -p ${DIR}

fi

# general check

export TERM=linux

/usr/bin/top -b -d ${DELAY} -n ${COUNT} > ${DIR}/top_${DAT}log 2>&1 &

# cpu check

/usr/bin/sar -u ${DELAY} ${COUNT} > ${DIR}/cpu_${DAT}log 2>&1 &

#/usr/bin/mpstat -P 0 ${DELAY} ${COUNT} > ${DIR}/cpu_0_${DAT}log 2>&1 &

#/usr/bin/mpstat -P 1 ${DELAY} ${COUNT} > ${DIR}/cpu_1_${DAT}log 2>&1 &

# memory check

/usr/bin/vmstat ${DELAY} ${COUNT} > ${DIR}/vmstat_${DAT}log 2>&1 &

# I/O check

/usr/bin/iostat ${DELAY} ${COUNT} > ${DIR}/iostat_${DAT}log 2>&1 &

# network check

/usr/bin/sar -n DEV ${DELAY} ${COUNT} > ${DIR}/net_${DAT}log 2>&1 &

#/usr/bin/sar -n EDEV ${DELAY} ${COUNT} > ${DIR}/net_edev_${DAT}log 2>&1 &

放在crontab里每小时自动执行:

一 单个进程打开文件句柄数过多

二 *** 作系统打开的文件句柄数过多

三 systemd对该进程进行了限制

四 inotify达到上限

ulimit中的nofile表示单进程可以打开的最大文件句柄数,可以通过ulimit -a查看,子进程默认继承父进程的限制(注意,是继承,不是共享,子进程和父进程打开的文件句柄数是单独算的)。

网上还有一种解读是nofile表示单用户可以打开的文件句柄数,因为他们在limitconf中看到类似于“openstack soft nofile 65536”,便认为是openstack用户最多可以打开的文件句柄数。该解读是错误的,“openstack soft nofile 65536”表示的含义是当你执行"su - openstack"切换到openstack用户后,你创建的所有进程最大可以打开的文件句柄数是65536。

要查看一个进程可以打开的文件句柄数,可以通过“cat /proc/<pid>/limits”查看。

要修改ulimit中的nofile,可以通过修改/etc/security/limitsconf文件,在其中加入类似“openstack soft nofile 65536”的语句来进行修改。修改完成后,可以通过“su - openstack”切换用户,或者重新登录,来使该配置生效。

要动态修改一个进程的限制,可以使用prlimit命令,具体用法为:“prlimit --pid ${pid} --nofile=102400:102400”。

整个 *** 作系统可以打开的文件句柄数是有限的,受内核参数“fsfile-max”影响。

可以通过执行“echo 100000000 > /proc/sys/fs/file-max”命令来动态修改该值,也可以通过修改"/etc/sysctlconf"文件来永久修改该值。

该场景仅针对被systemd管理的进程(也就是可以通过systemctl来控制的进程)生效,可以通过修改该进程的service文件(通常在/etc/systemd/system/目录下),在“[Service]”下面添加“LimitNOFILE=20480000”来实现,修改完成之后需要执行"systemctl daemon-reload"来使该配置生效。

inotify是linux提供的一种监控机制,可以监控文件系统的变化。该机制受到2个内核参数的影响:“fsinotifymax_user_instances”和“fsinotifymax_user_watches”,其中“fsinotifymax_user_instances”表示每个用户最多可以创建的inotify instances数量上限,“fsinotifymax_user_watches”表示么个用户同时可以添加的watch数目,当出现too many open files问题而上面三种方法都无法解决时,可以尝试通过修改这2个内核参数来生效。修改方法是修改"/etc/sysctlconf"文件,并执行"sysctl -p"。

原文地址: >

2018-11-14 遇到的一点小问题

项目里需要监听某个文件夹内容变化,来做文件自动上传。首选就是 androidosFileObserverinotify ,对,就是Linux上的 inotify 。具体做法网上一搜一大堆,懒得写了。

做这个时遇到的第一个问题就是重写 public abstract void onEvent(int event, @Nullable String path); 方法,来监听事件变化时,发现 int event 的值和预计的不一样。 网上找了下 ,才知道还需要先进行计算 int e = event & FileObserverALL_EVENTS; 才能正确获取。

然后顺便整理了一下相关含义,不知道对不对,自己懂就行。

然后这是官方api注释,顺便贴一下,方便看:

linux如何监控另一个server的文件是否存在

安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQexe。在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQexe。本地磁盘映射(推荐使用)使用远程桌面连接MSTSC方式进行数据传输。该方式不支持断点续传,可能存在传输中断的情况,因此不建议上传大文

确认是否已安装VNC服务器。执行以下命令:rpm -qa | grep tigervnc-server回显如下信息:tigervnc-server-110-5e16x86_64如果没有安装,则不回显信息或显示没有安装,需要将软件安装到宿主机中。执行2。如果已安装,执行3。rpm -qa | grep tigervnc-server

本节 *** 作介绍在Windows和Linux环境中使用SSH密钥对方式登录Linux裸金属服务器的 *** 作步骤。裸金属服务器状态必须为“运行中”。已获取创建该裸金属服务器时使用的密钥对私钥文件。裸金属服务器已绑定d性公网IP,绑定方式请参见绑定d性公网IP至服务器。已配置安全组入方向的访问规则,配置方式请参见添加安全组规则。使用的登录工具(如Pu

使用d性云服务器或者外部镜像文件创建私有镜像时,必须确保 *** 作系统中已安装UVP VMTools,使新发放的云服务器支持KVM虚拟化,同时也可以提升云服务器的网络性能。如果不安装UVP VMTools,云服务器的网卡可能无法检测到,无法与外部通信。因此,请您务必安装。使用公共镜像创建的云服务器默认已安装UVP VMTools,您可以通过以下

登录Windowsd性云服务器如图1所示。(可选)使用密钥文件解析密码。对于密钥方式鉴权的d性云服务器,需先通过管理控制台提供的获取密码功能,将创建d性云服务器时使用的密钥文件解析为密码。具体 *** 作,请参见获取Windowsd性云服务器的密码。对于密钥方式鉴权的d性云服务器,需先通过管理控制台提供的获取密码功能,将创建d性云服务器时使用的密

Linux *** 作系统XEN实例变更为KVM实例前,必须已完成必要的驱动安装和配置。当您需要变更的Linux *** 作系统的XEN实例比较多时候,推荐您使用本节的批量自动配置的方法安装驱动,通过自动化脚本的方式批量为Linux云服务器安装驱动、配置磁盘自动挂载。在驱动安装完成后使用控制台提供的“变更规格”功能将XEN实例变更为KVM实例。XEN实例

如果请求因错误导致未被处理,则会返回一条错误响应。错误响应中包括错误码和具体错误描述。表1列出了错误响应中的常见错误码。

2021-02-03 遇到的一点小问题

最近有个需求需要监听文件夹里文件的变化,网上找到 如何用 Shell 监控文件变化? ,安装 pacman -Sy inotify-tools ,参照 文档 试了下 inotifywait ,能实现挺多功能的。

linux下的inotify系统调用可以实现这点,你可以用c来写,然后通知java,或者找找inotify的java binding库 比如 jnotifysourceforgenet

以上就是关于几个常用的Linux监控脚本全部的内容,包括:几个常用的Linux监控脚本、Too many open files的四种解决办法、在Android里使用FileObserver来监听设备文件状态变化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10075045.html

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

发表评论

登录后才能评论

评论列表(0条)

保存