Tietokoneen tilastojen automaattinen luominen ja lähettäminen
On tärkeää tarkistaa palvelimellasi erilaisia lokitietoja ja tilastoja joka päivä, mutta se kasvaa tylsäksi. Eikö olisi mukavaa saada yksi sähköpostiviesti, jossa on kaikki kohokohdat joka päivä, joten sinun ei tarvitse edes palata palvelimeen tarkistamaan ongelmia? Tämä opas näyttää, miten automaattiset sähköpostit voidaan määrittää Linuxissa ja Windowsissa.
Se kattaa nimenomaan tämän Ubuntu- ja Windows 8.1 -käyttöjärjestelmien kanssa, kun Gmailia käytetään sähköpostipalvelimena, josta posti lähetetään. Jos sinulla on toinen Linux- tai Windows-versio tai haluat käyttää jotakin muuta sähköpostipalvelua, tässä olevien ohjeiden tulisi olla helposti mukautettavissa.
Automaattiset sähköpostit Linuxissa
Tätä varten käytämme kahta eri pakettia, ssmtp ja mailutils, joten asenna molemmat seuraavalla komennolla:
$ sudo apt-get asenna ssmtp-postilähetykset
Kun ne on asennettu, SSMTP-määritystiedostoon on tehtävä joitakin muutoksia:
$ sudo vi /etc/ssmtp/ssmtp.conf
Muokkaa tiedostoa näillä muutoksilla (se on turvallista vain poistaa kaikki tiedostot ja kopioida / liittää nämä asetukset, jos haluat):
# Tämä osoite vastaanottaa sähköpostit, joten kirjoita oma sähköpostiosoitteesi, jos haluat vastaanottaa ne.
# Määritä sähköpostipalvelin täällä (jätä sellaisenaan, jos käytät Gmailia).
mailhub = smtp.gmail.com: 587
# Verkkotunnus, josta sähköposti tulee.
rewriteDomain = gmail.com
# Sähköpostiosoite, jonka nämä sähköpostiviestit pitäisi lähettää.
# SSL / TLS-asetukset, joita tarvitaan Gmailiin ja useimpiin muihin sähköpostipalvelimiin.
UseTLS = Kyllä
UseSTARTTLS = Kyllä
# Gmail-tilin käyttäjätunnus ja salasana.
AUTHUSER = käyttäjätunnus
AuthPass = salasana
# Salli kyky määrittää osoitteesta eri kuin edellä.
FromLineOverride = yes
Kun olet lopettanut tiedoston muokkaamisen, haluat muuttaa käyttöoikeuksia, koska Gmail-salasanasi on tallennettu selkeästi.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
On aina turvallisempaa tehdä tiedoston omistajan nimi, mutta sitten meidän olisi käytettävä sudo-komentoa käsikirjoituksessamme, ja se kehottaa meitä antamaan salasanan, jolloin kukin tämän prosessin automatisoinnin tarkoitus.
Jos käytät jaettua palvelinta ja olet huolissasi siitä, että salasanasi on tallennettu tavalliseen tekstiin ja luettavissa rootilla, luo heikko Gmail-tili tai käytä sähköpostipalvelinta, joka ei edellytä minkäänlaista todentamista..
Varmista, että kaikki on määritetty oikein, kokeile testisähköpostiosoitetta:
$ echo "Testaus" | mail -s "Sähköpostin asetukset" käyttäjä[email protected]
"Testaus" on sähköpostin rungossa ja aihe on "Postin asetusten testaus". Tarkista sähköpostisi ja varmista, että olet vastaanottanut sen.
Kirjoitetaan sähköpostiviestien komentosarja
Nyt kun pystymme lähettämään sähköpostiviestejä komentoriviltä, kirjoita komentosarja, joka lähettää meille perustiedot järjestelmästämme.
#! / Bin / bash
# Tarkista kiintolevytila
echo "Kiintolevytila:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# Luettelo käyttäjistä, jotka ovat kirjautuneet sisään
echo "Käyttäjät ovat kirjautuneet sisään:" >> /home/geek/email.txt
kuka >> /home/geek/email.txt
# Listaa käynnissä olevat prosessit
echo "Juoksuprosessit:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Lähetä sähköposti
cat /home/geek/email.txt | mail -s "Päivittäiset palvelintiedot" käyttäjä[email protected]
# Poista luomasi tiedosto
rm /home/geek/email.txt
Ilmeisesti voit saada paljon syvällisemmän käsikirjoituksesi kanssa ja jopa muotoilla hieman mukavampaa, mutta tämä on se, mitä tulos näyttää sähköpostissamme:
Nyt kun skripti on kirjoitettu ja testattu, voimme käyttää cronia suorittamaan sen automaattisesti joka päivä samaan aikaan. Tässä esimerkissä määritämme sähköpostin lähetettäväksi joka aamu kello 2:00, jotta voimme käydä läpi tiedot myöhemmin samana päivänä.
$ crontab -e
Lisää 2:00 AM-sähköpostiviesteihin:
0 2 * * * / home/geek/script.sh
Olemme kirjoittaneet koko artikkelin crontab-tiedostoista, jos tarvitset lisää apua tässä osassa.
Automaattiset sähköpostit Windowsissa
Sähköpostiviestien lähettäminen komentoriville on mahdollista PowerShellin kautta, mutta olemme havainneet, että tämän toiminnon toteuttaminen on paljon helpompaa kolmansien osapuolten sovelluksilla, varsinkin kun käytät Gmailia. SendEmail on ilmainen Windows-ohjelma, joka tekee integroinnin Windows Task Scheduleriin ja Gmailiin helppoa. Lataa uusin kopio napsauttamalla yllä olevaa linkkiä ja varmista, että otat TLS-tuetun version.
Kun olet ladannut SendEmailin, poista zip-tiedosto ja aseta sisältö johonkin, johon voit tallentaa ne niin kauan kuin aiot lähettää automaattisia sähköpostiviestejä. Tässä esimerkissä aiomme tallentaa ohjelman vain C: SendEmailiin
Testataan SendEmailia saadaksesi nopean tuntuman siitä, miten se toimii. Avaa komentokehote kirjoittamalla cmd Käynnistä tai Suorita (Ctrl + R) -valikkoon.
Kun komentorivi on auki, käytä muutoshakemistokomentoa navigoidaksesi kohtaan, johon tallensit SendEmail-tiedostot.
cd C: Lähetä sähköposti
Nyt voimme yrittää lähettää testiviestin, jossa on seuraava komento:
sendEmail -f käyttäjä[email protected] [email protected] -s smtp.gmail.com:587 -xu käyttäjätunnus -xp salasana -u "Testaa sähköpostin aihe" -m "Tämä on testiviesti."
Ilmeisesti korvaa “käyttäjätunnus” ja “salasana” tilisi käyttöoikeustiedoilla ennen komennon suorittamista.
Tässä on mitä komento yllä:
lähettää sähköpostia
suorittaa ohjelman.
-f
- osoitteesta
-T
- osoitteeseen
-s
- SMTP-palvelin
-xu
- tilin käyttäjätunnus
-xp
- tilin salasana
-U
- sähköpostin aihe
-m
- kirjoita tekstiviesti
Tarkista postilaatikkosi ja varmista, että olet saanut testisähköpostin, ja sitten voimme siirtyä kirjoittamaan komentosarjan, joka lähettää meille palvelintietoja.
Kirjoitetaan sähköpostiviestien komentosarja
Jotta saat kaiken irti skriptiämme, kirjoitamme sen PowerShellille. Avaa Windows PowerShell ISE kirjoittamalla powershell_ise.exe Suorita-kehotteeseen (Ctrl + R).
PowerShell ISE -ikkunan oikealla puolella voit luetella jokaisen PowerShellin suorittaman komennon. Tämän pitäisi antaa sinulle hyvä alku siitä, että luotat tarvitsemasi tiedot. Skriptissasi voit myös soittaa kolmansien osapuolten ohjelmiin myös tietojen lähettämiseen (ts. SendEmail on kolmannen osapuolen sovellus, mutta PowerShell ja cmd voivat käyttää sitä tavallisten tehtäviensä suorittamiseen).
Esimerkkikomentomme tarkistamme C-aseman nykyisen levyn käytön, näyttää parhaillaan käynnissä olevat prosessit ja näyttävät kaikki tiedostot, jotka ovat parhaillaan jaettavissa verkossa..
# Tarkista kiintolevytila
echo "C: Drive Usage:"> C: SendEmail info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Select-Object Size, FreeSpace >> C: SendEmail info.txt
# Listaa käynnissä olevat prosessit
echo "Juoksuprosessit:" >> C: SendEmail info.txt
get-process >> C: SendEmail info.txt
# Luettele tällä hetkellä jaettavat tiedostot / kansiot
echo "SMB-osakkeet:" >> C: SendEmail info.txt
get-smbshare >> C: SendEmail info.txt
# Lähetä sähköposti
tyyppi C: SendEmail info.txt | C: Lähetä sähköposti Sähköposti -f käyttäjä[email protected] [email protected] -s smtp.gmail.com:587 -xu käyttäjätunnus -xp salasana -u "Päivittäinen palvelimen tiedot"
# Poista tekemäsi tiedosto
rm C: SendEmail info.txt
Tässä komentosarjassa C: lle lähetetään erilaisia tietoja: SendEmail info.txt, ja sitten kyseisen asiakirjan teksti lähetetään meille ennen kuin se poistetaan. Tallenna skripti ps1-tiedostotunnisteella (PowerShell-tiedosto).
Suorita skriptisi loppuun, suorita nopea testi Suorita-kehotteesta varmistaaksesi, että se toimii oikein.
Käytä vain PowerShell
komennolla a -tiedosto
argumentti ja määritä skriptisi polku.
powershell -file "c: Lähetä sähköpostiviesti-email.ps1"
Tarkista postilaatikkosi ja varmista, että olet saanut sähköpostiviestin - jos ei, etsi komentosarjaasi syntaksivirheitä varten. Seuraavassa on esimerkkikomentomme luoma sähköposti:
Voit toistaa muotoilun avulla (kuten toistaa tyhjiä rivejä tekstin välissä), jotta se näyttää mukavampaa laitteessasi tai vielä parempaa, mutta voit käyttää kolmannen osapuolen ohjelmaa, joka välittää tarvittavan tiedon luettavammassa muodossa kuin Windows ( komentosarjaprosessi on edelleen sama.
Kun olet kehittänyt skriptit, voit käyttää Windows Task Scheduleria automatisoimalla sen. Avaa Windowsin tehtävän ajoitus Käynnistä-valikon kautta.
Kun Task Scheduler on avattu, valitse Action> Create Basic Task.
Nimeä tämä tehtävä “Daily email script”: ksi ja napsauta seuraavaksi. Valitse seuraavalla näytöllä taajuus, jolla haluat, että sähköpostisi skripti suoritetaan, todennäköisesti päivittäin. Valitse sitten aika, jonka haluat skriptin suorittamisen, ja paina seuraavaksi.
Nyt sinun pitäisi olla ohjatun toiminnon osassa, valitse ”Aloita ohjelma” ja kirjoita sama teksti, jonka kirjoitimme Suorita-kehotteeseen aikaisemmin, jotta voit testata komentosarjamme.
Napsauta seuraavaa ja paina sitten Kyllä tässä ikkunassa:
Valitse viimeisestä valikosta Valmis ja olet suorittanut automaattisten sähköpostiviestien ajoituksen.