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阻止远程主机运行特定程序相关推荐

  1. 利用Python实现系统监控脚本

    利用Python实现系统监控脚本 简介 该 Python 脚本,用于监控计算机或网络的性能和状态.该脚本可用于跟踪各种指标,例如 CPU 使用率.内存使用率.磁盘空间.网络流量和系统正常运行时间.该脚 ...

  2. bash 抓捕异常_实现简单的监控脚本(Bash的执行和异常捕获)

    当我们需要监控服务运行状态时,一般的策略是写定时脚本,定时执行探测服务状态,如果出现预期外情况,就报警.那么第一步我们就需要学会写一个监控脚本,这里我们会讲到bash的执行环境和异常捕获,以及一些简单 ...

  3. 简单ping监控脚本,并邮件报警

    介于摩卡以及zabbix对新建立的虚拟机及新上架主机或其它设备的监控添加较复杂,监控新设备不及时等特点,现用脚本做了一个对设备ping达到存活目的.新上架或新建立的主机只需要将IP加在指定目录下的文件 ...

  4. python语言只有一种运行方式_Python中四种运行其他程序的方式

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...

  5. python运维监控脚本_Python实现数通设备端口使用情况监控实例

    本文实例讲述了Python实现数通设备端口使用情况监控的方法.分享给大家供大家参考.具体如下: 最近因工作需要,上面要求,每天需上报运维的几百数通设备端口使用情况[],虽然有现成网管监控工具监控设备状 ...

  6. python简单使用

    Python是动态的,面向对象的脚本语言,最初主要用在自动化脚本的编写,而如今随着Python语言的发展,也逐渐被用在开发中大型项目. 越来越多的程序员开始使用该语言,说明它有着无与伦比的优势,下面就 ...

  7. 利用Serverless实现网站监控脚本的实现!

    很多开发者都有自己的博客,或者做过 Web,但是自己关心的 Web 是否健康?当前状态是否可访问?网站挂了谁的锅?这些问题都可以用相关的网站监控脚本进行监测.今天本文将分享如何通过云函数开发一个简单的 ...

  8. js date 当前日志往后一个月_【应用实例】如何利用 Python 生成器 yield 监控日志?...

    Python 生成器 yield 是编写基于处理管道,流或数据流程序的一种极其强大的方式,在<Python参考手册>中有一则实例非常简单实用,略加修改,分享一下给大家.如果你对生成器yie ...

  9. python控制手机自动刷新闻_Python脚本利用adb进行手机控制的方法

    一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...

最新文章

  1. IIS配置跨服务器迁移
  2. golang 遍历list_golang如何把一个list遍历给一个切片
  3. 96.6. Template
  4. php ajax 弹窗修改,更改PHP/Ajax脚本来使用Meekrodb?
  5. Web前端遍历对象应该如何操作呢?
  6. 第七课 ActionScript 3语言进阶一
  7. java写spark碰到输出为[Ljava.lang.String;@889a8a8的情况
  8. Tomcat一步步实现反向代理、负载均衡、内存复制
  9. 基础排序算法 – 冒泡排序Bubble sort
  10. mysql web界面 Linux_部署WEB项目到服务器(三)安装mysql5或者mysql8到linux服务器(Ubuntu)详解...
  11. js中src赋值理解
  12. Linux网卡配置出错无法联网-联网报错解决方法
  13. 匿名对象和类名为数据类型(java)
  14. VueJS 组件参数名命名方式和前台显示
  15. 简单了解一下如何使用Spring框架里JDBC和事务
  16. Microsoft Press免费电子书地址
  17. 安装Ubuntu Server 在 Configure the package manager是闪退到installer main menu
  18. 场外期权业务挂钩个股标的名单又更新啦!
  19. 【This is 广告】百度直达号——@ 加 关键字
  20. 关于node链接数据库Handshake inactivity timeout

热门文章

  1. 【Linux环境】SSH突然无法连接【排查2个小时最终解决Failed to start OpenSSH server daemon】及【阿里云服务器的 kdevtmpfsi 挖矿病毒处理】
  2. Nosql数据库的四大分类
  3. 绝地求生手游7月服务器维护,绝地求生维护公告7月22 | 手游网游页游攻略大全...
  4. python小波变换尺度函数_Python图像处理(17):pyWavelet
  5. idea debug调试_大牛都会用的 IDEA 调试技巧!!!
  6. springboot优雅停机
  7. MyBatis Plus Generator——MyBatis Plus代码生成器DEMO
  8. Git——git push 错误[ ! [rejected] master - master (non-fast-forward)]解决方案
  9. 冒泡排序(Bubble_Sort)
  10. java顺序结构类型,Java类的完整构造执行顺序