Otomatik Bilgisayar İstatistikleri Nasıl Üretilir ve E-postayla Gönderilir
Sunucunuzdaki çeşitli günlük verilerini ve istatistiklerini her gün kontrol etmek önemlidir, ancak sıkıcı olmaya başlar. Her gün tüm olayları içeren tek bir e-posta almak hoş olmaz mıydı, dolayısıyla sorunları kontrol etmek için sunucuya girmenize gerek kalmaz mı? Bu kılavuz size Linux ve Windows'ta otomatik e-postaları nasıl yapılandıracağınızı gösterecektir..
Bunu özellikle Ubuntu ve Windows 8.1 için koruyacağız, Gmail postaların gönderildiği e-posta sunucusu olarak kullanılıyor. Başka bir Linux veya Windows sürümünüz varsa veya başka bir e-posta servisini kullanmayı tercih ediyorsanız, buradaki talimatlar kolayca uyarlanabilmelidir..
Linux'ta Otomatik E-postalar
Bunu gerçekleştirmek için iki farklı paket kullanacağız, ssmtp ve mailutils, bu yüzden ikisini de aşağıdaki komutu kullanarak kurun:
$ sudo apt-get install ssmtp mailutils
Bunlar yüklendikten sonra, SSMTP yapılandırma dosyasında bazı değişiklikler yapmamız gerekir:
$ sudo vi /etc/ssmtp/ssmtp.conf
Bu değişikliklerle dosyayı düzenleyin (yalnızca dosyadaki tüm metni silmek ve isterseniz bu ayarları kopyalayıp yapıştırmak güvenlidir):
# Bu adres e-postaları alacak, bu yüzden almak istiyorsanız kendi e-posta adresinizi buraya girin.
# E-posta sunucusunu burada belirtin (Gmail kullanıyorsanız olduğu gibi bırakın).
mailhub = smtp.gmail.com: 587
# Postanın geleceği etki alanı adı.
rewriteDomain = gmail.com
# Bu e-postaların gönderileceği e-posta adresi.
Gmail ve diğer birçok posta sunucusu için gereken # SSL / TLS ayarları.
UseTLS = Evet
UseSTARTTLS = Evet
# Gmail hesabınızın kullanıcı adı ve şifresi.
Authuser = adı
AuthPass = şifre
# Yukarıdakilerden farklı bir adres belirtme yeteneği ver.
FromLineOverride = yes
Dosyayı düzenlemeyi tamamladığınızda, Gmail şifreniz düz metin olarak saklandığından izinleri değiştirmek isteyeceksiniz.
$ sudo chmod 640 / etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Kökleri dosyanın sahibi yapmak her zaman daha güvenlidir, ancak daha sonra komut dosyamızda sudo komutunu kullanmak zorunda kalacağız ve bize bir parola soracak, böylece tüm bu işlemi otomatik hale getirme amacını ortadan kaldıracaktır..
Paylaşılan bir sunucu kullanıyorsanız ve şifrenizin düz metin olarak saklanması ve root tarafından okunması konusunda endişe duyuyorsanız, bir atılabilir Gmail hesabı oluşturun veya ilk başta herhangi bir kimlik doğrulaması gerektirmeyen bir e-posta sunucusu kullanın..
Her şeyin doğru yapılandırıldığından emin olmak için bir test e-postası deneyelim:
$ echo "Test Etme" | mail -s "Posta kurulum testi" [email protected]
“Test etme” e-postanın gövdesinde olacak ve konu “Posta kurulumunu test etme” olacaktır. Aldığınızdan emin olmak için e-postanızı kontrol edin.
E-postalar için bir Komut Dosyası Yazma
Artık komut satırından e-posta gönderebildiğimize göre, bize sistemimiz hakkında bazı temel bilgileri gönderecek bir komut dosyası yazalım..
#! / Bin / bash
# Sabit sürücü alanını kontrol et
echo "Sabit disk alanı:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# Giriş yapan kullanıcıları listele
echo "Şu anda giriş yapan kullanıcılar:" >> /home/geek/email.txt
who >> /home/geek/email.txt
# Şu anda çalışan işlemleri listele
echo "Çalışan işlemler:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# E-postayı gönder
cat /home/geek/email.txt | mail -s "Günlük sunucu bilgisi" [email protected]
# Oluşturduğumuz dosyayı sil
rm /home/geek/email.txt
Açıkçası, betiğinizle daha derinlemesine çalışabilir ve hatta biçimlendirmeyi biraz daha güzel hale getirebilirsiniz, ancak bu, e-postamızdaki çıktının nasıl göründüğüdür:
Şimdi senaryo yazıldı ve test edildi, onu her gün aynı saatte otomatik olarak çalıştırmak için cron kullanabiliriz. Bu örnekte, e-postaları her sabah saat 2: 00'de gönderilecek şekilde yapılandıracağız..
$ crontab -e
2:00 AM e-postaları için şunu ekleyin:
0 2 * * * /home/geek/script.sh
Bu kısımla ilgili daha fazla yardıma ihtiyacınız olursa, crontab dosyalarının tamamını yazdık..
Windows'ta Otomatik E-postalar
PowerShell ile komut satırında e-posta göndermek mümkündür, ancak üçüncü taraf uygulamalarda, özellikle Gmail kullanırken bu işlevselliğin uygulanmasının çok daha kolay olduğunu bulduk. SendEmail, Windows Görev Zamanlayıcı ve Gmail’le entegrasyonu bir esinti haline getiren ücretsiz bir programdır. En son kopyayı indirmek için yukarıdaki bağlantıyı tıklayın ve TLS destekli sürümü aldığınızdan emin olun..
SendEmail'i indirdikten sonra, zip dosyasını çıkartın ve içeriği otomatik e-postalar göndermeyi planladığınız süre boyunca saklayabileceğiniz bir yere koyun. Bu örnekte, programı sadece C: \ SendEmail'de depolayacağız.
SendEmail'i nasıl çalıştığına dair hızlı bir fikir edinmek için deneyelim. Başlat veya Çalıştır (Ctrl + R) menüsüne cmd yazarak bir komut istemi açın..
Komut istemi açık durumdayken, SendEmail dosyalarını sakladığınız yere gitmek için dizin değiştir komutunu kullanın..
cd C: \ SendEmail
Şimdi aşağıdaki komutu kullanarak bir test e-postası göndermeyi deneyebiliriz:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu kullanıcı adı -xp şifre -u "E-posta konusunu test et" -m "Bu bir test e-postasıdır."
Açıkçası, komutu çalıştırmadan önce “username” ve “password” ifadelerini hesap bilgilerinizle değiştirin.
İşte yukarıdaki komutun gerçekte yaptığı:
eposta gönder
programı yürütür.
-f
- adresten
-t
- adrese
-s
- SMTP sunucusu
-xu
- Hesap kullanıcı adı
-xp
- hesap şifresi
-u
- E-posta konu
-m
- e-posta gövdesi metni
Test e-postasını aldığınızdan emin olmak için gelen kutunuzu kontrol edin; ardından bize sunucu bilgileri gönderecek bir komut dosyası yazmaya devam edebiliriz..
E-postalar için bir Komut Dosyası Yazma
Senaryomuzdan en iyi şekilde yararlanmak için, bunu PowerShell için yazacağız. Run komut istemine powershell_ise.exe yazarak Windows PowerShell ISE'yi açın (Ctrl + R).
PowerShell ISE penceresinin sağ tarafında, PowerShell'in yürütebildiği tüm komutları listeleyebilirsiniz. Bu size bildirmeniz gereken bilgi türlerini üretme konusunda iyi bir başlangıç yapmalıdır. Komut dosyanızda, aynı zamanda bilgileri vermek için üçüncü taraf programlarını da arayabilirsiniz (örn. SendEmail üçüncü taraf bir uygulamadır, ancak PowerShell ve cmd bunu normalde yapamadıkları işleri yapmak için kullanabilir).
Örnek komut dosyamız için, C sürücüsünün geçerli disk kullanımını kontrol edeceğiz, şu anda çalışan işlemleri göstereceğiz ve şu anda ağ üzerinden paylaşılmakta olan tüm dosyaları göstereceğiz..
# Sabit sürücü alanını kontrol et
echo "C: Sürücü Kullanımı:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Nesne Seçme Boyutu, FreeSpace >> C: \ SendEmail \ info.txt
# Şu anda çalışan işlemleri listele
echo "Çalışan işlemler:" >> C: \ SendEmail \ info.txt
get-process >> C: \ SendEmail \ info.txt
# Halen paylaşılmakta olan dosya / klasörleri listele
echo "SMB paylaşımları:" >> C: \ SendEmail \ info.txt
get-smbshare >> C: \ SendEmail \ info.txt
# E-postayı gönder
C: \ SendEmail \ info.txt yazın. C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu kullanıcı adı -xp şifre -u "Günlük sunucu bilgisi"
# Yaptığımız dosyayı sil
rm C: \ SendEmail \ info.txt
Bu komut dosyasında, çeşitli bilgiler C: \ SendEmail \ info.txt dosyasına gönderilir ve ardından bu belgedeki metin silinmeden önce bize e-postayla gönderilir. Komut dosyanızı ps1 dosya uzantısıyla kaydedin (PowerShell dosyası).
Komut dosyanız bittiğinde, düzgün çalıştığından emin olmak için bir Çalıştır isteminden hızlı bir test yapın..
Sadece kullan güç kalkanı
a ile komut vermek -dosya
değişken ve betiğinizin yolunu belirtin.
powershell -dosya "c: \ SendEmail \ daily-email.ps1"
E-postayı aldığınızdan emin olmak için gelen kutunuzu kontrol edin; yoksa, söz dizimi hataları için komut dosyanızı inceleyin. Örnek senaryomuzdan oluşturulan e-posta şöyle:
Cihazınızda daha iyi görüntülenmesini sağlamak için biçimlendirme ile (metinler arasındaki boş satırları yankılamak gibi) oynatabilirsiniz veya gerekli bilgileri Windows'dan daha okunaklı bir biçimde çıkaran üçüncü taraf bir program kullanabilirsiniz ( komut dosyası işlemi hala aynı olacaktır).
Komut dosyanızdaki sapkınlıkları çözdükten sonra, otomatikleştirmek için Windows Görev Zamanlayıcı'yı kullanabilirsiniz. Başlat menüsünden Windows Görev Zamanlayıcı'yı açın.
Görev Zamanlayıcı açıkken, Eylem> Temel Görev Oluştur'u seçin..
Bu göreve “Günlük e-posta betiği” gibi bir ad verin ve ileri 'yi tıklayın. Bir sonraki ekranda, muhtemelen günlük olarak e-posta komut dosyanızın çalışmasını istediğiniz sıklığı seçin. Ardından, komut dosyasının çalışmasını istediğiniz zamanı seçin ve bir sonraki adı seçin..
Şimdi sihirbazın “Eylem” kısmına girmelisin, “Bir Program Başlat” ı seç ve senaryomuzu test etmek için daha önce Çalıştır istemine girdiğimiz metni gir.
Bir sonraki ve ardından bu pencerede Evet tuşuna basın:
Son menüde Son'u tıkladığınızda otomatik e-postalarınızı planlamayı bitirdiniz.