几个常用的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来监听设备文件状态变化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)