Homepage » hogyan kell » A számítógépes statisztikák automatikus létrehozása és e-mail küldése

    A számítógépes statisztikák automatikus létrehozása és e-mail küldése

    Fontos, hogy naponta ellenőrizze a különböző naplóadatokat és statisztikákat a kiszolgálón, de ez egyre unalmasabbá válik. Nem lenne jó, ha naponta egyszeri e-mailt kapnánk az összes kiemelt ponttal, így nem kell még a szerverre jutnod a problémák ellenőrzéséhez? Ez az útmutató megmutatja, hogyan konfigurálhatja az automatikus e-maileket Linux és Windows rendszeren.

    Ezt kifejezetten az Ubuntu és a Windows 8.1 programokra fogjuk kiterjeszteni, a Gmailet pedig e-mail szerverként használjuk, amelyből a leveleket küldjük. Ha másik Linux vagy Windows verziója van, vagy inkább más e-mail szolgáltatást szeretne használni, az itt található utasításoknak könnyen alkalmazkodniuk kell.

    Automatizált e-mailek Linux alatt

    Két különböző csomagot fogunk használni ennek eléréséhez: ssmtp és mailutils, így telepítsük mindkettőt a következő paranccsal:

    $ sudo apt-get telepít ssmtp mailutils

    A telepítés után néhány módosítást kell végrehajtania az SSMTP-konfigurációs fájlban:

    $ sudo vi /etc/ssmtp/ssmtp.conf

    Szerkessze a fájlt a módosításokkal (biztonságos, ha csak törölni szeretné az összes szöveget a fájlban, és másolja / illessze be ezeket a beállításokat, ha szeretné):

    # Ez a cím megkapja az e-maileket, ezért adja meg saját e-mail címét, ha szeretne fogadni.

    [email protected]

    # Adja meg az e-mail kiszolgálót (hagyja, ha a Gmailet használja).

    mailhub = smtp.gmail.com: 587

    # Az e-mail által küldött domain név.

    rewriteDomain = gmail.com

    # Az e-mail cím, amelyből e-maileknek kell lennie.

    [email protected]

    # SSL / TLS beállítások, amelyek szükségesek a Gmail és a legtöbb más levelezőszerver számára.

    UseTLS = Igen

    UseSTARTTLS = Igen

    # A Gmail-fiókhoz tartozó felhasználónév és jelszó.

    AUTHUSER = felhasználónév

    AuthPass = jelszó

    # Lehetővé teszi a fenti címtől eltérő cím megadását.

    FromLineOverride = yes

    Ha befejezte a fájl szerkesztését, módosítania kell az engedélyeket, mivel a Gmail jelszavát egyszerű szövegben tárolja.

    $ sudo chmod 640 /etc/ssmtp/ssmtp.conf

    $ sudo chown username.username /etc/ssmtp/ssmtp.conf

    Mindig biztonságosabb, ha a fájl tulajdonosát gyökerezik, de a szkriptünkben a sudo parancsot kell használnunk, és jelszót kérne, ezáltal legyőzve az egész folyamat automatizálásának célját..

    Ha megosztott kiszolgálót használ, és aggódik, hogy a jelszót egyszerű szövegben tárolja és gyökér által olvasható, akkor hozzon létre egy eldobható Gmail-fiókot, vagy használjon olyan e-mail szervert, amely nem igényel semmilyen hitelesítést..

    Ha meg szeretné győződni arról, hogy minden helyesen van beállítva, próbálkozzunk egy teszt e-mailben:

    $ echo "Tesztelés" | mail -s "Levelezésbeállítás tesztelése" felhasználóné[email protected]

    A „Tesztelés” az e-mail szövegében lesz, és a téma „A levelezés beállításának tesztelése” lesz. Ellenőrizze e-mail címét, hogy megbizonyosodjon róla, hogy megkapta.

    Script írása az e-mailekhez

    Most, hogy képesek vagyunk e-maileket küldeni a parancssorból, írjunk egy parancsfájlt, amely néhány alapvető információt küld a rendszerünkről.

    #! / Bin / bash

    # Ellenőrizze a merevlemez helyét

    echo "Merevlemez-terület:"> /home/geek/email.txt

    df -h >> /home/geek/email.txt

    # Sorolja fel a bejelentkezett felhasználókat

    echo "A felhasználók bejelentkezve:" >> /home/geek/email.txt

    ki >> /home/geek/email.txt

    # Sorolja fel a jelenleg futó folyamatokat

    echo "Futási folyamatok:" >> /home/geek/email.txt

    ps -e >> /home/geek/email.txt

    # Küldje el az e-mailt

    cat /home/geek/email.txt | mail -s "Napi kiszolgálóinformációk" felhasználóné[email protected]

    # Törölje a létrehozott fájlt

    rm /home/geek/email.txt

    Nyilvánvalóan sokkal mélyebbet kaphatsz a szkripteddel, és még egy kicsit szebbé is teheted a formázást, de ez az, amit a kimenetünk néz ki e-mailben:

    Most, hogy a szkript írásra és tesztelésre kerül, a cron segítségével automatikusan végre lehet hajtani minden nap ugyanabban az időben. Ebben a példában minden reggel 2:00 órakor küldjük el az e-mailt, így később is átmehetjük az adatokat.

    $ crontab -e

    2:00 AM e-mailek esetén:

    0 2 * * * / home/geek/script.sh

    Ha több segítségre van szüksége ebben a részben, írtunk egy teljes cikket a crontab fájlokról.

    Automatizált e-mailek a Windows rendszerben

    E-mailek küldése a parancssorban lehetséges a PowerShell-en keresztül, de megállapítottuk, hogy ennek a funkciónak a megvalósítása sokkal könnyebb a harmadik féltől származó alkalmazásokkal, különösen a Gmail használatakor. A SendEmail egy ingyenes program, amely a Windows számára elérhető, és amely lehetővé teszi a Windows Task Scheduler és a Gmail integrációját. A legfrissebb példány letöltéséhez kattintson a fenti linkre, és győződjön meg róla, hogy megragadja a TLS által támogatott verziót.

    Miután letöltötte a SendEmail-et, vegye ki a zip fájlt, és helyezze a tartalmat valahol, ameddig tárolhatja őket, amíg automatizált e-maileket szeretne küldeni. Ebben a példában csak a C: E-mailben tároljuk a programot

    Teszteljük ki a SendEmailet, hogy gyorsan érezzük, hogyan működik. Nyisson meg egy parancssorot a cmd beírásával a Start vagy Run (Ctrl + R) menübe.

    Nyissa meg a parancssorot, a navigációs parancs segítségével navigáljon a SendEmail fájlok tárolására.

    cd C: SendEmail

    Most megkísérelhet egy teszt e-mailt küldeni a következő paranccsal:

    sendEmail -f felhasználóné[email protected] -t felhasználóné[email protected] -s smtp.gmail.com:587 -xu felhasználónév -xp jelszó -u "E-mail tárgy tesztelése" -m "Ez egy teszt e-mail."

    Nyilvánvaló, hogy a "felhasználónév" és a "jelszó" helyettesítése a fiók hitelesítő adataival a parancs végrehajtása előtt.

    Íme, a fenti parancs ténylegesen:

    küldjön e-mailt végrehajtja a programot.

    -f - a címről

    -t - foglalkozni

    -s - SMTP-kiszolgáló

    -xu - fióknév

    -xp - fiók jelszava

    -u - email tárgy

    -m - e-mail szöveges szöveg

    Ellenőrizze a beérkezett üzenetek mappáját, hogy megbizonyosodjon arról, hogy megkapta a teszt e-mailt, majd tovább léphetünk egy olyan parancsfájl írására, amely szerver információkat küld.

    Script írása az e-mailekhez

    Ahhoz, hogy a lehető legtöbbet hozza ki a forgatókönyvből, a PowerShell-nek írjuk. Nyissa meg a Windows PowerShell ISE-t úgy, hogy beírja a powershell_ise.exe parancsot a Futtatás parancssorba (Ctrl + R).

    A PowerShell ISE ablakának jobb oldalán minden olyan parancsot felsorolhat, amelyet a PowerShell képes végrehajtani. Ez jó kezdetekkel szolgálhat az Ön által jelentett információtípusok létrehozásában. A parancsfájlban harmadik féltől származó programokat is hívhat az információk kiadására is (vagyis a SendEmail egy harmadik féltől származó alkalmazás, de a PowerShell és a cmd használhatja a szokásos feladatok elvégzésére).

    Példafájlunk esetében a C-meghajtó aktuális lemezhasználatát ellenőrizzük, megmutatjuk a jelenleg futó folyamatokat, és megmutatjuk az összes, a hálózaton keresztül megosztott fájlt.

    # Ellenőrizze a merevlemez helyét

    echo "C: meghajtóhasználat:"> C: SendEmail info.txt

    Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Select-Object Size, FreeSpace >> C: SendEmail info.txt

    # Sorolja fel a jelenleg futó folyamatokat

    echo "Futtatási folyamatok:" >> C: SendEmail info.txt

    get-process >> C: SendEmail info.txt

    # Sorolja fel a jelenleg megosztott fájlokat / mappákat

    echo "SMB megosztások:" >> C: SendEmail info.txt

    get-smbshare >> C: SendEmail info.txt

    # Küldje el az e-mailt

    C típus: SendEmail info.txt | C: SendEmail e-mail -f felhasználóné[email protected] -t felhasználóné[email protected] -s smtp.gmail.com:587 -xu felhasználónév -xp jelszó -u "Napi szerver információ"

    # Törölje a készített fájlt

    rm C: SendEmail info.txt

    Ebben a szkriptben különféle információk kerülnek kiadásra a C: SendEmail info.txt fájlra, majd a dokumentum szövegét e-mailben elküldi nekünk, mielőtt törlődik. Mentse el a szkriptet egy ps1 fájlkiterjesztéssel (PowerShell fájl).

    A szkript befejezése után futtasson egy gyors tesztet a Futtatás parancssorból, hogy megbizonyosodjon arról, hogy megfelelően működik-e.

    Csak használja a PowerShell parancs a -fájl argumentum és adja meg a parancsfájl elérési útját.

    powershell -file "c: E-mail küldése e-mail.ps1"

    Ellenőrizze a beérkezett üzeneteket, hogy megbizonyosodjon róla, hogy megkapta az e-mailt - ha nem, nézze át a szkript hibáit. Íme, hogy a példafájlból származó generált e-mail úgy néz ki:

    A formázással (például a szövegek közötti üres sorozatok visszhangzásával) játszhat, hogy a készülékben jobban jelenjen meg, vagy még jobb, de használhat egy harmadik féltől származó programot, amely a szükséges információkat egy olvashatóbb formátumban fogja kiadni, mint a Windows ( a szkriptelés ugyanaz lesz).

    Miután megtervezte a parancsfájlokat, a Windows Task Scheduler segítségével automatizálhatja. Nyissa meg a Windows Feladatütemezőt a Start menüben.

    A Feladatütemező megnyitása után válassza a Művelet> Alapvető feladat létrehozása lehetőséget.

    Nevezze meg ezt a feladatot, mint a „Napi e-mail parancsfájl”, és kattintson a Tovább gombra. A következő képernyőn válassza ki azt a gyakoriságot, amellyel az e-mail szkriptet futtatni szeretné, valószínűleg naponta. Ezután válassza ki azt az időt, amelyen a parancsfájlt futtatni szeretné, majd nyomja meg a következőt.

    Most már a varázsló „Művelet” részén kell lennie, válassza a „Program indítása” lehetőséget, és írja be ugyanazt a szöveget, amelyet korábban a Futtatás parancsra írtunk, hogy tesztelje a szkriptünket.

    Nyomja meg a következőt, majd kattintson az Igen gombra az ablakban:

    Az utolsó menüben kattintson a Befejezés gombra, és befejezte az automatikus e-mailek ütemezését.