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