Anasayfa » nasıl » Otomatik Bilgisayar İstatistikleri Nasıl Üretilir ve E-postayla Gönderilir

    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.

    [email protected]

    # 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.

    [email protected]

    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.