Merhabalar, Bu projede diskin %85 i dolduğu zamanı 1 saatte bir kontrol ederek bize email atarak uyarı veren ufak bir sistem geliştireceğiz. Derli Uygulama, Dosyalar ve Kaynak Kodları İçin : wwPHP Projeler Kullandığımız Kütüphaneler :
1 2 3 4 5 6 |
import smtplib; import psutil; import time; from email.mime.multipart import MIMEMultipart; from email.mime.text import MIMEText; from decimal import *; |
Mail Yollamak İçin Kullandığımız Fonksiyon :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
def emailyolla(gonderici, alici, baslik, kullaniciadi, sifre, smtpserver, smtpport, oran): me = gonderici; you = alici; msg = MIMEMultipart('alternative'); msg['Subject'] = baslik; msg['From'] = gonderici; msg['To'] = alici; text = ""; html = ''' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> Diskinizin ''' + oran + ''' doludur. </html> '''; part1 = MIMEText(text, 'plain'); part2 = MIMEText(html, 'html'); msg.attach(part1); msg.attach(part2); mail = smtplib.SMTP(smtpserver, smtpport); mail.ehlo(); mail.starttls(); mail.login(kullaniciadi, sifre); mail.sendmail(me, you, msg.as_string()); mail.quit(); |
Sistemimizin Gövdesi :
1 2 3 4 5 6 7 8 |
while 1: DiskKullanimi = psutil.disk_usage('C:/'); ToplamDiskAlani = Decimal(DiskKullanimi[0]); DoluDiskAlani = Decimal(DiskKullanimi[1]); KullanilanYuzde = round((DoluDiskAlani/ToplamDiskAlani*100), 2); if(KullanilanYuzde > 85): emailyolla(gonderici, alici, baslik, kullaniciadi, sifre, smtpserver, smtpport, KullanilanYuzde); time.sleep(3600); |
Tam Kaynak Kodlar :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# -*- coding: utf-8 -*- import smtplib; import psutil; import time; from email.mime.multipart import MIMEMultipart; from email.mime.text import MIMEText; from decimal import *; def emailyolla(gonderici, alici, baslik, kullaniciadi, sifre, smtpserver, smtpport, oran): me = gonderici; you = alici; msg = MIMEMultipart('alternative'); msg['Subject'] = baslik; msg['From'] = gonderici; msg['To'] = alici; text = ""; html = ''' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> Diskinizin ''' + oran + ''' doludur. </html> '''; part1 = MIMEText(text, 'plain'); part2 = MIMEText(html, 'html'); msg.attach(part1); msg.attach(part2); mail = smtplib.SMTP(smtpserver, smtpport); mail.ehlo(); mail.starttls(); mail.login(kullaniciadi, sifre); mail.sendmail(me, you, msg.as_string()); mail.quit(); while 1: DiskKullanimi = psutil.disk_usage('C:/'); #Disk bilgilerini çekiyoruz. ToplamDiskAlani = Decimal(DiskKullanimi[0]); #Toplam disk alanı DoluDiskAlani = Decimal(DiskKullanimi[1]); #Dolu disk alanı KullanilanYuzde = round((DoluDiskAlani/ToplamDiskAlani*100), 2); #Dolu disk alanının yüzdesi if(KullanilanYuzde > 85): emailyolla(gonderici, alici, baslik, kullaniciadi, sifre, smtpserver, smtpport, KullanilanYuzde); time.sleep(3600); #1 saat boyunca uyutuyoruz |