Étape 2: Automatiser l’envoi de courrier
Donc, pour automatiser toutes les étapes que nous avons fait avant, j’ai cherché sur le net, quelque chose qui pourrait permettre à moi de le faire, causer le bash ne permet pas une telle chose.
Et j’ai enfin trouver quelque chose de proche le bash, les attendent !
Fondamentalement, il attendra une chaîne à imprimer sur le terminal. Et que si cette chaîne est reçue, il va écrire un autre.
Par exemple lorsque vous démarrez la communication telnet avec google, le serveur vous répondre une chaîne se terminant par « SMTPUTF8 », et lorsque cette chaîne est écrite dans le terminal, le script doit envoyer la réponse HELO
Je vous invite à vérifier toutes les étapes de la previouses, comme vous pouvez le voir pour chaque chaîne vous envoyez vers le serveur, il y a une réponse.
J’ai baser mon script là-dessus.
Voici comment je l’ai fait, j’ai créer un script bash qui doit récupérer mon adresse IP publique et le statut de tous mon serveur et envoyez-le dans une chaîne en tant qu’argument à mon script expect.
Tout d’abord le bash script cet appel mon script expect (c’est une version allégée pour l’exmple)
J’ai télécharger les deux scripts.
___________________________________BASH SCRIPT________________________________
#! / bin/bash
Ligne de #This est ici cause je vais utiliser crontab plus tard
PATH = / usr/local/sbin: / usr/local/bin: / usr/sbin: / usr/bin: / sbin: / bin: / usr/games: / usr/local/jeux
echo « Récupération de l’adresse ip publique »
curl ifconfig.me > ipPublic.txt
IP = "IpPublic ="
Propriété intellectuelle += $(cat ipPublic.txt) PLEX = ""
echo "IP publique maison:" $IP
service--statut-all | grep plex > tmp.txt
Si [[tmp.txt -s]] ; puis
PLEX = "PlexStatus = course à pied"
echo $PLEX
d’autre
PLEX = "PlexStatus = Stoppé"
echo $PLEX
FI
RM tmp.txt
Echo « du mail... Envoi »
/Home/diard/téléchargements/telnetScript.exp $IP $PLEX
echo « Script terminé »
________________________________END OF BASH SCRIPT_____________________________
Et voilà le script expect. Le script j’ai juste montré vous, appelle le follo avec l’Ip et l’état de mon serveur.
___________________________________EXPECT SCRIPT_______________________________
#! / usr/bin/attendre
Définissez HELO "HELO yo"
la valeur SMTP « smtp.gmail.com »
Définissez le PORT « 587 »
Set authentification « AUTH LOGIN »
la valeur de LOGI « < yourEncodedMail > »
la valeur de PASS « < yourEncodedPass > »
définir expé "MAIL FROM : < yourMail > "
set DEST "RCPT TO : < DestMail > "
la valeur de données « DATA »
définir l’objet "sujet : infos du serveur"
Définissez MES1 [lindex $argv 0]
la valeur de MES2 [lindex $argv 1]
définir les POIN "."
la valeur de QUIT « QUIT »
la valeur de timeout 10
spawn /usr/bin/openssl s_client - starttls smtp-connect $SMTP: $PORT - crlf-ign_eof
s’attendre à « SMTPUTF8 »
Envoyer « $HELO\r »
s’attendre à « service »
Envoyer « auth$ »
s’attendre à « WU6 »
Envoyer « $LOGI\r »
s’attendre à « mQ6 »
Envoyer « $PASS\r »
s’attendre à « Accepté »
Envoyer « $EXPE\r »
s’attendre à « gsmtp »
Envoyer « $DEST\r »
s’attendre à « gsmtp »
Envoyer « $Data »
s’attendre à « gsmtp »
Envoyer « $SUBJ\r »
Envoyer « $MES1\r »
Envoyer « $MES2\r »
Envoyer « $POIN\r »
s’attendre à « qsmtp »
Envoyer « $QUIT\r »
fermer
attendre la sortie du folklore
___END D’ATTENDRE SCRIPT___