python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序
psutil是一个跨平台的库(http://code.google.com/p/psutil/),能够轻松的实现获取系统运行的进程和系统利用率(CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。
psutil是第三方库需要安装。pip install psutil
学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895 817 687有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流!
利用socket,psutil实现阻止远程主机运行特定的程序,本例的黑名但是直接写死的,也可以加载一个黑名单文件,方便以后扩展
客户端:
#控制进程,客户端
import sys
import psutil
import socket
import timeserver=sys.argv[1]
s=socket.socket()
while 1:try:s.connect((server,1234)) #建立tcp连接breakexcept:time.sleep(5)data=s.recv(1024).decode() #接收服务器发送的黑名单
blacklist=data.split(",") #str-->list
print(blacklist)
s.close() #接受到黑名单,关闭资源while 1:pids=psutil.pids() #pids所有进程的进程id (list)for i in pids:try:if psutil.Process(i).name() in blacklist: #psutil.Process().name() 进程ID对应的程序名psutil.Process(i).terminate() #terminate 关闭程序except:passtime.sleep(1)
服务端:
##控制进程,服务端
import sys
import psutil
import socket
import time
from threading import Thread
s=socket.socket()
s.bind(("0.0.0.0",1234))
s.listen(5)
blacklist=['Calculator.exe','QQ.exe']
msg=','.join(blacklist)def tcplink(sock,addr): #把黑名单发送给客户端sock.send(msg.encode())print(addr,'OK!')sock.close()
while 1:con,addr=s.accept()ts=[]t=Thread(target=tcplink,args=(con,addr)) #创建线程来处理tcp连接ts.append(t)t.start()for i in ts:i.join()
测试:
运行QQ和计算器,发现刚运行就被关闭了。
python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序相关推荐
- 利用Python实现系统监控脚本
利用Python实现系统监控脚本 简介 该 Python 脚本,用于监控计算机或网络的性能和状态.该脚本可用于跟踪各种指标,例如 CPU 使用率.内存使用率.磁盘空间.网络流量和系统正常运行时间.该脚 ...
- bash 抓捕异常_实现简单的监控脚本(Bash的执行和异常捕获)
当我们需要监控服务运行状态时,一般的策略是写定时脚本,定时执行探测服务状态,如果出现预期外情况,就报警.那么第一步我们就需要学会写一个监控脚本,这里我们会讲到bash的执行环境和异常捕获,以及一些简单 ...
- 简单ping监控脚本,并邮件报警
介于摩卡以及zabbix对新建立的虚拟机及新上架主机或其它设备的监控添加较复杂,监控新设备不及时等特点,现用脚本做了一个对设备ping达到存活目的.新上架或新建立的主机只需要将IP加在指定目录下的文件 ...
- python语言只有一种运行方式_Python中四种运行其他程序的方式
在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...
- python运维监控脚本_Python实现数通设备端口使用情况监控实例
本文实例讲述了Python实现数通设备端口使用情况监控的方法.分享给大家供大家参考.具体如下: 最近因工作需要,上面要求,每天需上报运维的几百数通设备端口使用情况[],虽然有现成网管监控工具监控设备状 ...
- python简单使用
Python是动态的,面向对象的脚本语言,最初主要用在自动化脚本的编写,而如今随着Python语言的发展,也逐渐被用在开发中大型项目. 越来越多的程序员开始使用该语言,说明它有着无与伦比的优势,下面就 ...
- 利用Serverless实现网站监控脚本的实现!
很多开发者都有自己的博客,或者做过 Web,但是自己关心的 Web 是否健康?当前状态是否可访问?网站挂了谁的锅?这些问题都可以用相关的网站监控脚本进行监测.今天本文将分享如何通过云函数开发一个简单的 ...
- js date 当前日志往后一个月_【应用实例】如何利用 Python 生成器 yield 监控日志?...
Python 生成器 yield 是编写基于处理管道,流或数据流程序的一种极其强大的方式,在<Python参考手册>中有一则实例非常简单实用,略加修改,分享一下给大家.如果你对生成器yie ...
- python控制手机自动刷新闻_Python脚本利用adb进行手机控制的方法
一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...
最新文章
- IIS配置跨服务器迁移
- golang 遍历list_golang如何把一个list遍历给一个切片
- 96.6. Template
- php ajax 弹窗修改,更改PHP/Ajax脚本来使用Meekrodb?
- Web前端遍历对象应该如何操作呢?
- 第七课 ActionScript 3语言进阶一
- java写spark碰到输出为[Ljava.lang.String;@889a8a8的情况
- Tomcat一步步实现反向代理、负载均衡、内存复制
- 基础排序算法 – 冒泡排序Bubble sort
- mysql web界面 Linux_部署WEB项目到服务器(三)安装mysql5或者mysql8到linux服务器(Ubuntu)详解...
- js中src赋值理解
- Linux网卡配置出错无法联网-联网报错解决方法
- 匿名对象和类名为数据类型(java)
- VueJS 组件参数名命名方式和前台显示
- 简单了解一下如何使用Spring框架里JDBC和事务
- Microsoft Press免费电子书地址
- 安装Ubuntu Server 在 Configure the package manager是闪退到installer main menu
- 场外期权业务挂钩个股标的名单又更新啦!
- 【This is 广告】百度直达号——@ 加 关键字
- 关于node链接数据库Handshake inactivity timeout
热门文章
- 【Linux环境】SSH突然无法连接【排查2个小时最终解决Failed to start OpenSSH server daemon】及【阿里云服务器的 kdevtmpfsi 挖矿病毒处理】
- Nosql数据库的四大分类
- 绝地求生手游7月服务器维护,绝地求生维护公告7月22 | 手游网游页游攻略大全...
- python小波变换尺度函数_Python图像处理(17):pyWavelet
- idea debug调试_大牛都会用的 IDEA 调试技巧!!!
- springboot优雅停机
- MyBatis Plus Generator——MyBatis Plus代码生成器DEMO
- Git——git push 错误[ ! [rejected] master - master (non-fast-forward)]解决方案
- 冒泡排序(Bubble_Sort)
- java顺序结构类型,Java类的完整构造执行顺序