Linux作为一款功能强大的操作系统,不仅在服务器、云计算等领域中有着广泛的应用,也成为了普通用户系统的首选操作系统之一。在Linux中,所有的东西都可以通过命令行进行控制,这也是Linux的魅力之一。但是,如果需要在Linux系统中部署应用程序,并且需要对应用程序进行监控和自动化重启,这就需要我们用到一些高效的工具。本篇文章将介绍一种常用的方法-使用脚本进行自动化重启,从而实现程序监控和自动化重启的功能。
创新互联公司专注于网站建设,为客户提供成都做网站、成都网站制作、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,品牌网站制作,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。
1. 相关概念
我们需要了解一些相关的概念。在Linux系统中,监控器的作用是监测一个进程的状态,例如:正在运行、已停止运行等状态。如果监测到某个进程已经停止运行,我们可以采取一些措施来重新启动它,确保程序能够正常运行。
此外,我们还需要了解重启脚本的概念。重启脚本是一种自动化脚本,它可以监测程序的状态,并在必要的时候重新启动该程序。重启脚本的作用很重要:当我们需要在Linux系统中部署程序时,它可以在程序出现错误或程序进程被杀死时自动重新启动程序。
2. 编写重启脚本
在Linux系统中,我们可以使用Bash脚本语言来编写重启脚本。下面是一份示例脚本,我们可以将它保存为restart.sh文件:
“`
#!/bin/bash
while true ; do
pgrep myprogram > /dev/null
if [[ $? -ne 0 ]]; then
echo “myprogram is not running. Restarting it now…”
/path/to/myprogram
fi
sleep 60
done
“`
在该脚本中,“pgrep”命令用于检查进程列表中是否存在“myprogram”进程。如果该进程不存在,则脚本将重新启动“myprogram”。该脚本的运行将一直持续下去。
当我们希望停止该脚本时,可以在终端中按下Ctrl+C键。
3. 配置定时执行
使用crontab命令可以定期执行“restart.sh”重启脚本。crontab是Linux的一个系统服务,它可以帮助我们按照一定的规律自动执行脚本。
为了配置crontab,我们可以执行以下命令:
“`
crontab -e
“`
执行该命令后,会主动开启vim编辑器并加载crontab配置文件。
Crontab的配置文件格式如下:
“`
* * * * * /path/to/restart.sh
“`
当我们要在每分钟执行一次“restart.sh”时,可以在crontab文件中配置如下:
“`
* * * * * /path/to/restart.sh > /dev/null 2>&1
“`
其中,”> /dev/null 2>&1″表示将脚本的输出重定向至/dev/null,这将避免在.logs文件夹中生成大量的多余文件。
4. 启动重启脚本
现在,我们已经编写了一个自动化的重启脚本,并且已经配置了一个计划任务,实现了自动化的程序监控和重启功能。接下来,我们需要启动该脚本,以便在后台运行。
我们可以使用以下命令来启动脚本:
“`
nohup /path/to/restart.sh &
“`
该命令会将脚本放入后台运行,并且输出和错误信息将被重定向至nohup.out文件中,这将确保即使我们关闭SSH终端窗口,脚本也将继续运行。
5. 测试和调试
当我们使用重启脚本时,需要在终端中使用以下命令检查脚本是否正在运行:
“`
ps aux | grep restart.sh
“`
如果脚本已经在运行,则会显示与脚本相关的进程。我们还可以在nohup.out文件中查看脚本输出信息,以便验证是否已经监测到程序错误并自动执行了重启操作。
当我们需要进行调试时,可以在执行重启脚本时加上“-x”参数,以便打印出脚本所有的输出信息:
“`
bash -x /path/to/restart.sh > /var/log/myprogram.log 2>&1 &
“`
当然,我们也可以在脚本的适当位置加入debug语句来打印调试信息:
“`
#!/bin/bash
while true ; do
pgrep myprogram > /dev/null
if [[ $? -ne 0 ]]; then
echo “myprogram is not running. Restarting it now…” >> myprogram.log
/path/to/myprogram >> myprogram.log 2>&1 &
fi
sleep 60
done
“`
6.
在本篇文章中,我们介绍了一种使用重启脚本自动化监测程序并执行重启操作的方法。它是一种简单、高效的方法,可以帮助我们实现程序监控和自动化重启,以确保程序能够保持正常的状态运行。
相关问题拓展阅读:
几种办法,
1, 最简单的,写一个脚本,比如
#!/bin/sh
while true
do
./1234 xx bb
done
执行这个脚本,就不用担心 1234 退出后出问题了。
2, 用上面的方法,你差唤庆可能会提出,如果脚本本身被杀了怎么办…… 可以用定时任务,比如 通过 crontab 可以每分钟去检查一下1234进程是否还在
比如虚握下面的脚本可以检查 1234 是否存在,如果不存在就会自动启动 1234
#!/bin/sh
ps -A | awk ‘{print $4}’ | grep -q ‘^1234$’
if ; then
/PATH/TO/1234 xx bb
fi
假定这个脚本叫 a.sh
然后用crontab -e增加定时任务
* * * * * /path/to/a.sh
即可。链凳
#!/bin/bash
wile true
do
PROGRAM=$(/bin/唤含斗ps -ef | grep “1234” | grep -v “grep” | wc -l)
if
then
sleep 10
else
/bin/bash /1234 参数和磨
sleep 10
fi
done
几个常用的Linux监控脚本
下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助。
1、查看主机网卡流量
#!/bin/bash
#network
#Mike.Xu
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=$
tx_result=$
echo “$time Now_In_Speed: “$rx_result”kbps Now_OUt_Speed: “$tx_result”kbps”
sleep 2
done
2、系统状况监控
#!/bin/sh
#systemstat.sh
#Mike.Xu
IP=192.168.1.227
top -n 2| grep “Cpu” >>./temp/cpu.txt
free -m | grep “Mem” >> ./temp/mem.txt
df -k | grep “sda1” >> ./temp/drive_sda1.txt
#df -k | grep sda2 >> ./temp/drive_sda2.txt
df -k | grep “/mnt/storage_0” >> ./temp/mnt_storage_0.txt
df -k | grep “/mnt/storage_pic” >> ./temp/mnt_storage_pic.txt
time=`date +%m”.”%d” “%k”:”%M`
connect=`netstat -na | grep “219.238.148.30:80” | wc -l`
echo “$time $connect” >> ./temp/connect_count.txt
3、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告
#!/bin/bash
#monitor available disk space
SPACE=’df | sed -n ‘/ \ / $ / p’ | gawk ‘{print $5}’ | sed ‘s/%//’
if
then
fi
4、 监控CPU和内存的使用情况
#!/bin/bash
#script to capture system statistics
OUTFILE=/home/xu/capstats.csv
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 ‘//p’ | sed -n ‘2p’ | gawk ‘{print $4} ‘ ‘
IDLE=’echo $VMOUT | sed -n ‘//p’ | sed -n ‘2p’ |gawk ‘{print $15}’ ‘
echo “$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE” >> $OUTFILE
5、全方位监控主机
#!/bin/bash
# check_xu.sh
# 0 * * * * /home/check_xu.sh
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里每小时自动执行:
是需要inotify? 还是incrontab
基础监控做的更好的,最轻量的工具,搜
WGCLOUD
关于linux 监控程序 重启脚本的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
创新互联成都网站建设公司提供专业的建站服务,为您量身定制,欢迎来电(028-86922220)为您打造专属于企业本身的网络品牌形象。
成都创新互联品牌官网提供专业的网站建设、设计、制作等服务,是一家以网站建设为主要业务的公司,在网站建设、设计和制作领域具有丰富的经验。
网页名称:Linux下监控程序的神器:重启脚本实现轻松自动化(linux监控程序重启脚本)
网站路径:http://www.csdahua.cn/qtweb/news42/308342.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网