11Jul

Miten luodaan automaattisesti ja sähköpostitilastotilastot

On tärkeää tarkistaa päivittäin erilaisia ​​lokitietoja ja tilastoja palvelimellasi, mutta se kasvaa ikävältä.Eikö olisi mukavaa, että saisit yhden päivän sähköpostin kaikkiin kohokohtaisiisi, joten sinun ei tarvitse edes palvella etsiä ongelmia? Tässä oppaassa kuvataan automaattisten sähköpostiviestien määrittäminen Linuxissa ja Windowsissa.

Otamme nimenomaan tämän Ubuntun ja Windows 8.1: n osalta, ja Gmailia käytetään sähköpostipalvelimena, johon postia lähetetään. Jos sinulla on toinen versio Linuxista tai Windowsista tai haluat käyttää jotain muuta sähköpostipalvelua, ohjeet pitäisi helposti mukauttaa.

Automaattiset sähköpostit Linuxissa

Käytämme kahta eri pakettia tämän, ssmtp: n ja postitilojen suorittamiseen, joten asenna molemmat seuraavalla komennolla:

$ sudo apt-get asenna ssmtp mailutils

Kun nämä asennetaan, tarvitsemmetehdä muutoksia SSMTP-määritystiedostoon:

$ sudo vi /etc/ssmtp/ ssmtp.conf

Muokkaa tiedostoa näillä muutoksilla( voit poistaa kaikki tiedoston tekstin ja kopioida tai liittää nämä asetukset, jos haluat):

# Tämä osoite vastaanottaa sähköpostit, joten kirjoita oma sähköpostiesi, jos haluat vastaanottaa ne.

[email protected]

# Määritä sähköpostipalvelin täällä( jätä niin, jos käytät Gmailia).

mailhub = smtp.gmail.com: 587

# Verkkotunnus, josta posti tulee.

rewriteDomain = gmail.com

# Sähköpostiosoitteen, josta nämä sähköpostit pitäisi olla.

[email protected]

# SSL / TLS-asetukset, joita tarvitaan Gmailille ja useimmille muille sähköpostipalvelimille.

UseTLS = Kyllä

KäytäSTARTTLS = Kyllä

# Käyttäjätunnus ja salasana Gmail-tilillesi.

AuthUser = käyttäjätunnus

AuthPass = salasana

# Antaa kyvyn määrittää eri osoitteesta kuin yllä.

FromLineOverride = kyllä ​​

Kun olet valmis muokkaamaan tiedostoa, sinun on muutettava käyttöoikeudet, koska Gmail-salasanasi on tallennettu tekstimuodossa.

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

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

On aina turvallisempaa juurtua tiedoston omistaja, mutta meidän pitäisi käyttää sudo-komentoa käsikirjassamme ja sepyydä meitä salasanasta, mikä tukahduttaa tämän koko prosessin automatisoinnin.

Jos käytät jaettua palvelinta ja olet huolissasi siitä, että salasanasi on kirjoitettu tekstimuodossa ja voit lukea sen pääkäyttäjänä, luo oma Gmail-tili tai käytä sähköpostipalvelinta, joka ei vaadi minkäänlaista todentamista.

Varmistaaksesi, että kaikki on määritetty oikein, kokeile testiesähköpostia:

$ echo "Testing" |mail -s "Sähköpostin määrittäminen" [email protected]

"Testaus" tulee olemaan sähköpostin ruudussa ja aiheena on "Sähköpostin määrittäminen". Tarkista sähköpostisi ja varmista, että olet saanut sen.

Sähköpostien komentosarjan kirjoittaminen

Nyt voimme lähettää komentosarjan sähköposteja, joten kirjoitamme komentosarjan, joka lähettää meille joitain perustietoja järjestelmästämme.

#!/bin/ bash

# Tarkista kiintolevytila ​​

echo "Kiintolevytila:" & gt;/home/geek/ email.txt

df-h & gt; & gt;/home/geek/ email.txt

# Luettelo käyttäjistä, jotka ovat kirjautuneet sisään

echo "Käyttäjät, jotka ovat kirjautuneet sisään:" & gt; & gt;/home/geek/ email.txt

, kuka & gt; & gt;/home/geek/ email.txt

# Näytä käynnissä olevat prosessit

echo "Käynnissä olevat prosessit:" & gt; & gt;/home/geek/ email.txt

ps -e & gt; & gt;/home/geek/ email.txt

# Lähetä sähköpostia

cat /home/geek/ email.txt |sähköposti -s "Päivittäiset palvelintiedot" [email protected]

# Luomasi tiedosto

rm /home/geek/ email.txt

Voit selata komentojasi perusteellisemmin ja tehdä muotoilusta hieman mukavamman, muttatämä on mitä tuotos näyttää sähköpostissamme:

Nyt, kun komentosarja on kirjoitettu ja testattu, voimme käyttää cronia automaattisesti suorittamaan sen samaan aikaan joka päivä.Tässä esimerkissä määritämme lähetettävän sähköpostiviestin joka aamu kello 2.00, joten voimme käydä läpi tiedot myöhemmin.

$ crontab -e

2:00 AM -viestit lisää:

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

Olemme kirjoittaneet koko artikkelin crontab-tiedostoista, jos tarvitset lisäapua tämän osan kanssa.

Automaattiset sähköpostit Windowsissa

Sähköpostiviestien lähettäminen komentorivillä on mahdollista PowerShellin kautta, mutta olemme havainneet, että tämän toiminnon toteuttaminen on paljon helpompaa kolmansien osapuolten sovellusten kanssa, varsinkin Gmailin käytön aikana. SendEmail on ilmainen Windows-käyttöjärjestelmä, joka tekee integroinnista Windows Task Scheduler -ohjelmaan ja Gmailiin. Napsauta yllä olevaa linkkiä ladataksesi uusimman kopion ja varmista, että tartut TLS-tukeen.

Kun olet ladannut SendEmailin, purkaa zip-tiedosto ja laita sisältösi johonkin, jotta voit tallentaa ne niin kauan kuin aiot lähettää automaattisia sähköpostiviestejä.Tässä esimerkissä aiomme tallentaa ohjelman C: \ SendEmail

: ssä. Testataan SendEmail, jotta saat nopeasti tuntumaan siitä, miten se toimii. Avaa komentokehote kirjoittamalla cmd Käynnistä tai Suorita( Ctrl + R) -valikkoon.

Kun komentokehote on auki, käytä muutoshakemiston komentoa siirtymään kohtaan, johon olet tallentanut SendEmail-tiedostoja.

cd C: \ SendEmail

Nyt voimme yrittää lähettää testisähköpostin seuraavalla komennolla:

sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xpsalasana -u "Testaa sähköpostin aihe" -m "Tämä on testisähköposti."

Korvaa käyttäjätunnukset ja salasanat tilisi tunnuksilla ennen komentojonon suorittamista.

Tässä yllä mainittu komento:

sendEmail suorittaa ohjelman.

-f - osoitteesta

-t - osoitteeseen

-s - SMTP-palvelin

-xu - tilin käyttäjätunnus

-xp - salasanan

-u - sähköpostin aihe

-m - sähköpostin kehon teksti

Tarkasta postilaatikkosi varmistaaksesi, ettäsaat testisähköpostin ja voimme siirtyä komentosarjan kirjoittamiseen, joka lähettää meille palvelintietoja.

Sähköpostien komentosarjan kirjoittaminen

Jotta saisimme parhaan hyödyn skriptistä, aiomme kirjoittaa sen PowerShellille. Avaa Windows PowerShell ISE kirjoittamalla powershell_ise.exe Run-kehotteeseen( Ctrl + R).

PowerShell ISE -ikkunan oikealla puolella voit luetella kaikki komennot, jotka PowerShell pystyy suorittamaan. Tämän pitäisi antaa sinulle hyvä alku tuottaa tietotyypit tarvitset raportoitu. Komentosarjassa voit myös soittaa kolmansien osapuolten ohjelmiin tietojen tuottamiseksi( eli SendEmail on kolmannen osapuolen sovellus, mutta PowerShell ja cmd voivat käyttää sitä tehtävien suorittamiseen normaalisti).

Esimerkkiskriptimme tarkistamme C-aseman nykyisen levyn käytön, näytämme käynnissä olevat prosessit ja näytämme kaikki tiedostot, jotka jakautuvat parhaillaan verkon kautta.

# Tarkista kiintolevytila ​​

echo "C: Aseman käyttö:" & gt;C: \ SendEmail \ info.txt

Hanki-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" |Valitse -objektin koko, FreeSpace & gt; & gt;C: \ SendEmail \ info.txt

# Näytä käynnissä olevat prosessit

echo "Käynnissä olevat prosessit:" & gt; & gt;C: \ SendEmail \ info.txt

get-prosessi & gt; & gt;C: \ SendEmail \ info.txt

# Luettelo jaetut tiedostot / kansiot

echo "SMB-osuudet:" & gt; & gt;C: \ SendEmail \ info.txt

get-smbshare & gt; & gt;C: \ SendEmail \ info.txt

# Lähetä sähköpostia

tyyppi C: \ SendEmail \ info.txt |C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu käyttäjätunnus -xp salasana -u "Päivittäiset palvelintiedot"

# Poista tiedosto, jonka olemme tehneet

rm C: \ SendEmail \ info.txt

Tässä kirjoitusohjelmassa annetaan erilaisia ​​tietoja C: \ SendEmail \ info.txt: lle ja sitten kyseisessä asiakirjassa oleva teksti lähetetään meille sähköpostitse, ennen kuin se poistetaan. Tallenna skripti PS1-tiedostopääte( PowerShell-tiedosto).

Kun käsikirjoitus on valmis, suorita nopea testi Run-kehotteesta varmistaaksesi, että se toimii oikein.

Käytä vain powershell-komentoa -file-argumentilla ja määritä komentojesi polku.

powershell -tiedosto "c: \ SendEmail \ daily-email.ps1"

Tarkasta postilaatikkoosi, että olet saanut sähköpostin - jos ei, tutustu käsikirjoitustasi syntaksivirheiden varalta. Tässä esimerkki siitä, mitä esimerkkikirjastosta syntynyt sähköposti näyttää:

Voit pelata muotoilun( kuten kuvien jäljessä tyhjillä viivoilla tekstin välillä), jotta se näyttäisi paremmalta laitteellasi tai paremmin, mutta voit käyttää kolmannen osapuolen ohjelmaa, jokatulosta tarvittavat tiedot luettavammassa muodossa kuin Windows tekee( komentosarjojen prosessi on edelleen sama).

Kun olet selvittänyt komentojesi komentotulokset, voit automatisoida Windows Task Scheduler -ohjelman. Avaa Windows Task Scheduler Käynnistä-valikosta.

Kun Task Scheduler on auki, valitse Toiminto & gt;Luo perustoiminto.

Nimeä tämä tehtävä jotain "Daily email script" ja napsauta seuraavaksi. Valitse seuraavalla näytöllä, kuinka usein sähköpostiosoitekirjasi toimii, todennäköisesti päivittäin. Valitse sitten aika, jonka haluat käsikirjoituksen toimivan, ja napsauta seuraavaksi.

Nyt sinun pitäisi olla ohjatun toiminnon "Toimi" -osassa, valitse "Käynnistä ohjelma" ja kirjoita sama teksti, jonka kirjoitimme komentojonoa testattuun ajo-ohjelmaan.

Paina seuraavaksi ja paina sitten Kyllä tässä ikkunassa:

Napsauta lopuksi viimeistä valikkoa ja olet valmis aikatauluttamaan automaattiset sähköpostiviestit.