Python

Linux Disk 용량 확인 스크립트 with SLACK

 케이군  2020. 2. 12. 22:47

디스크 용량을 확인 하여 리미트 설정에 따른 슬렉 알람 설정

 

#!/usr/bin/python
# -*- coding: utf-8 -*-
##########################################################################
# NAME          : disk_check.py
# LAST UPDATE   : 2017-11-16
# Verersion     : 0.1
##########################################################################
import os
import logging
import socket
import commands
import string
import sys
import fcntl
import struct
### Slack API
from slackclient import SlackClient
sc = SlackClient("xoxb-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
##########################################################################
# System info
host = socket.gethostname()
def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])
ip = get_ip_address('eth0')
##########################################################################
# Disk Check
def getMsg():
        raw_result = commands.getoutput("df -h")
        result = string.split(raw_result, "\n")

        for x in result[:] :
            r = x.split()
            msg = ''
            if r[0] == 'Filesystem':
                continue
            if eval(r[4][:-1]) >= 80 : #Limit check
              msg = msg + "```### Warning : Disk Space " + r[4] + " ###\n"
              msg = msg + host + "[" + ip + "]\n"
              msg = msg + "DISK : " + r[5] + " " + r[4] + " " + r[2] + "/" + r[1] + "```"
              sc.api_call(
                "chat.postMessage",
                channel = "#server_alert",
                text = msg
              )
##########################################################################
getMsg()
sys.exit();