Hogyan lehet automatikusan létrehozni és elküldeni a számítógépes statisztikákat?

Tartalomjegyzék:

Hogyan lehet automatikusan létrehozni és elküldeni a számítógépes statisztikákat?
Hogyan lehet automatikusan létrehozni és elküldeni a számítógépes statisztikákat?

Videó: Hogyan lehet automatikusan létrehozni és elküldeni a számítógépes statisztikákat?

Videó: Hogyan lehet automatikusan létrehozni és elküldeni a számítógépes statisztikákat?
Videó: How to protect your laptop when you travel. A backpack alternative review. - YouTube 2024, Lehet
Anonim
Fontos, hogy naponta ellenőrizze a különböző naplóadatokat és statisztikákat a kiszolgálón, de egyre fárasztóbbá válik. Nem lenne jó fogadni egyetlen e-mailt a napi összes kiemeléssel kapcsolatban, így nem kell a kiszolgálón megkeresnie a problémákat? Ez az útmutató megmutatja, hogyan állíthatja be az automatizált e-maileket Linuxon és Windowson.
Fontos, hogy naponta ellenőrizze a különböző naplóadatokat és statisztikákat a kiszolgálón, de egyre fárasztóbbá válik. Nem lenne jó fogadni egyetlen e-mailt a napi összes kiemeléssel kapcsolatban, így nem kell a kiszolgálón megkeresnie a problémákat? Ez az útmutató megmutatja, hogyan állíthatja be az automatizált e-maileket Linuxon és Windowson.

Speciálisan ezt az Ubuntu és a Windows 8.1 verziót fogjuk lefedni, mivel a Gmailt e-mail kiszolgálóként használják, hogy a leveleket elküldjük. Ha van egy másik Linux vagy Windows verziója, vagy inkább egy másik 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 ehhez: ssmtp és mailutils, ezért telepítsd mindkettőt a következő paranccsal:

$ sudo apt-get install ssmtp mailutils

Miután telepítve van, módosítani kell az SSMTP konfigurációs fájlt:

$ sudo vi /etc/ssmtp/ssmtp.conf

Szerkesztheti a fájlt ezekkel a változtatásokkal (biztonságosan törölheti a fájlban lévő összes szöveget, és ha szeretné, másolja / illessze be ezeket a beállításokat):

# This address will receive the emails, so enter your own email here if you want to receive them.

[email protected]

# Specify the email server here (leave as is if you’re using Gmail).

mailhub=smtp.gmail.com:587

# The domain name that the mail will come from.

rewriteDomain=gmail.com

# The email address that these emails should be from.

[email protected]

# SSL/TLS settings, required for Gmail and most other mail servers.

UseTLS=Yes

UseSTARTTLS=Yes

# The username and password to your Gmail account.

AuthUser=username

AuthPass=password

# Allow the ability to specify a from address different than the one above.

FromLineOverride=yes

Ha elkészült a fájl szerkesztése, módosítani szeretné az engedélyeket, mivel Gmail-jelszavát szöveges formában tárolja.

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

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

Mindig biztonságosabb a fájl tulajdonosának gyökeresedése, de a szkriptben a sudo parancsot kell használnunk, és felszólítaná nekünk egy jelszót, ezáltal lefutva az egész folyamat automatizálását.

Ha megosztott kiszolgálót használ, és aggódik amiatt, hogy a jelszavát szöveges formában tárolja és gyökéren olvashatja, hozzon létre egy eldobható Gmail-fiókot, vagy olyan e-mail szervert használjon, amely nem igényel semmilyen típusú hitelesítést.

Annak érdekében, hogy minden rendben legyen beállítva, próbáljuk meg a tesztüzeneteket:

$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]

A "tesztelés" az e-mailek testében jelenik meg, és a téma "A postai beállítás ellenőrzése" lesz. Ellenőrizze az e-mail címét, hogy megbizonyosodjon arról, hogy megkapta.

Szkript írása az e-mailekhez

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

#!/bin/bash

# Check hard drive space

echo 'Hard drive space:' > /home/geek/email.txt

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

# List the users that are logged in

echo 'Users currently logged in:' >> /home/geek/email.txt

who >> /home/geek/email.txt

# List currently running processes

echo 'Running processes:' >> /home/geek/email.txt

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

# Send the email

cat /home/geek/email.txt | mail -s 'Daily server information' [email protected]

# Delete the file we created

rm /home/geek/email.txt

Nyilvánvaló, hogy sokkal részletesebben beszerezheti a forgatókönyvet, és még a formázást is kicsit szebbé teheti, de ez az, amit a kimenet az e-mailünkben néz ki:

Most, hogy a szkriptet megírják és tesztelik, használhatjuk a cron-ot, hogy automatikusan hajtsa végre ugyanabban az időben. Ebben a példában beállítjuk az e-mailt, amelyet minden reggel 2:00 órakor küldünk, így később az adatokon keresztül továbbhaladhatunk.
Most, hogy a szkriptet megírják és tesztelik, használhatjuk a cron-ot, hogy automatikusan hajtsa végre ugyanabban az időben. Ebben a példában beállítjuk az e-mailt, amelyet minden reggel 2:00 órakor küldünk, így később az adatokon keresztül továbbhaladhatunk.

$ crontab -e

2:00 AM e-mailekhez adjon hozzá:

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

Teljes cikket írtunk a crontab fájlokról, ha további segítségre van szükségünk ezzel a részvel kapcsolatban.

Automata e-mailek a Windows rendszerben

Az e-mailek küldése a parancssorban a PowerShell segítségével lehetséges, de azt tapasztaltuk, hogy a funkciók végrehajtása sokkal könnyebb a harmadik féltől származó alkalmazásoknál, különösen a Gmail használatakor. A SendEmail egy ingyenes Windows program, amely a Windows Task Schedulerrel és a Gmail-szel való integrációt megkönnyíti. A fenti linkre kattintva letöltheti a legújabb példányt, és győződjön meg róla, hogy megragadja a TLS által támogatott verziót.

Miután letöltötte a SendEmail programot, húzza ki a zip fájlt, és tegye a tartalmat valahová, amíg tárolhatja őket, amíg automatizált e-maileket kíván küldeni. Ebben a példában a programot a C: SendEmail programban tároljuk

Próbáljuk kipróbálni a SendEmail-t, hogy gyorsan érzékeljük, hogyan működik. Nyissa meg a parancssorból a cmd parancsot a Start vagy a Futtatás (Ctrl + R) menübe.

A parancssor megnyitásakor használja a Change Directory parancsot a SendEmail fájlok tárolására.
A parancssor megnyitásakor használja a Change Directory parancsot a SendEmail fájlok tárolására.

cd C:SendEmail

Most megpróbálhatjuk elküldeni egy tesztüzenetet a következő paranccsal:

sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u 'Test email subject' -m 'This is a test email.'

Nyilvánvalóan a parancs végrehajtása előtt cserélje ki a "felhasználónevét" és a "jelszavát" a fiók hitelesítő adataival.

Íme, amit a fenti parancs ténylegesen tesz:

sendEmail

végrehajtja a programot.

-f

- a címről

-t

- címzés

-s

- SMTP szerver

-xu

- fiók felhasználónevét

-xp

- fiók jelszava

-u

- email tárgy

-m

- e-mail szövege

Ellenőrizze a beérkező leveleket, hogy megbizonyosodjon arról, hogy megkapta a tesztüzeneteket, majd folytathatjuk a parancsfájl írását, amely elküldi a kiszolgáló adatait.

Szkript írása az e-mailekhez

Annak érdekében, hogy a lehető legtöbbet hozhassuk ki a forgatókönyvünkből, a PowerShellre írjuk. Nyissa meg a Windows PowerShell ISE-t, ha a powershell_ise.exe parancsot egy parancssorba (Ctrl + R) írja be.

A PowerShell ISE ablak jobb oldalán felsorolhat minden olyan parancsot, amelyet a PowerShell képes végrehajtani. Ennek jó kiindulópontot kell kovácsolnia a jelentett információk típusaihoz. A szkriptben harmadik féltől származó programokat is felhívhat az információk kiadására (azaz a SendEmail egy harmadik féltől származó alkalmazás, de a PowerShell és a cmd is használhatják olyan feladatok elvégzésére, amelyeket általában nem tudnak).
A PowerShell ISE ablak jobb oldalán felsorolhat minden olyan parancsot, amelyet a PowerShell képes végrehajtani. Ennek jó kiindulópontot kell kovácsolnia a jelentett információk típusaihoz. A szkriptben harmadik féltől származó programokat is felhívhat az információk kiadására (azaz a SendEmail egy harmadik féltől származó alkalmazás, de a PowerShell és a cmd is használhatják olyan feladatok elvégzésére, amelyeket általában nem tudnak).
A példaszriptünknél megnézzük a C meghajtó aktuális lemezhasználatát, megmutatjuk az éppen futó folyamatokat, és megmutatjuk azokat a fájlokat, amelyek jelenleg a hálózaton keresztül vannak megosztva.
A példaszriptünknél megnézzük a C meghajtó aktuális lemezhasználatát, megmutatjuk az éppen futó folyamatokat, és megmutatjuk azokat a fájlokat, amelyek jelenleg a hálózaton keresztül vannak megosztva.

# Check hard drive space

echo 'C: Drive Usage:' > C:SendEmailinfo.txt

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

# List currently running processes

echo 'Running processes:' >> C:SendEmailinfo.txt

get-process >> C:SendEmailinfo.txt

# List the files/folders currently being shared

echo 'SMB shares:' >> C:SendEmailinfo.txt

get-smbshare >> C:SendEmailinfo.txt

# Send the email

type C:SendEmailinfo.txt | C:SendEmailsendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u 'Daily server info'

# Delete the file we made

rm C:SendEmailinfo.txt

Ebben a szkriptben különböző információkat küldenek a C: SendEmail info.txt fájlba, majd a dokumentum szövegét e-mailben elküldjük nekünk, mielőtt törölni fog. Mentse el a szkriptet egy PS1 kiterjesztéssel (PowerShell fájl).

A szkript befejezése után futtasson egy gyors tesztet a Run parancsból, hogy megbizonyosodjon róla, hogy megfelelően működik.

Csak használja a

powershell

parancs a

-file

argumentumot, és adja meg a parancsfájl elérési útját.

powershell -file 'c:SendEmaildaily-email.ps1'

Ellenőrizze a postaládáját, hogy megbizonyosodjon róla, hogy megkapta az e-mailt - ha nem, nézze át a szkriptet szintaktikai hibákra. Íme, hogy a létrehozott e-mail a mi példaszriptünkről néz ki:
Ellenőrizze a postaládáját, hogy megbizonyosodjon róla, hogy megkapta az e-mailt - ha nem, nézze át a szkriptet szintaktikai hibákra. Íme, hogy a létrehozott e-mail a mi példaszriptünkről néz ki:
A formázással játszhatsz (például a szöveget tartalmazó üres sorokat visszhangozva), hogy megjelenjen a készülékénél jobb, vagy még jobb, ha olyan harmadik féltől származó programot használsz, amely a szükséges információkat könnyebben olvasható formában adja ki, mint a Windows ( a szkriptfolyamat továbbra is ugyanaz lesz).
A formázással játszhatsz (például a szöveget tartalmazó üres sorokat visszhangozva), hogy megjelenjen a készülékénél jobb, vagy még jobb, ha olyan harmadik féltől származó programot használsz, amely a szükséges információkat könnyebben olvasható formában adja ki, mint a Windows ( a szkriptfolyamat továbbra is ugyanaz lesz).

Miután kidolgozta a parancsfájlban lévő hibákat, a Windows Task Scheduler segítségével automatizálhatja azt. Nyissa meg a Windows Task Scheduler programot a Start menüben.

A Feladatütemező megnyitásakor válassza a Művelet> Alapvető feladat létrehozása lehetőséget.
A Feladatütemező megnyitásakor válassza a Művelet> Alapvető feladat létrehozása lehetőséget.
Nevezze el ezt a feladatot valami olyannak, mint a "Daily email script", majd kattintson a következőre. A következő képernyőn válassza ki azt a gyakoriságot, amellyel az e-mailes szkriptet el kívánja futtatni, valószínűleg naponta. Ezután válassza ki azt az időt, ameddig a szkript fut, és nyomja meg a következőt.
Nevezze el ezt a feladatot valami olyannak, mint a "Daily email script", majd kattintson a következőre. A következő képernyőn válassza ki azt a gyakoriságot, amellyel az e-mailes szkriptet el kívánja futtatni, valószínűleg naponta. Ezután válassza ki azt az időt, ameddig a szkript fut, és nyomja meg a következőt.

Most a varázsló "Akció" részének kell lennie, válassza a "Program indítása" pontot, és írja be ugyanazt a szöveget, amelyet előzőleg a Futtatás parancsra írtunk be a parancsfájl teszteléséhez.

Ajánlott: