Stap 2: De verzending van mail automatiseren
Dus, het automatiseren van alle maatregelen die wij hebben gedaan voordat ik het net zocht, iets waardoor me hiervoor, veroorzaken de bash toestaan niet dat zulk een ding.
En ik heb eindelijk iets dicht bij de bash, de verwachten!
Kortom, het zal wachten een tekenreeks moet worden afgedrukt op de terminal. En alleen als deze tekenreeks wordt ontvangen, zal het een ander schrijven.
Bijvoorbeeld wanneer u de telnet-communicatie met google de server beantwoorden u een tekenreeks eindigt door "SMTPUTF8", en als deze tekenreeks wordt geschreven in de terminal, start zendt het script de reactie HELO
Ik verzoek u te controleren alle previouses stappen, zoals u voor elke tekenreeks zien kunt u verzendt naar de server er is een reactie.
Ik heb mijn script baseren op dit.
Hier is hoe ik heb gemaakt, ik heb een bash script maken dat wordt mijn publieke IP-adres, en de status van alle mijn server ophalen en verzenden het omgezet in een tekenreeks als argument mijn verwachten script.
Eerste de bash script dat gesprek mijn verwachten script (het is een lichte versie alleen voor de voorbeeld)
Ik heb de beide scripts uploaden.
___________________________________BASH SCRIPT________________________________
#! / bin/bash
#This lijn is hier oorzaak ik crontab later gebruiken
PATH = / usr/local/sbin: / usr/local/bin: / usr/sbin: / usr/bin: / sbin: / bin: / usr/games: / usr/local/games
echo "Récupération de l'adresse ip publique"
curl ifconfig.me > ipPublic.txt
IP = "IpPublic ="
IP-+= $(cat ipPublic.txt) PLEX = ""
echo "IP publique maison:" $IP
service--status-all | grep plex > tmp.txt
Als [[-s tmp.txt]]; vervolgens
PLEX = "PlexStatus = Running"
ECHO $PLEX
anders
PLEX = "PlexStatus = Stoppé"
ECHO $PLEX
fi
RM tmp.txt
echo "Envoi du mail..."
/Home/diard/téléchargements/telnetScript.EXP $IP $PLEX
echo "Script bom"
________________________________END OF BASH SCRIPT_____________________________
En daar is de verwachten script. Het script toonde ik enkel u, roept de follo met de IP- en de status van mijn server.
___________________________________EXPECT SCRIPT_______________________________
#! / usr/bin/verwachten
instellen van de HELO "HELO yo"
instellen van SMTP "smtp.gmail.com"
set PORT "587"
set AUTH "AUTH LOGIN"
set LOGI "< yourEncodedMail >"
set PASS "< yourEncodedPass >"
instellen EXPERI "MAIL FROM: < yourMail > "
instellen DEST "RCPT TO: < DestMail > "
instellen van de "gegevens"
instellen van SUBJ "onderwerp: Server info"
set MES1 [lindex $argv 0]
set MES2 [lindex $argv 1]
instellen van POIN "."
QUIT "QUIT" instellen
set timeout 10
paaien /usr/bin/openssl s_client - starttls smtp-verbinding $SMTP: $PORT - crlf-ign_eof
verwachten van "SMTPUTF8"
verzenden "$HELO\r"
verwachten "service"
verzenden "$AUTH\r"
verwachten van "WU6"
verzenden "$LOGI\r"
verwachten van "mQ6"
verzenden "$PASS\r"
verwachten "Geaccepteerd"
verzenden "$EXPE\r"
verwachten van "gsmtp"
verzenden "$DEST\r"
verwachten van "gsmtp"
verzenden "$DATA\r"
verwachten van "gsmtp"
verzenden "$SUBJ\r"
verzenden "$MES1\r"
verzenden "$MES2\r"
verzenden "$POIN\r"
verwachten van "qsmtp"
verzenden "$QUIT\r"
sluiten
verwachten eof afsluiten
___END VAN SCRIPT___ VERWACHTEN