终于用PYTHON作了一个实用于工作的脚本啦----通过邮件定时发送服务器空闲空间

简介:

呵呵,GOOGLE上东拼西凑的东东。找了十来个综合,裁剪成一个。

没有风格,不正规,无注释,只是简单可以运行。PYTHON2.4以上通上。

代码:

复制代码
 1 #!/usr/bin/env python
 2 # -*- encoding: utf-8 -*-
 3 
 4 import os, socket, statvfs
 5 from time import localtime, strftime
 6 from smtplib import SMTP
 7 
 8 smtp = SMTP()
 9 #smtp.set_debuglevel(debuglevel)
10 smtp.connect('1.2.3.4', 25)
11 smtp.login('user', 'pass')
12 
13 from_addr = "alert<alert@freedisk.com>"
14 to_addr = ["ag@163.com","ae@163.com","af@163.com"]
15 
16 # Limit in MiB
17 LIMIT=200000;
18 
19 #Define current Time as Fri, 04 Mar 2011 08:47:10
20 TIME = strftime("%d %b %Y", localtime())
21 
22 MONITOR = os.statvfs("/")
23 SPACE_LEFT=(MONITOR.f_bavail * MONITOR.f_frsize) / 1048576
24 SPACE_TOTAL = (MONITOR.f_blocks * MONITOR.f_frsize) / 1048576
25 
26 if (SPACE_LEFT < LIMIT):
27     STATUS = "Free Disk Space is ALERT!!!ALERT!!!ALERT!!! "
28         SPACE_LEFT=SPACE_LEFT / 1024 #GiB
29         print ( TIME+"\n"+STATUS+"\n"+str(SPACE_LEFT)+" GB left on disk\n"+"Alert Space is:"+str((LIMIT/1024))+"GB")
30         subj = "ALERT!!!ALERT!!!ALERT!!!["+str(SPACE_LEFT)+" GB left]Free disk space on www.163.com "+TIME
31         message_text = TIME+"\n"+STATUS+"\n"+str(SPACE_LEFT)+" GB left on disk\n"+"Alert Space is:"+str((LIMIT/1024))+"GB"
32         msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s" % ( from_addr, to_addr, subj, TIME, message_text )
33         smtp.sendmail(from_addr, to_addr, msg)
34     smtp.sendmail(from_addr, to_addr, msg) 
35     smtp.sendmail(from_addr, to_addr, msg)  
36         smtp.quit()
37         print ('Done')
38 
39 elif (SPACE_LEFT > LIMIT):
40         STATUS = "Free Disk Space is OK on "
41            SPACE_LEFT=SPACE_LEFT / 1024 #GiB
42     SPACE_TOTAL=SPACE_TOTAL / 1024 #GB
43         print ( TIME+"\n"+STATUS+"\n"+str(SPACE_LEFT)+" GB left on disk("+str(SPACE_TOTAL)+"GB)\n"+"Alert Space is:"+str((LIMIT/1024))+"GB")
44     subj = "["+str(SPACE_LEFT)+" GB left]Free disk space on www.163.com "+TIME
45         message_text = TIME+"\n"+STATUS+"\n"+"Total space is :"+str(SPACE_TOTAL)+"GB\n"+str(SPACE_LEFT)+" GB left on disk\n"+"Alert Space is:"+str((LIMIT/1024))+"GB"
46         msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s" % ( from_addr, to_addr, subj, TIME, message_text )
47         smtp.sendmail(from_addr, to_addr, msg)
48         smtp.quit()
49         print ('Done!')
50         
51 else:
52         print ("""
53 A serius problem detected with the script.
54 Please check what mount points you monitor and check that they're in the MON_ARRAY aswell.
55 """ )
复制代码

然后,将其放入/etc/spool/cron/相关用户文件里。

0 1 * * *       python /root/diskspace/freedisk.py

测试截图:

目录
相关文章
|
13天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
23天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
106 1
|
26天前
|
Linux Shell Python
Linux执行Python脚本
Linux执行Python脚本
26 1
|
12天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
143 0
|
12天前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
136 0
|
15天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
16天前
|
弹性计算 Shell Linux
ecs服务器shell常用脚本练习(六)
【4月更文挑战第4天】shell代码训练(六)
109 0
|
16天前
|
Python
Python网络编程基础(Socket编程)UDP服务器编程
【4月更文挑战第8天】Python UDP服务器编程使用socket库创建UDP套接字,绑定到特定地址(如localhost:8000),通过`recvfrom`接收客户端数据报,显示数据长度、地址和内容。无连接的UDP协议使得服务器无法主动发送数据,通常需应用层实现请求-响应机制。当完成时,用`close`关闭套接字。
|
21天前
|
弹性计算 Shell 应用服务中间件
ecs服务器shell常用脚本练习(四)
【4月更文挑战第4天】shell代码训练(四)
96 0
|
22天前
|
存储 监控 异构计算
【Python】GPU内存监控脚本
【Python】GPU内存监控脚本