Bonjour à toutes et à tous,
Je suis tout nouveau sur le forum
Pour me présenter un peu, je travaille pour une société de recherche et ma cheffe souhaite que l'on reçoive un mail quand un service passe en état failed sur nos serveurs linux.
Depuis ce matin je me documente et j'apprends à faire du script sous linux donc svp soyez indulgent sur ce que vous allez voir ci-dessous
Mon script est terminé et il fait ce que je souhaite c'est à dire :
- vérifier si des services sont en état failed
- relancer le service en question
- envoyer un mail sur une liste pour qu'on soit prévenu
Dans le mail en question, j'inclus le status du service. Pour simuler un service en failed, j'ai modifié le fichier conf du service clamav-freshclam.
Quand je fais manuellement un systemctl status clamav-freshclam.service, j'obtiens ca :
Jusqu'ici, c'est normal. Mais quand je lance mon script, dans le mail que je reçois j'ai ca :root@xxxx:~# systemctl status clamav-freshclam.service
● clamav-freshclam.service - ClamAV virus database updater
Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2021-03-29 16:09:46 CEST; 21min ago
Docs: man:freshclam(1)
man:freshclam.conf(5)
https://www.clamav.net/documents
Process: 12921 ExecStart=/usr/bin/freshclam -d --foreground=true (code=exited, status=2)
Main PID: 12921 (code=exited, status=2)
mars 29 16:09:46 xxxx systemd[1]: Started ClamAV virus database updater.
mars 29 16:09:46 xxxx freshclam[12921]: ERROR: Missing argument for option at /etc/clamav/freshclam.conf:3
mars 29 16:09:46 xxxx freshclam[12921]: ERROR: Can't open/parse the config file /etc/clamav/freshclam.conf
mars 29 16:09:46 xxxx systemd[1]: clamav-freshclam.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
mars 29 16:09:46 xxxx systemd[1]: clamav-freshclam.service: Failed with result 'exit-code'.
root@glpi:~#
Ce qui est tout bonnement impossible car le fichier conf du service a toujours ses paramètres erronés● clamav-freshclam.service - ClamAV virus database updater
Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-03-29 15:59:07 CEST; 6ms ago
Docs: man:freshclam(1)
man:freshclam.conf(5)
https://www.clamav.net/documents Main PID: 12798 (freshclam)
Tasks: 1 (limit: 4700)
Memory: 936.0K
CGroup: /system.slice/clamav-freshclam.service
└─12798 /usr/bin/freshclam -d --foreground=true
Donc ma question est : ou est ce que je me suis trompé dans le script ? Est ce que l'un de vous peut m'éclairer svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 #!/bin/bash touch /tmp/verif_services /tmp/services_failed /tmp/mail cd /tmp VERIF="/tmp/verif_services"; FAILED="/tmp/services_failed"; MAIL="/tmp/mail"; HOSTNAME=$(hostname) systemctl --type=service | grep failed > $VERIF if [ -s $VERIF ] then cut -d " " -f2 $VERIF > $FAILED fi echo "ATTENTION SERVICE(S) EN ETAT FAILED" >> "$MAIL"; echo " " >> "$MAIL"; echo " " >> "$MAIL"; echo "LE(S) SERVICE(S) SUIVANT(S) EST(SONT) EN ETAT FAILED SUR LE SERVEUR" $HOSTNAME >> "$MAIL"; echo " " >> "$MAIL"; cat $FAILED >> "$MAIL"; echo " " >> "$MAIL"; echo "TENTATIVE DE RELANCE AUTOMATIQUE DU(DES) SERVICES" >> "$MAIL"; echo " " >> "$MAIL"; echo " " >> "$MAIL"; for service in $(cat $FAILED) do systemctl restart $service; echo "LE SERVICE" $service "A ETE RELANCE" >> "$MAIL"; echo " " >> "$MAIL"; echo " " >> "$MAIL"; echo "VERIFIEZ L'ETAT DU SERVICE CI-DESSOUS" >> "$MAIL"; echo " " >> "$MAIL"; echo " " >> "$MAIL"; systemctl status $service >> "$MAIL"; echo " " >> "$MAIL"; echo " " >> "$MAIL"; echo "SI TOUJOURS EN FAILED, IL FAUT INTERVENIR SUR LE SERVEUR " >> "$MAIL"; done cat $MAIL | msmtp prenom.nom@monentreprise.fr; rm $VERIF $FAILED $MAIL
Partager