LINUX系统监控进程脚本
#!/bin/bash
# 监控系统进程
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
tomcat_dir="/opt/apache-tomcat-7.0.8"
mysql_dir="/usr/local/mysql/bin/mysqld_safe"
vsftp_dir="/usr/sbin/vsftpd"
ssh_dir="/usr/sbin/sshd"
for dir in $tomcat_dir $mysql_dir $vsftp_dir $ssh_dir
do
process_count=$(ps -ef | grep "$dir" | grep -v grep | wc -l)
for service in tomcat mysql vsftp ssh
do
echo "$dir" |grep -q "$service"
if [ $? -eq 0 ]
then
if [ $process_count -eq 0 ]
then
echo "$service is down at $(date
+%Y-%m-%d\ %H:%M:%S)" >>/home/system/proess.log
echo "$service is down at $(date +%Y-%m-%d\ %H:%M:%S)"
| mail -s "$IP服务器 $service服务关闭告警" 295580857@qq.com
else
echo "$service is running at $(date
+%Y-%m-%d\ %H:%M:%S)" >>/home/system/proess.log
fi
else
continue
fi
done
done
$monitor用法
$monitor用法【原创版】目录1.$monitor 的定义与用途2.$monitor 的基本语法与参数3.$monitor 的示例与应用正文一、$monitor 的定义与用途$monitor 是 Linux 系统中一个用于监控进程的命令行工具,可以通过实时数据显示、日志记录等方式,对系统中的进程进行监控和管理。
这对于系统管理员来说,可以更加方便地了解进程的运行状态,及时发现并处理潜在问题。
二、$monitor 的基本语法与参数$monitor 的基本语法如下:```monitor [options]```常用的选项包括:- `-l`,列出所有正在运行的进程及其基本信息。
- `-m`,显示进程的详细信息,包括进程 ID、程序名、状态、优先级等。
- `-t`,显示进程的累计运行时间。
- `-p`,显示进程的父进程 ID。
- `-u`,显示进程的用户和用户组信息。
三、$monitor 的示例与应用以下是一些$monitor 的示例用法:1.列出所有正在运行的进程```monitor -l```2.显示进程的详细信息```monitor -m```3.显示进程的累计运行时间```monitor -t```4.显示进程的父进程 ID```monitor -p```5.显示进程的用户和用户组信息```monitor -u```通过以上示例,我们可以看到$monitor 功能丰富,可以满足系统管理员对进程管理的需求。
linux高级监控工具sinfo
SinfoSinfo是一款监视工具,使用广播方案来发布关于你本地网络上每一台计算机的运行状况的信息。
它支持显示多方面的内容,比如处理器、内存使用情况、网络负载以及关于每一台计算机上五个主要进程的信息。
Sinfo使用ncurses,以一目了然的方式来显示信息。
Sinfo可以显示关于多台计算机的系统信息,以便管理。
使用的时候可以通过-s选项查看更多信息。
安装过程如果你使用基于Debian的系统,比如Debian和Ubuntu等系统,可以使用二进制包,可以在你的repo中找一下。
考虑到该软件包括了一个启动守护程序sinfod,我强烈建议使用这个可选的二进制文件,因为这个过程的许多方面实现了自动化(它也是我在这里探讨的版本)。
不过,为了确保发行版中立,与往常一样,我还在安装过程中介绍了源版本。
说明文档对代码库的要求如下:•ncurses:用于终端处理的代码库(5.7版本)。
•boost:可移植的C++源代码库,使用Boost.Bind和Boost.Signals(1.42版本)。
•asio (>=1.1.0):asio是一个跨平台的C++代码库,用于网络编程(1.4.1版本)。
如果你通过源代码编译,还需要上面这些代码库的开发包(-dev)。
libboost-下的开发包的数量相当多,所以要是你在编译过程中遇到了任何问题,请先检查libboost是不是安装全了。
对于使用源代码来运行的那些人来说,一旦你搞定了代码库要求,就可以获取最新的tarball文件(下载地址)。
解压缩,在新的文件夹中打开终端,输入以下命令:$ ./configure$ make如果你的发行版使用sudo:$ sudo make install如果你的发行版使用root:$ su# make install在我继续下文之前,应该解释一下:sinfo分平常的应用软件部分和后台守护程序这两个部分。
守护程序的安装每个发行版都不同,这部分我就不具体说了,细节可以查看源代码tarball文件的使用说明文件和官方网站。
Linux系统日志脚本使用Python解析和分析系统日志
Linux系统日志脚本使用Python解析和分析系统日志概述:本文将介绍如何使用Python编写脚本来解析和分析Linux系统日志。
Linux系统日志是记录系统运行状况、错误和警告等信息的重要组成部分,通过分析系统日志可以帮助我们快速有效地排查问题、监控系统状态和改进系统性能。
借助Python编程语言的强大功能和方便易用的库,我们可以轻松地处理日志文件,并提取出我们所关注的信息。
1. 日志文件Linux系统的日志文件通常位于/var/log目录下,不同的日志类型会存放在不同的文件中。
常见的日志文件包括system日志(/var/log/messages)、安全日志(/var/log/secure)等。
在分析和处理日志文件前,我们首先需要了解日志文件的格式和内容。
2. Python日志模块Python自带的logging模块提供了强大的功能来在代码中生成和处理日志信息。
通过使用logging模块,我们可以灵活地控制日志的输出格式、级别和位置,以及增加额外的上下文信息。
在编写日志脚本之前,我们需要先了解logging模块的基本用法。
3. 解析日志文件使用Python编写脚本来解析日志文件是一种常见的需求。
我们可以使用正则表达式或者其他字符串处理方法来逐行读取日志文件,并从中提取我们所需的信息。
例如,我们可以通过解析日志文件中的时间戳、关键字或者特定的日志格式来获取更有用的信息。
4. 分析系统日志除了解析日志文件,我们还可以使用Python的统计和分析库来进一步处理系统日志。
例如,我们可以使用Pandas库来读取和处理日志数据,然后使用Matplotlib或Seaborn库来可视化日志信息。
这样可以让我们更加直观地了解系统的运行状况、趋势和异常情况。
5. 日志监控和告警通过编写Python脚本,我们可以实现系统日志的实时监控和告警功能。
我们可以使用Python的定时任务库来定期检查系统日志文件,并对其中的错误、警告信息进行过滤和分析。
监控Squid运行进程数并自动重启的简洁Shell脚本
监控Squid运行进程数并自动重启的简洁Shell脚本自动重启故障相信大家都遇到过,原因也有很多,跟系统,硬件或者外界因素都有关。
这篇文章主要介绍了一个监控Squid运行进程数并自动重启的简洁Shell脚本分享,本文直接给出实现代码,需要的朋友可以参考下代码如下:#!/bin/shwhile sleep 30doSquidNum=`ps -ef|grep squid|grep -v grep|wc -l`#HttpNum=`netstat -an|grep 0.0.0.0:80|grep -v grep|wc -l` #80状态if [ $SquidNum != 3 ] ; then/etc/rc3.duid startadddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`echo "$adddate squid started!" >> /home/resquid.logfi#超过5000个http请求就重启squid服务HttpNum=`netstat -an|grep 80|grep -v grep|wc -l`if [ $HttpNum -gt 5000 ] ; then/etc/rc3.duid restartadddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`echo "$adddate http out 5000 squid started!" >> /home/resquid.logfidone补充:电脑总是自动重启怎么办1、右击“我的电脑”,选择“属性”项。
2、在打开的系统属性窗口中选择“高级系统设置”项进入。
3、在打开的“系统属性”窗口中,切换至“高级”选择卡,然后点击“系统和故障恢复设置”按钮。
4、在打开的窗口中取消勾选“自动重启启动”项并按确认即可。
linux 监控命令ps 与top详解
一:psps -l 查看属于自己这次登录的PID与相关信息列出来(只与自己的bash有关)F:代表这个进程标志(process flags),说明这个进程的权限,常见号码有:若为4表示此进程的权限为root;若为1则表示此子进程仅可进行复制(fork)而无法执行(exec);S:代表这个进程的状态(STAT),主要的状态有:R(Running):该进程正在运行中;S(Sleep):该进程目前正在睡眠状态(idle),但可以被唤醒(signal);D:不可被唤醒的状态,通常这个进程可能在等待I/O的情况(ex>打印);T:停止状态(stop),可能是在工作控制(后台暂停)或出错(traced)状态;Z(Zombie):“僵尸”状态,该进程已经终止但却无法被删除至内存外。
UID/PID/PPID:代表此进程被该UID所拥有的/进程的PID号码/此进程的父进程PID号码。
C:代表CPU使用率,单位为百分比。
PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级,数值越小代表此进程越快被CPU执行。
ADDR/SZ/WCHAN:都与内存有关,ADDR是kernel function,指出该进程在内存的哪个部分,如果是个running的进程,一般会显示“—”。
SZ代表此进程用掉多少内存。
WCHAN表示目前进程是否在运行中,同样,若为“—”表示正在运行中。
TTY:登录者的终端位置,若为远程登录使用动态终端接口(pts/n)。
TIME:使用CPU的时间,注意,是此进程实际花费CPU运行的时间,而不是系统时间。
CMD:就是command的缩写,造成此程序的触发进程的命令为何。
ps aux 查看系统所有进程数据(静态)USER:该进程属于哪个用户账号的;PID:该进程的进程标识符;%CPU:该进程使用掉的CPU资源百分比;%MEM:该进程所占用的物理内存百分比;VSZ:该进程所占用的虚拟内存量(KB);RSS:该进程所占用的固定的内存量(KB);TTY:该进程在哪个终端机上面运行,若与终端机无关则显示?另外,tty1~tty6是本机上面的登录者程序,若为pts/0等的,则表示为由网络连接进主机的进程;STAT:该进程目前的状态,状态显示与ps -l的S标识相同(R/S/T/Z);TIME:该进程实际使用CPU的时间;COMMAND:该进程的实际命令。
Linux磁盘空间脚本使用Python监控磁盘空间使用情况
Linux磁盘空间脚本使用Python监控磁盘空间使用情况使用Python编写Linux磁盘空间监控脚本概述:在Linux系统中,经常需要监测磁盘空间的使用情况,以确保系统正常运行和及时采取措施来避免磁盘空间问题。
本文介绍了如何使用Python编写一个简单而有效的脚本来监控磁盘空间的使用情况。
一、背景信息在开始编写脚本之前,我们首先需要了解如何获取Linux系统的磁盘空间使用情况。
在Linux中,我们可以使用"df"命令来获取磁盘的使用情况。
该命令的输出包含了磁盘的总容量、已使用容量以及可用容量等。
二、Python的subprocess模块为了能够在Python中执行"df"命令并获取其输出,我们将使用Python的subprocess模块。
subprocess模块允许我们在Python中运行外部命令,并且可以获取命令的输出结果。
三、编写脚本下面是一个使用Python编写的简单的磁盘空间监控脚本:```pythonimport subprocessdef get_disk_usage():df_output = subprocess.check_output(["df"])df_lines = df_output.decode().split("\n")header = df_lines[0].split()data = [line.split() for line in df_lines[1:] if line.strip()]return header, datadef main():header, data = get_disk_usage()print("磁盘空间使用情况:")for line in data:filesystem, size, used, available, percent, mountpoint = line print(f"文件系统:{filesystem}")print(f"总容量:{size}")print(f"已使用:{used}")print(f"可用容量:{available}")print(f"使用百分比:{percent}")print(f"挂载点:{mountpoint}")print()if __name__ == "__main__":main()```在这个脚本中,我们首先使用subprocess模块的check_output函数来运行"df"命令并获取其输出。
Glances:多功能Linux系统监控工具
Glances:多功能Linux系统监控⼯具是⼀个系统监控⼯具,它把这些都联系在⼀起,并提供了更多的功能。
你可以在远程 Linux 服务器上运⾏ Glances 来监控本地系统的系统资源,也可以通过 Web 浏览器监控。
下⾯是它的外观。
下⾯截图中的终端已经。
你也可以将它集成到像这样的⼯具中,在⼀个直观的仪表盘中监控统计数据。
它是⽤ Python 编写的,这意味着它的绝⼤多数功能都可以在⼤多数平台上使⽤。
Glances 的功能Glances Data In Grafana Dashboard让我们快速浏览⼀下 Glances 提供的主要功能:可以监控系统上的 15 个之多的指标(包括 Docker 容器)。
灵活的使⽤模式:单机模式、客户端-服务器模式、通过 SSH 和 Web 模式。
可⽤于集成的各种 REST API 和 XML-RPC API。
⽀持将数据轻松导出到不同的服务和数据库。
⾼度的可配置性和适应不同的需求。
⾮常全⾯的⽂档。
在 Ubuntu 和其他 Linux 发⾏版上安装 GlancesGlances 在许多 Linux 发⾏版的官⽅软件库中都有。
这意味着你可以使⽤你的发⾏版的软件包管理器来轻松安装它。
在基于 Debian/Ubuntu 的发⾏版上,你可以使⽤以下命令:1. sudo apt install glances你也可以使⽤ snap 包安装最新的 Glances:1. sudo snap install glances由于 Glances 是基于 Python 的,你也可以使⽤ PIP 在⼤多数 Linux 发⾏版上安装它。
先,然后⽤它来安装 Glances:1. sudo pip3 install glances如果没有别的办法,你还可以使⽤ Glances 开发者提供的⾃动安装脚本。
虽然我们不建议直接在你的系统上随便运⾏脚本,但这完全取决于你⾃⼰:1. curl -L https://bit.ly/glances | /bin/bash你可以从他们的中查看其他安装 Glances 的⽅法,甚⾄你还可以把它作为⼀个 Docker 容器来安装。
Linux监控工具介绍系列——OSWatcherBlackBox
Linux监控⼯具介绍系列——OSWatcherBlackBox OSWatcher Balck Box简介OSWatcher Black Box (oswbb)是Oracle开发、提供的⼀个⼩巧,但是实⽤、强⼤的系统⼯具,它可以⽤来抓取操作系统的性能指标,⽤于辅助监控系统的资源使⽤。
其安装部署、卸载都⾮常简单;资源消耗也⽐较⼩,原理也⼗分简单,它通过调⽤OS的的⼀些命令(例如vmstat、iostat等)来采集、存储CPU/Memory/Swap/Disk IO/Nentwork相关数据。
安装和运⾏oswbba可以帮助在性能诊断时提供丰富多样的各类性能数据、图⽂报表⽀持。
OSWatcher 在4.0的版本时被命名为OSWatcher Black Box,简称为oswbb,同时增加了数据分析功能,即OSWatcher Black Box Analyzer (OSWbba)这个绘图和分析⼯具,其捆绑在 OS Watcher Black Box当中。
替代了之前的OSWg。
也就是说在OSWatcher 4.0 之前是:OSWatcher 和 OSWg的关系,OSWatcher 4.0 后变成了: OSWbb 与 OSWbba 的关系。
OSWatcher Black Box(oswbb)⽀持多个操作系统,也分Linux与Window版本,当然这两个版本有所差别,本篇只讲述Linux版本。
另外,OSWatcher Black Box(oswbb)由两个部分组成:1. oswbb: ⼀个Unix的 shell script脚本集合,其⽤来收集和归档数据,从⽽帮助定位问题。
2. oswbba: ⼀个Java⼯具来⾃动分析数据,提供建议,并且⽣成⼀个包含图形的 html ⽂档。
OSWatcher Black Box(oswbb)的官⽅下载地址以及相关资料如下(Oracle Metalink上的资料需要账号)How To Start OSWatcher Black Box (OSWBB) Every System Boot Using RPM oswbb-service(⽂档 ID 580513.1)OSWatcher Analyzer User Guide (⽂档 ID 461053.1)官⽅介绍⽂档对oswbb,oswbba的介绍如下:OSWatcher (oswbb) is a collection of UNIX shell scripts intended to collect and archive operating system and network metrics to aid support in diagnosing performance issues. OSWatcher operates as a set of background processes on the server and gathers OS data on a regular basis, invoking such Unix utilities as vmstat, netstat and iostat. OSWatcher can be downloaded from this note. OSWatcher is also included in the RAC-DDT script file, but is not installed by RAC-DDT. For more information on RAC-DDT see RAC-DDT User Guide. OSWatcher is installed on each node where data is to be collected. Installation instructions for OSWatcher are provided in this user guide.The OSWatcher Analyzer (oswbba) is a graphing and analysis utility which comes bundled with OSWatcher v4.0 and higher. oswbba allows the user to graphically display data collected, generate reports containing these graphs and provides a built in analyzer to analyze the data and provide details on any performance problems it detects. The ability to graph and analyze this information relieves the user of manually inspecting all the files.NOTE: oswbba replaces the utility OSWg. This was done to eliminate the confusion caused by having multiple tools in support named OSWatcher. oswbba is only supported for data collected by oswbb and no other tool.安装OSWatcherLinux平台的安装简单到了不能再简单,如下所⽰,解压安装包⽣成oswbb⽂件夹。
Linux系统服务状态检测脚本使用Shell脚本检测服务是否正常运行
Linux系统服务状态检测脚本使用Shell脚本检测服务是否正常运行在Linux系统中,服务的正常运行对于系统的稳定性和安全性至关重要。
为了方便管理员监控各个服务的状态,我们可以编写一个Shell 脚本来自动检测服务是否正常运行。
本文将介绍如何编写这样一个脚本,并提供一些示例代码。
一、脚本编写准备在开始编写脚本之前,我们需要先确定要检测的服务。
可以通过以下命令查看当前系统上正在运行的服务:```shellsystemctl list-units --type=service --all```选择需要检测的服务,并记录下其服务名。
二、编写脚本我们可以创建一个名为`service_check.sh`的Shell脚本来实现服务状态的检测。
首先,我们需要在脚本的开头指定使用的Shell解释器,一般为`/bin/bash`:```shell#!/bin/bash```接下来,我们可以定义一个函数`check_service`来检测指定服务的状态。
这里以检测`nginx`服务为例:```shellcheck_service() {service_name="$1"result=$(systemctl is-active $service_name)if [ "$result" = "active" ]; thenecho "服务 $service_name 正常运行"elseecho "服务 $service_name 未运行"fi}```然后,我们可以调用`check_service`函数,并传入要检测的服务名,如`nginx`:```shellcheck_service "nginx"三、运行脚本保存脚本文件并赋予执行权限:```shellchmod +x service_check.sh```运行脚本:```shell./service_check.sh```脚本将输出所检测服务的状态。
Linux系统进程自动重启脚本
Linux系统进程自动重启脚本概述:在Linux系统中,进程的异常退出是一个常见的问题。
为了保证系统的稳定性,我们需要一种自动重启进程的方案。
本文将介绍一种基于Shell脚本的自动重启脚本的实现方法,并附上具体的代码示例。
该脚本可实现对指定进程的监控,一旦该进程异常退出,脚本将自动将其重启。
前提条件:在实施自动重启脚本之前,我们需要确保以下条件已经满足:1. 系统已经安装了所需的Shell环境,一般情况下,Linux系统默认都会安装Shell环境;2. 了解待监控进程的名称或PID,以便正确配置脚本;脚本实现思路:1. 获取待监控进程的PID;2. 判断PID对应的进程是否存在;3. 若进程不存在,则执行重启操作;4. 重启操作的具体实现可以根据需求进行配置;5. 设定一定的时间间隔,循环执行上述步骤,实现定时监控和自动重启。
脚本代码示例:```shell#!/bin/bash# 定义待监控进程的名称process_name="target_process"while true; dopid=$(pgrep $process_name)if [ -z "$pid" ]; thenecho "Process $process_name is not running. Start to restart..."# 重启操作的具体实现/path/to/restart_action.shecho "Process $process_name restarted."fisleep 60 # 配置时间间隔,单位为秒done```代码解释:- 第3行:定义待监控进程的名称,即需要自动重启的进程的名称;- 第5行:使用pgrep命令获取进程的PID;- 第6行:如果PID为空,表示进程不存在,需要进行重启操作;- 第8行:根据需求,可以在此处编写具体的重启操作,比如调用其他脚本或执行命令;- 第10行:输出重启完成的提示信息;- 第12行:sleep命令用于设置脚本每次执行的时间间隔,这里设置为60秒,可以根据实际需要进行调整。
