#!/usr/bin/env python
# Version = 3.5.2
# __auth__ = '无名小妖'
import os
import time
import sendmail
import psutil
import collections disk_used = collections.OrderedDict()
cur_time = time.time()
# current_day = cur_time - cur_time % 86400
root_dir = ["D:\\backup", "G:\db_backup"]
log_name = 'result.log' def get_disk_info():
"""
查看磁盘属性信息
:return: 磁盘使用率和剩余空间
"""
for id in psutil.disk_partitions():
if 'cdrom' in id.opts or id.fstype == '':
continue
disk_name = id.device.split(':')
s = disk_name[0]
disk_info = psutil.disk_usage(id.device)
disk_used[s + '盘使用率:'] = '{}%'.format(disk_info.percent)
disk_used[s + '剩余空间:'] = '{}GB'.format(disk_info.free // 1024 // 1024 // 1024)
return disk_used if __name__ == '__main__':
with open(log_name, 'w') as f:
ret = get_disk_info()
for k, v in ret.items():
f.write('{}{}。\n'.format(k, v)) for item in root_dir:
print(item)
all_size = 0
for parent, dir_names, file_names in os.walk(item): # 遍历文件夹
for filename in file_names:
path = os.path.join(parent, filename) # 获取文件路径
stat_info = os.stat(path) # 读取文件属性
upload_time = time.ctime(stat_info.st_mtime) if stat_info.st_mtime > cur_time - 86400:
all_size += stat_info.st_size
if stat_info.st_size // 1024 <= 5:
f.write('\n{}\n\t大小:{}KB, 上传时间:{}。'.format(path, stat_info.st_size // 1024, upload_time)) f.write('\n\n {}本日备份大小:{}GB.\n'.format(item, all_size // 1024 // 1024 // 1024)) with open(log_name, 'rb') as logfile:
sendmail.sendmail('204-备份监控', str(logfile.read(), encoding='GBK'))

  

sendmail.py

#!/usr/bin/env python
# Version = 3.5.2
# __auth__ = '无名小妖'
import smtplib
import email.mime.multipart
import email.mime.text def sendmail(sub, con):
msg = email.mime.multipart.MIMEMultipart()
msg['from'] = "wumingxiaoyao@life.org.com"
msg['to'] = "hello@python.good.com"
msg['subject'] = sub
content = con
txt = email.mime.text.MIMEText(content)
msg.attach(txt)
smtp = smtplib.SMTP()
smtp.connect('smtp.mail.haoyisheng.com', '25')
smtp.login('lijianwei@mail.haoyisheng.com', 'xxxxxx')
smtp.sendmail('lijianwei@mail.haoyisheng.com', 'lijianwei@mail.haoyisheng.com',str(msg))
smtp.quit()

  

python 监控windows磁盘空间和备份大小的更多相关文章

  1. zabbix监控windows磁盘空间

    监控windows磁盘空间,不是百分比. 当windows系统添加相应的windows模板后,会自动生成检测系统空间的监控项,在应用集(Filessystem)里面,Free disk space o ...

  2. [原创]SSIS-WMI 数据读取器任务:监控物理磁盘空间

    背景:       随着时间的推移,我们的DW会越来越大,也就意味着磁盘空间会越来越小,那如果哪一天留意不当,就会造成磁盘空间的不足而导致ETL失败,最终影响我们的系统的数据正确性和使用,更严重的有可 ...

  3. 【原创】SSIS-WMI 数据读取器任务:监控物理磁盘空间

    1.背景 随着时间的推移,我们的DW会越来越大,也就意味着磁盘空间会越来越小,那如果哪一天留意不当,就会造成磁盘空间的不足而导致ETL失败,最终影响我们的系统的数据正确性和使用,更严重的有可能导致物理 ...

  4. python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动

    用python监控您的window服务 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://world77.blog.51cto.co ...

  5. Python监控Windows下的文件变化

    windows下监控文件系统的变化.用python非常方便.实例代码例如以下,非常easy.也不多说了. import os import win32file import win32con ACTI ...

  6. Zabbix 监控Windows磁盘IO

    Windows下,打开cmd输入 typeperf -qx > c:\typeperf.txt #打开c:\typeperf.txt文件 windows性能计数器里面包含windows相关数值 ...

  7. Python:监控ASM剩余空间

    #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Jipu FANG' version = 0.1 import cx_Oracle ...

  8. cacti监控linux和windows磁盘IO

    cacti监控linux和windows磁盘IO 标签:cacti linux磁盘IO windows磁盘IO 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则 ...

  9. 第6章:使用Python监控Linux系统

    1.Python编写的监控工具 1).多功能系统资源统计工具dstat dstat是一个用Python编写的多功能系统资源统计工具,用来取代Linux下的vmstat,iostat,netstat和i ...

随机推荐

  1. CentOS跨网段访问

    centos6.2_64删除虚拟网卡 virbr0 卸载以下组件,然后重启系统 yum remove libvirt yum remove libvirt-python 来源:http://www.i ...

  2. ASP.NET网站发布时的那些坑

    开发工具:VS2010,MVC4.0,SQLSERVER2008 服务器:Windows server 2012,IIS8,SQLSERVER2012 一.发布后,每个页面第一次打开都很卡,50秒或更 ...

  3. Ubuntu12.04中Gvim无法固定到启动器的解决办法

    sudo vim /usr/share/applications/gvim.desktop 修改Categories键值如下: Categories=Application;Development;

  4. BZOJ2160 拉拉队排练【Manacher】

    Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训 ...

  5. MySQL中地理位置数据扩展geometry的使用心得

    最近学习了些MySQL geometry数据存储和计算,在这里记录下. 1. 环境 geometry推荐在5.6版本以上使用,尽管大部分功能在5.5已经可用,除了距离计算函数st_distance等新 ...

  6. travis-cli 使用

    1. 添加项目 登录 travis 选择对应项目即可 2. 添加持续集成文件 .travis.yml language: node_js node_js: - "node" bef ...

  7. 聊聊Oracle 11g的Snapshot Standby Database(下)

    3.Snapshot Standby行为研究 下面我们分析一下Snapshot Standby的工作性质和行为性质.我们在主库方向研究当前状态. --主库日志情况 SQL> select gro ...

  8. 从内存的角度观察 堆、栈、全局区(静态区)(static)、文字常量区、程序代码区

    之前写了一篇堆栈的,这里再补充下内存其他的区域 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一般由程 ...

  9. saiku迁移至mysql步骤

    saiku数据库的表和用户默认创建是在启动项目的时候,通过初始化 saiku-beans.xml 中的 h2database 这个bean执行org.saiku.service.Database类的i ...

  10. Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制

    Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...