首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第十七章 系统监控脚本

第十七章系统监控脚本 上一章我们介绍了shell编程的语法和应用,在实际生产环境中,Linux的系统运维者经常会查看系统中的各项性能、参数,为了提高查看效率,我们可以编写一些监控脚本以便系统的自动化运维...脚本思路:通过sar命令查看cpu使用率,获取idle的值,因为显示的是带小数的,所以先截取到整数部分(因为if判断对整数判断最为简便),再判断是否到达报警阈值,若到达则查询所有进程,抓取http进程并统计数量.../bin/bash #监控CPU,当cpu使用率超70%时,统计服务进程数,假设本机提供的服务是#http while true do date +"20%y-%m-%d %H:%M:%S">>...再者为了能够让用户在注销后该脚本仍会运行,则可以使用nohup调用: nohup /var/scripts/cpuMonitor.sh & 再者,因为脚本是周期性记录日志的,那么生成的日志文件,将频繁被写入新内容...脚本思路:通过free命令获取内存总量、使用量两个数据赋值给变量,在计算使用率,判断是否到达阈值,若到达,则查询所有进程,并按占内存比例降序排序后记录前10个进程。

85250
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    轻度Linux服务器维护人员常用的Shell脚本命令

    笔者平时属于非专业运维人员,但是偶尔也需要接触一些测试服务器和个人VPS服务器。所以收集了一些常用的Shell脚本,希望跟我一样的开发人员能有一些收获。...查询/统计 统计文件中数量 wc -c or wc -l or wc -w 计算行号 nl 搜索数据 grep 文件权限 系统用户 cat /etc/passwd or cat /etc/shadow...冒号分隔的当前用户收件箱的文件名列表;bash shell会检查列表中的每个文件来看有没有新邮件 OPTARG getopts命令处理的最后一个选项参数值 OPTIND getopts命令处理的最后一个选项参数的索引号...= str2 检查str1是否和str2不同 str1 检查str1是否比str2小 str1 > str2 检查str1是否比str2大 -n str1 检查str1的长度是否非0 -z...显示命令的帮助信息 -i 忽略文本大小写 -l 产生输出的长格式版本 -n 使用非交互模式(批量) -o 指定将所有输出重定向到输出文件 -q 以安静模式运行 -r 递归地处理目录和文件 -s 以安静模式运行

    2.2K130

    如何避免 Cronjob 重复运行

    所以我们可以在/opt/test.sh中加入进程数的判断,如果进程数大于2,就说明存在已有任务在运行,此时应该退出执行count=$(ps -ef | grep /opt/test.sh | wc -l...exit 1fido something但是事与愿违,当我们在/opt/test.sh中通过ps命令获取定时任务运行数量的时候发现,如果只存在当前的任务运行时,得到的进程数是3,如果有其他一个已在运行,...中起了一个子shell,所以在子shell执行ps的同时多了一个当前脚本任务运行的进程,所以比正常进程数多1,所以上面代码我们需要改为:count=$(ps -ef | grep /opt/test.sh...,其优势在于除了可以通过检查文件是否存在来判断是否存在已经运行的任务,还可以再通过锁文件里面的进程号来做第二次确认。...而进程号文件锁则可以在文件锁判断之外,再对锁文件中的进程号进行判断是否还在运行,具体代码如下:#!

    1.6K40

    NFS双机热备高可用环境 - 运维笔记

    export文件,运行k8s的node节点挂载nfs共享目录 这里可以使用node节点的ip网段进行挂载配置 也可以直接使用node节点的具体ip(一个ip配置一行)进行挂载配置 # vim /etc/...keepalived.service && systemctl enable keepalived.service 查看服务进程是否启动 # ps -ef|grep keepalived 6)检查...&& systemctl restart rsyncd 检查rsync服务进程是否启动 # ps -ef|grep rsync 3)Slave节点机器配置rsyncd.conf 就把master主机...# systemctl enable rsyncd && systemctl restart rsyncd 检查rsync服务进程是否启动 # ps -ef|grep rsync 4)手动验证下Master...节点服务ip slave_web 为Slave服务器的rsyncd.conf中配置的同步模块名 --password-file=/opt/rsyncd.passwd 是Master节点同步到Slave节点使用的密码文件

    5.2K52

    101个shell脚本

    此脚本正确运行前提: 该系统没有逻辑卷的情况下使用,因为逻辑卷df -h、df -i 时,使用率百分比是在第4列,而不是第5列。如有逻辑卷,则会漏统计逻辑卷使用情况。...在脚本中实现这样的功能,当时间是0点和12点时,需要将目录/data/log/下的文件全部清空,注意只能清空文件内容而不能删除文件。...有很多sh进程,再ps查看: ? 这个脚本,运行很慢,因为制定了cron,上一次还没有运行完,又有了新的运行任务。太多肯定会导致系统负载升高。当务之急就是先把这些在跑的给kill掉。...get_numbers done fi else get_numbers fi ---- 【脚本58】检查服务 先判断是否安装http和mysql...,没有安装进行安装,安装了检查是否启动服务,若没有启动则需要启动服务。

    1.4K10

    jumpserver集群部署(二)---之NFS部署

    节点同步到Slave节点使用的密码文件,文件中配置的是Slave节点服务器的/etc/rsyncd.passwd文件中配置的密码 设置Rsync+Inotify自动同步 这里需要注意:不能设置Master...所以需要确保只有一方在执行自动同步到另一方的操作。方式就是判断当前节点服务器是否存在VIP,如存在VIP则自动同步数据到另一台节点上。如不存在VIP则不执行自动同步操作。.../bin/bash VIP_NUM=`ip addr|grep 220|wc -l` RSYNC_INOTIRY_NUM=`ps -ef|grep /usr/bin/inotifywait|grep -.../bin/bash VIP_NUM=`ip addr|grep 220|wc -l` RSYNC_INOTIRY_NUM=`ps -ef|grep /usr/bin/inotifywait|grep -.../bin/bash VIP_NUM=`ip addr|grep 220|wc -l` RSYNC_INOTIRY_NUM=`ps -ef|grep /usr/bin/inotifywait|grep -

    1.4K10

    jumpserver集群部署(二)---之NFS部署

    节点同步到Slave节点使用的密码文件,文件中配置的是Slave节点服务器的/etc/rsyncd.passwd文件中配置的密码 设置Rsync+Inotify自动同步 这里需要注意:不能设置Master...所以需要确保只有一方在执行自动同步到另一方的操作。方式就是判断当前节点服务器是否存在VIP,如存在VIP则自动同步数据到另一台节点上。如不存在VIP则不执行自动同步操作。.../bin/bash VIP_NUM=`ip addr|grep 220|wc -l` RSYNC_INOTIRY_NUM=`ps -ef|grep /usr/bin/inotifywait|grep -.../bin/bash VIP_NUM=`ip addr|grep 220|wc -l` RSYNC_INOTIRY_NUM=`ps -ef|grep /usr/bin/inotifywait|grep -.../bin/bash VIP_NUM=`ip addr|grep 220|wc -l` RSYNC_INOTIRY_NUM=`ps -ef|grep /usr/bin/inotifywait|grep -

    18310

    在线运行 Linux,强的离谱!

    Webminal 的功能: 在线 Linux/bash 终端,无需安装; 练习 Linux 命令,包括文件系统、文件管理、在 bash/awk/sed 和 MySQL 中编写脚本; 可获得 100MB...,可以在 Web 浏览器中运行 Linux。...可以在本地桌面和在线终端之间进行复制和粘贴; cocalc 的特征: 学习 Bash 脚本; 了解如何使用 Linux 命令行; 运行用 Python、R、PHP、Ruby、Go、Perl、Nodejs...language=bash 15、Shellcheck Shellcheck 是一个静态 Bash 语法检查工具,它可以在多种场景下使用,包括在线使用、命令行检查、编辑器配置。...尽管如此,强烈建议在浏览器上打开任何网站之前检查系统上是否存在任何其他恶意软件或病毒。一个有存在问题或有病毒的浏览器可能会破坏你学习 Linux 系统的流畅体验。

    4.7K21

    《Linux命令行与shell脚本编程大全》第十一章 构建基本脚本

    如果在字符串中用到了它们,需要在文本中使用一种引号,而用另外一种来将字符串划定起来 把文本字符串和 命令输出显示在同一行中。用 –n 参数: #!...变量允许你临时性的将信息存储在shell中,以便和脚本中的其他命令一起使用 11.4.1 环境变量 Shell维护着一组环境变量用来记录特定的系统信息。比如系统的名字,登录到系统的用户,UID等。...注意: 命令替换会创建一个子shell来运行对应的命令。子shell所执行命令是无法使用脚本中所创建的变量的。 在命令行提示符下使用路径./也会创建出子shell。  比如:test3脚本中  ....11.5.2 输入重定向 1.将文件的内容重定向到命令 小于号  < wc命令可以对数据中的文本进行计数。...还可以在bash计算机中赋值给变量,在bc计算机中创建的变量只在bc计算机中有效,不能再shell脚本中使用 11.8 退出脚本 Shell中运行的每个命令都使用退出吗告诉shell它已经运行完毕。

    1.7K70

    Linux 系统日常巡检脚本

    /bin/bash#主机信息每日巡检IPADDR=$(ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}')#环境变量PATH没设好,在cron...-l)" #自启动服务数量report_RuningService="$(echo "$process" | wc -l)" #运行中服务数量elseconf=$(/sbin/chkconfig |...="$(echo "$conf" | wc -l)" #自启动服务数量report_RuningService="$(echo "$process" | wc -l)" #运行中服务数量fiecho "...服务配置"echo "--------"echo "$conf" | column -techo ""echo "正在运行的服务"echo "--------------"echo "$process"...,含年份# 很遗憾last命令不支持显示年份,只有"last -t YYYYMMDDHHMMSS"表示某个时间之间的登录,我# 们只能用最笨的方法了,对比今天之前和今年元旦之前(或者去年之前和前年之前…

    2.8K30

    Nginx + Keepalived 高可用之主从配置

    在架构设计中,可以利用 nginx 的反向代理和负载均衡实现后端应用的高可用性,同时还需要考虑Nginx的单点故障,真正做到架构高可用性。...在自动故障转移的同时能通知到相关的应用负责人检查相关应用,排查隐患,彻底解决问题。...,如果有一台 web 服务器宕机,或者工作出现故障,Keepalived 将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived 自动将服务器加入到服务器群中.../bin/bash A=`ps -C nginx --no-header | wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx...如果 yum 安装的 nginx,可以直接使用 nginx 命令可以启动 nginx,如果是源码安装,或者需要配置下环境变量或者更改下启动命令和绝对路径,并测试是否能正常启动 nginx。

    1.1K30

    23-Keepalived配置Nginx自动重启,实现7X24小时不间断服务

    Keepalived配置Nginx自动重启,实现7X24小时不间断服务 现在主备是正常的, Keepalived服务关闭会自动切换到backup, 那么要是Nginx挂了呢 136模拟Nginx停止.../bin/bash # 用于检测Nginx进程 A=`ps -C nginx --no-header |wc -l` # 判断Nginx是否宕机, 如果宕机, 尝试重启 if [ $A -eq 0 ]..., 使其启动备用机 sleep 3 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then # 终止 Keepalived进程 killall.../check_nginx_alive_or_not.sh nginx已经被启动, 恢复正常 在Keepalived配置脚本中增加监听, 让Keepalived自动去循环check..这个脚本 vi keepalived.conf...interface ens33 # 虚拟路由ID, 保持MASTER和BACKUP一致 virtual_router_id 51 # 优先级/权重 100 谁的优先级高, 在MASTER

    73620

    Linux 服务器日常巡检脚本分享

    Linux 系统日常巡检脚本,巡检内容包含了,磁盘,内存 cpu 进程 文件更改 用户登录等一系列的操作 直接用就行了。 报告以邮件发送到邮箱 在log下生成巡检报告。 #!... -l)" #自启动服务数量 report_RuningService="$(echo "$process" | wc -l)" #运行中服务数量 else conf=$(/sbin/chkconfig..." | wc -l)" #运行中服务数量 fi echo "服务配置" echo "--------" echo "$conf" | column -t echo "" echo "正在运行的服务" echo...,含年份 # 很遗憾last命令不支持显示年份,只有"last -t YYYYMMDDHHMMSS"表示某个时间之间的登录,我 # 们只能用最笨的方法了,对比今天之前和今年元旦之前(或者去年之前和前年之前... ############################" if [ $(ps -ef | grep defunct | grep -v grep | wc -l) -ge 1 ];then echo

    1.7K20
    领券
    首页
    学习
    活动
    专区
    圈层
    工具