① 如何在 linux 环境下利用 python 监听当前系统的鼠标事件
inux下好办,所有的设备都当作文件处理了,在‘/dev/input’目录下找到鼠标对应设备文件读出来即可。
鼠标设备文件是‘/dev/input/mice’,读3个字节,三个字节的值分别是‘Button类型’,‘X的相对位移’,‘Y的相对位移’。取Button的低3位(Button & 0x07)。 0x01 -> LeftButtonDown, 0x02 -> RightButtonDown.
import struct
mou = open( "/dev/input/mice", "rb" );
def m_event():
m = mou.read(3)
b = ord( m[0] )
bl = b & 0x1
bm = ( b & 0x4 ) > 0
br = ( b & 0x2 ) > 0
x,y = struct.unpack( "bb", m[1:] )
print "Left:%d, Middle: %d, Right: %d, x: %d, y: %d\n" % (bl,bm,br, x, y)
while( 1 ):
m_event()
mou.close();
② Python 在 Linux 系统运维中都有哪些应用
Python对日常运维工作来说比Perl和Bash都弱。Python做Web开发也比PHP麻烦很多。我个人的感觉Python更像Java,不适合与Perl/Bash比较。
我个人常用的运维工具是Bash为主,Python主要用来做一些算法演算。因为我的日常维护任务以文件系统维护为主,比较语言要结合场景。
绝大部分的应用需求,所有语言都能完成,但是难易程度不同,选择语言要看开发者的熟练程度和需求的复杂程度。
如果只是“grep”需求,你选Bash执行grep最简单,如果稍复杂就用awk,再复杂就用perl。用更通用的语言就是费力不讨好。
如果是个矩阵计算需求,perl的数组能把你折腾死,bash的管道能把机器折腾死。
我下面这个观点一定会有争议(尤其是PHPer),我倾向于把高级语言分成三类:
1) 底层的C/C++
这是可以写操作系统,操作硬件的。可以解决一切问题,但是绝大多数互联网项目不应该用。
2) 中性的Java/Python/Ruby/.NET系列
这是做项目的主要语言,平衡开发效率和执行效率。没有明显的亮点,亦没有明显的缺点。
3) 特长的PHP/Bash/Perl
在某些特定领域,应该选择这些有特长的语言。随着需求越来越全面,语言的短板越用越多,应该控制扩散。
③ Python如何监测Linux隐藏进程
我理解你说的隐藏进程可能是类似恶意软件隐藏自身的进程。
python可以通过读取/proc的结果来对比ps的结果来找到和监视这些隐藏的进程。
④ python监控linux下启动了多少进程
任何一种编程语言,启动进程和关闭进程都是跟操作系统相关的操作,python中与操作系统打交道的话,推荐使用os模块。
os.system() 函数可以启动一个进程,执行完之后返回状态码。
os.fork() 复制一个进程,如果是子进程返回0,如果是父进程返回子进程的pid,使用这个函数的时候,建议你学习一下linux编程的知识。
os.popen 以管道的方式创建进程。
os.spawnl 也可以创建进程,并能指定环境变量。
os.kill(pid, sig) 关闭一个进程,pid是进程号,sig是信号。与fork配合使用,例如你刚才用fork创建了一个子进程,它的pid是11990, 那么调用
os.kill( 11990, signal.CTRL_BREAK_EVENT)
就以ctrl+c的方式杀死了这个进程。
另外还有一个模块multiprocessing,这个模块封装了很多创建进程和进程间通信的操作,可以让你发挥多核的威力。
⑤ Python 在 Linux 系统运维中都有哪些应用
python在系统管理上的优势在与强大的开发能力和完整的工具链。python的工程开发能力强大,远强于各种shell和perl。易读易写,兼具面向对象和函数式风格,还有不错元编程能力。通过系统化的将各种管理工具结合,对上述的各类工具进行二次开发,形成统一的服务器管理系统。
和python类似的ruby也很适合编写系统管理软件,但是在相关库和工具上,比python差太多。
举个例子: 某牛人,精通 bash,python,perl,ruby ,在工作中写了数百个单一功能的脚本(任何语言)来进行日常操作,涵盖了监控,部署,网络配置,日志分析,安全检测 等等许许多多的方面,无所不包。他所作的,只是操作,并没有把系统管理这项工作做好。再多的脚本,也只是把“操作”这个行为做到极致。写再多的脚本,也不能转化为公司在系统管理上的宝贵资产。
让系统易于管理,是一个工程。只有像puppet(ruby),saltstack(python) 这样的自动化管理工具,才能完整的描述整个系统,并且让系统管理的方方面面纳入统一的体系,而不是一堆脚本。
python在服务器管理工具上非常丰富,配置管理(saltstack) 批量执行( fabric, saltstack) 监控(Zenoss, nagios 插件) 虚拟化管理( python-libvirt) 进程管理 (supervisor) 云计算(openstack) ...... 还有大部分系统C库都有python绑定。
对于流程确定的事情,最终一定是纳入系统管理的体系,写成程序,成为系统的一部分。而不是无法复用游离与整体的各种脚本。
随着云计算时代的来临,中小型公司,不需要运维了。大型公司,没有工程开发能力的运维,是没有竞争力的。
⑥ Python 在 Linux 系统运维中都有哪些应用
本人主要用shell,结合工作经验,给出如下常用功能:
1.制作定时任务,可以获得系统状态,然后截取系统状态,发送至故障监控平台或短信平台,实现故障的自动预警。
2.提取数据,形成文本,处理文本,得到规格化的数据,提供给相关部门使用。
3.制作shell交互式菜单,提供给其他运维值班人员使用,用以手工监控系统各种状态
4.版本升级、系统变更等操作需要使用。
⑦ 使用python,在linux上监控远程windows的CPU、硬盘、内存使用率
你需要安装wmic,它实现了linux下能使用wmi,安装以后就可以用了,下面是例子。
import wmi_client_wrapper as wmi
wmic = wmi.WmiClientWrapper(
username="Administrator",
password="password",
host="192.168.1.149",
)
output = wmic.query("SELECT * FROM Win32_Processor")
⑧ Python 在 Linux 系统运维中都有哪些应用
我更喜欢用系统管理形容运维项工作运维听起偏执行项工作python系统管理优势与强发能力完整工具链python工程发能力强远强于各种shellperl易读易写兼具面向象函数式风格错元编程能力通系统化各种管理工具结合述各类工具进行二发形统服务器管理系统
python类似ruby适合编写系统管理软件相关库工具比python差太
举栗: 某牛精通 bash,python,perl,ruby ,工作写数百单功能脚本(任何语言)进行操作涵盖监控部署网络配置志析安全检测 等等许许面所包所作操作并没系统管理项工作做再脚本操作行做极致写再脚本能转化公司系统管理宝贵资产
让系统易于管理工程像puppet(ruby)saltstack(python) 自化管理工具才能完整描述整系统并且让系统管理面面纳入统体系堆脚本
python服务器管理工具非丰富配置管理(saltstack) 批量执行( fabric, saltstack) 监控(Zenoss, nagios 插件) 虚拟化管理( python-libvirt) 进程管理 (supervisor) 云计算(openstack) ...... 部系统C库都python绑定
于流程确定事情终定纳入系统管理体系写程序系统部复用游离与整体各种脚本
随着云计算代临型公司需要运维型公司没工程发能力运维没竞争力