On tärkeää tarkistaa erilaisia lokitietoja ja tilastoja palvelimellasi päivittäin, mutta niistä tulee ikäviä. Eikö olisi mukavaa saada yksi sähköposti, joka sisältää kaikki kohokohdat joka päivä, joten sinun ei tarvitse edes mennä palvelimelle tarkistaaksesi ongelmia? Tämä opas näyttää, kuinka automaattiset sähköpostit määritetään Linuxissa ja Windowsissa.
Tarkastelemme tätä erityisesti Ubuntulle ja Windows 8.1: lle, kun Gmailia käytetään sähköpostipalvelimena, jolta postia lähetetään. Jos sinulla on toinen Linux- tai Windows-versio tai haluat käyttää jotain muuta sähköpostipalvelua, näiden ohjeiden tulisi olla helposti mukautettavissa.
Automatisoidut sähköpostit Linuxissa
Aiomme käyttää tätä kahdella eri paketilla, ssmtp ja mailutils, joten asenna molemmat seuraavalla komennolla:
$ sudo apt-get install ssmtp mailutils
Kun ne on asennettu, meidän on tehtävä joitain muutoksia SSMTP-määritystiedostoon:
$ sudo vi /etc/ssmtp/ssmtp.conf
Muokkaa tiedostoa näillä muutoksilla (on turvallista vain poistaa kaikki tiedoston teksti ja kopioida / liittää nämä asetukset, jos haluat):
# Tämä osoite vastaanottaa sähköpostit, joten kirjoita oma sähköpostiosoitteesi tähän, jos haluat saada ne.
# Määritä sähköpostipalvelin täältä (jätä tila, jos käytät Gmailia).
mailhub = smtp.gmail.com: 587
# Verkkotunnus, josta posti tulee.
rewriteDomain = gmail.com
# Sähköpostiosoite, josta näiden sähköpostien tulisi olla.
# SSL / TLS-asetukset, vaaditaan Gmailille ja useimmille muille sähköpostipalvelimille.
UseTLS = Kyllä
UseSTARTTLS = Kyllä
# Gmail-tilisi käyttäjänimi ja salasana.
AuthUser = käyttäjänimi
AuthPass = salasana
# Salli mahdollisuus määrittää eri osoite kuin yllä oleva.
FromLineOverride = kyllä
Kun olet muokannut tiedostoa, sinun on muutettava käyttöoikeuksia, koska Gmail-salasanasi on tallennettu selkokieliseksi.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown käyttäjänimi.tunnus /etc/ssmtp/ssmtp.conf
Aina on turvallisempaa tehdä juurista tiedoston omistaja, mutta sitten meidän on käytettävä komento sudo-komentoa ja se pyytää meiltä salasanaa, mikä estää koko prosessin automatisoinnin.
Jos käytät jaettua palvelinta ja olet huolissasi siitä, että salasanasi on tallennettu selkeään tekstiin ja luettavissa pääkäyttäjältä, luo heitettävä Gmail-tili tai käytä sähköpostipalvelinta, joka ei vaadi minkäänlaista todennusta.
Kokeile testisähköpostia varmistaaksesi, että kaikki on määritetty oikein.
$ echo "Testaus" | mail -s "Postin asetusten testaaminen" käyttäjä[email protected]
"Testaus" tulee olemaan sähköpostin tekstiosassa ja aihe "Testaamalla sähköpostin asetuksia". Tarkista sähköpostisi varmistaaksesi, että sait sen.
Komentosarjan kirjoittaminen sähköposteille
Nyt kun voimme lähettää sähköposteja komentoriviltä, kirjoitetaan komentosarja, joka lähettää meille perustietoja 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 "Sisäänkirjautuneet käyttäjät:" >> /home/geek/email.txt
kuka >> /home/geek/email.txt
# Luettelo käynnissä olevista prosesseista
echo "Suorittavat prosessit:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Lähetä sähköposti
kissa /home/geek/email.txt | mail -s "Päivittäiset palvelintiedot" käyttäjä[email protected]
# Poista luomamme tiedosto
rm /home/geek/email.txt
On selvää, että saat paljon syvällisempää skriptiäsi ja jopa tehdä muotoilusta hieman mukavampaa, mutta tämä näyttää tuloksen sähköpostissamme:
Nyt kun komentosarja on kirjoitettu ja testattu, voimme käyttää cronia suorittamaan sen automaattisesti samaan aikaan joka päivä. Tässä esimerkissä määritämme sähköpostin lähetettäväksi joka aamu klo 2.00, jotta voimme käydä läpi tiedot myöhemmin samana päivänä.
$ crontab -e
Lisää 2:00 AM-sähköpostiviestejä varten:
0 2 * * * /home/geek/script.sh
Olemme kirjoittaneet kokonaisen artikkelin aiheesta crontab-tiedostot jos tarvitset lisää apua tässä osassa.
Automatisoidut sähköpostit Windowsissa
Sähköpostiviestien lähettäminen komentoriviltä on mahdollista PowerShellin kautta, mutta olemme havainneet, että tämän toiminnon toteuttaminen on paljon helpompaa kolmansien osapuolten sovellusten kanssa, varsinkin kun käytät Gmailia. Lähettää sähköpostia on ilmainen Windows-ohjelma, joka tekee integroinnista Windowsin Tehtävien ajastimen ja Gmailin kanssa helppoa. Napsauta yllä olevaa linkkiä ladataksesi uusimman kopion ja varmista, että tartut TLS-tuettuun versioon.
Kun olet ladannut SendEmail, pura zip-tiedosto ja aseta sisältö johonkin paikkaan, johon voit tallentaa ne, niin kauan kuin aiot lähettää automaattisia sähköposteja. Tässä esimerkissä aiomme vain tallentaa ohjelman C: \ SendEmail -kansioon
Testataan SendEmail saadaksemme nopean kuvan sen toiminnasta. Avaa komentokehote kirjoittamalla cmd Käynnistä tai Suorita (Ctrl + R) -valikkoon.
Kun komentokehote on auki, siirry hakemiston vaihtokomennolla kohtaan, johon olet tallentanut SendEmail-tiedostot.
cd C: \ SendEmail
Nyt voimme yrittää lähettää testisähköpostin seuraavalla komennolla:
sendEmail -f käyttäjä[email protected] -t käyttäjä[email protected] -s smtp.gmail.com:587 -xu käyttäjätunnus -xp salasana -u "Testisähköpostin aihe" -m "Tämä on testisähköposti."
Korvaa tietysti käyttäjänimi ja salasana tilisi kirjautumistiedoilla ennen komennon suorittamista.
Tässä mitä yllä oleva komento todella tekee:
lähettää sähköpostia
suorittaa ohjelman.
-f
- osoitteesta
-t
- osoitteeseen
-s
- SMTP-palvelin
-coin
- tilin käyttäjänimi
-xp
- tilin salasana
-u
- sähköpostin aihe
-m
- sähköpostin teksti
Tarkista postilaatikostasi, että olet saanut testisähköpostin, ja voimme sitten kirjoittaa komentosarjan, joka lähettää meille palvelintiedot.
Komentosarjan kirjoittaminen sähköposteille
Saadaksesi kaiken irti komentosarjastamme, kirjoitamme sen PowerShellille. Avaa Windows PowerShell ISE kirjoittamalla powershell_ise.exe Suorituskehotteeseen (Ctrl + R).
PowerShell ISE -ikkunan oikealla puolella voit luetella kaikki komennot, jotka PowerShell pystyy suorittamaan. Tämän pitäisi antaa sinulle hyvä alku tuottamaan tarvitsemasi tiedot. Komentosarjassa voit myös kutsua kolmannen osapuolen ohjelmia tuottamaan tietoja (ts. SendEmail on kolmannen osapuolen sovellus, mutta PowerShell ja cmd voivat käyttää sitä tehtävien suorittamiseen, joita he eivät yleensä pysty).
Esimerkkikoodissamme tarkistamme C-aseman nykyisen levykäytön, näytämme käynnissä olevat prosessit ja näytämme kaikki tiedostot, jotka jaetaan verkon kautta.
# Tarkista kiintolevytila
echo "C: Aseman käyttö:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Suodatin "DeviceID = 'C:'" | Valitse objektin koko, FreeSpace >> C: \ SendEmail \ info.txt
# Luettelo käynnissä olevista prosesseista
echo "Suorittavat prosessit:" >> C: \ SendEmail \ info.txt
get-process >> C: \ SendEmail \ info.txt
# Luettele tiedostot / kansiot, joita parhaillaan jaetaan
echo "PK-osakkeet:" >> C: \ SendEmail \ info.txt
get-smbshare >> C: \ SendEmail \ info.txt
# Lähetä sähköposti
kirjoita C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f käyttäjä[email protected] -t käyttäjä[email protected] -s smtp.gmail.com:587 -xu käyttäjätunnus -xp salasana -u "Päivittäiset palvelintiedot"
# Poista tekemämme tiedosto
rm C: \ SendEmail \ info.txt
Tässä komentosarjassa eri tietoja lähetetään kansioon C: \ SendEmail \ info.txt, ja sitten asiakirjan teksti lähetetään meille sähköpostitse, ennen kuin se poistetaan. Tallenna komentosarjasi ps1-tiedostotunnisteella (PowerShell-tiedosto).
Kun komentosarja on valmis, suorita pikatesti Suorita-kehotteesta varmistaaksesi, että se toimii oikein.
Käytä vain
voiman kuori
komento a
-tiedosto
argumentti ja määritä komentosarjosi polku.
powershell -file "c: \ SendEmail \ daily-email.ps1"
Tarkista postilaatikostasi, että olet saanut sähköpostiviestin - jos ei, etsi komentosarjassasi syntaksivirheitä. Tältä näyttää esimerkkikomentomme luoma sähköposti:
Voit leikkiä muotoilun kanssa (kuten tyhjien viivojen toistaminen tekstin välillä), jotta se näkyy laitteellasi mukavammin, tai vielä parempaa, voit käyttää kolmannen osapuolen ohjelmaa, joka tuottaa tarvittavat tiedot helpommin luettavassa muodossa kuin Windows ( komentosarjojen käsittely on edelleen sama).
Kun olet selvittänyt käsikirjoituksesi muokkaukset, voit automatisoida sen Windowsin Tehtävien ajoituksella. Avaa Windowsin Tehtäväaikataulu Käynnistä-valikon kautta.
Kun Tehtäväaikataulu on auki, valitse Toiminto> Luo perustehtävä.
Nimeä tämä tehtävä esimerkiksi nimellä "Daily email script" ja napsauta seuraavaksi. Valitse seuraavalla näytöllä taajuus, jolla haluat sähköpostikomentosi suoritettavan, todennäköisesti päivittäin. Valitse sitten aika, jonka haluat komentosarjan suoritettavan, ja paina seuraavaksi.
Nyt sinun pitäisi olla ohjatun toiminnon "Toiminta" -osiossa, valitse "Käynnistä ohjelma" ja kirjoita sama teksti, jonka kirjoitimme aiemmin Suorita-kehotteeseen testataksemme komentosarjaa.
Napsauta seuraavaksi ja paina sitten Kyllä tässä ikkunassa:
Napsauta viimeisessä valikossa Valmis, ja olet valmis ajastamaan automaattiset sähköpostisi.