linux 检测screen,linux screen编程,自动监控并向screen发送命令
#!/bin/bash
#author:haiy
#email:haiyangfu512@gmail.com
# Fri Apr 25 13:04:48 CST 2014#GNU licence.
#monitor and keep the program running
DEBUG=false
function restart_program()
{#向screen发送要执行的命令
if [ $# -lt 3 ];then
echo $# parameters get!
echo usage: bash restart_program session_name window_index_number command
exit
fi
session=$1
window=$2
command=$3
#echo "current session is $session.$window_num"
screen -x -S $session -p $window -X stuff "$command"
}
function single_watch()
{#检测某个程序是否在运行
if [ $# -lt 2 ];then
echo $# parameters get!
echo usage: bash single_watch program_name running_instance_number
exit
fi
program_name=$1
expected_number=$2
real_number=$( ps aux | grep "$program_name"$ | grep -v grep | grep -v $0 | grep -v SCREEN | grep -v vim | wc -l )
if [ ! $real_number = $expected_number ];then
echo false
else
echo true
fi
}
function keep_running()
{#从文件读入要检测运行的程序的列表以及其所在的screen 的session name和window number。
#$1 is the service_list file with service name ,
#screen session name and window index
#$2 is the sleep duration
service_list=$1
sleep_time=$2
while true;
do
if [ $# -lt 2 ];then
echo $# parameters get!
echo usage: bash check_running_service list_file sleep_time
exit
fi
#read the checked service list from the file
while read line;
do
IFS=';' read -a content <<< "$line"
session=$(echo "${content[0]}")
window=$(echo "${content[1]}")
program=$(echo "${content[2]}")
if $DEBUG; then
echo session,$session,
echo window,$window,
echo program,$program
fi
stat=$(single_watch "$program" 1)
if [ $stat == "false" ];then
echo "`date` Gonna restart $program..."
restart_program $session $window "$program
"
#echo "$program ." > mail_content
#python gmail_sender.py#发送邮件。。。。
else
echo "`date` ==> $line ==>Running normally."
fi
done < $service_list
if $DEBUG;then
exit
fi
echo "I'm gonna sleep a while,$2.."
sleep $sleep_time
done
}
if $DEBUG;then
#Here the command should be quoted with double quotes
restart_program 16902.watch_dog 3 "ls
"
#single_watch
keep_running $1 $2
#session_name=16902.watch_dog
#window_num=3
#screen -x -S $session -p $window_num -X stuff $command
fi
if [ $# -lt 2 ];then
echo usage: bash keep_running list_file sleep_time
exit
fi
keep_running $1 $2
=======分隔=====================
list_file example:
16902.watch_dog;2;bash test_loop.sh
http://www.dengb.com/xtzh/766249.htmlwww.dengb.comtruehttp://www.dengb.com/xtzh/766249.htmlTechArticle#!/bin/bash#author:haiy#email:haiyangfu512@gmail.com# Fri Apr 25 13:04:48 CST 2014 #GNU licence.#monitor and keep the program runningDEBUG=falsefunction restart_program(){#向scree...
linux 检测screen,linux screen编程,自动监控并向screen发送命令相关推荐
- 主动申请linux内存 脚本,Shell 脚本来自动监控 Linux 系统的内存
# vim /scripts/swap-warning.sh #!/bin/bash #提取本服务器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr&q ...
- Linux中的Shell用SSH自动登录远程服务器后执行命令并自动退出
目录 [隐藏] 1 SSH命令格式 2 主要参数说明 3 ssh控制远程主机,远程执行命令步骤 4 准备工作 5 基于公私钥认证远程登录可能存在的不足 6 ssh 执行远程命令格式 6.1 打开远程s ...
- 网站首页被篡改? 看我使用PhantomJS利器实现网站自动监控修改并截图发送企业微信预警
欢迎关注「WeiyiGeek」 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! 涉及 网络安全运维.应用开发.物联网IOT.学习路径 .个人感悟 等知识 " 花开堪折直须 ...
- linux inotifywait脚本,使用inotify/fswatch构建自动监控脚本
自动告警脚本 最近项目上有这样一个需求:系统中有一个后台服务会不断的生成监控日志,根据系统的运行情况,它每天会在目录/var/alarms下生成一个文件,文件名带有时间戳,其中内容格式如下: $cat ...
- Linux命令如何进入screen,linux screen命令基础
screen命令可以在同一个账号同时开启多个窗口,这样可以在某一个窗口运行程序的同时,开启另一个窗口操作其他命令,尤其是当你连接了Linux服务器的时候,使用screen可以在后台跑程序,这样即使你的 ...
- linux 终端 screem,Linux screen实操指南
今天为大家从实践角度介绍下如何在linux终端使用screen,相信我,用好screen,可以让你的工作事半功倍. 01screen是什么 Screen是一个全屏窗口管理器,它可以在多个进程之间多路复 ...
- linux 显示用法,linux screen 用法总结
你 是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远程 ...
- linux终端录像工具,Linux_Ubuntu安装屏幕录像工具Simple Screen Recorder的方法, Simple Screen Recorder是一款简 - phpStudy...
Ubuntu安装屏幕录像工具Simple Screen Recorder的方法 Simple Screen Recorder是一款简单的屏幕录像工具,能够在屏幕上录制视频.教程,可用于手机和电脑系统, ...
- Linux环境下的网络编程
本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代 码实例.要理解本文所谈的技术问题需要读者 ...
- Linux的系统调用、网络连接状态、磁盘I/O;可疑行为监控/日志收集、SHELL命令执行流程
http://man7.org/linux/man-pages/man7/capabilities.7.html http://www.cnblogs.com/LittleHann/p/3850653 ...
最新文章
- 《深入java虚拟机》读书笔记类加载
- Metasploit运行环境内存不要低于2GB
- vue修改打包后静态资源路径
- Jquery checkbox全选简单用法
- Oracle数据库之创建和管理表
- 【01】Clean Code
- html编写气泡对话框,HTML+CSS入门 纯CSS手写圆角气泡对话框
- pm模型matlab算法,18基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码...
- Android 学习
- 安装构建以太坊钱包Parity
- Python——类和对象、魔术方法(day07)
- Linux基础知识小结(一)
- 微信最火html5游戏平台,盘点五个热门HTML5游戏微信公众号
- arduino 的红外遥控解码
- 同花顺服务器维护,同花顺云端服务器
- 使用uview中的u-upload上传图片
- 【持续更新】SDN Software Defined Networks(Thomas D.Nadeau Ken Gray)翻译
- 家里想养花了(持续更新)
- 团子杂记:SAP可持续化发展解决方案之产品碳足迹管理(PFM)简介
- KaliLinux-OneForAll子域名扫描神器
热门文章
- Java中关于创建文件,Java实现 PDF、Word、Excel、Html、XML互转及与图片互相转化、图片像素调节,待更新整理中
- 微信再次重大更新,同时支持5个浮窗展示,你怎么看?
- SQL中进行去重的方法
- 【程序员金典】字符串互异
- 软件测试工程师思维逻辑题汇总
- 国外著名英文搜索引擎大全及分类
- 锯齿波FMCW雷达目标检测原理
- ANSYS ICEM常用操作
- python 节气_Python开源日志01:pyGregorian2LunarCalendar公历农历转换、阳历阴历转换、二十四节气计算...
- 如何制作U盘启动盘并且安装系统(保姆级教学)