SCRIPT : > /dev/null

Bonjour,

Je m’informe sur des (très modestes) scripts pour gérer mes sauvegardes (via cron).

Que signifie

ici :

#!/bin/bash if ping -c1 192.168.0.2 > /dev/null then echo "YES" else echo "NO" fi

Merci.

> est l’opérateur shell de redirection, par défaut il redirige la sortie standard (ce que tu verrais affiché dans le terminal) vers le fichier qui est précisé après.

/dev/null est la poubelle unix dans laquelle on peut rediriger n’importe quoi.

donc la ligne teste juste la valeur retournée par la commande ping sans en afficher le résultat.

Je parlerais de trou sans fond plutôt que de poubelle.

Pour compléter, on voit souvent des redirections de la sortie standard dans les tâches cron car sinon ce dernier envoie par mail le contenu de la sortie standard au propriétaire de la tâche cron, ce qui n’est pas forcément souhaitable.

Ok merci.
Donc si je mets ça dans un script exécuté par cron tous les jours (par exemple), ceci n’a donc plus d’intérêt vu qu’aucun terminal n’est ouvert et que le script s’exécute en fond ?

Je ne comprends pas la question.

Effectivement, avec le recul pas très clair mon histoire…
Je reprends donc de manière compréhensible (du moins je l’espère :unamused: ) :

J’ai exécuté ce mini script dans un terminal avec et sans > /dev/null. J’ai bien vu la différence entre les deux, ça permet de n’afficher que ce qui intérresse, ici la commande echo.

Maintenant lorsque ce script est éxécuté par cron, celui-ci est éxécuté en tache de fond. Je veux dire par là que le retour du script

[code]PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.

— 192.168.0.2 ping statistics —
1 packets transmitted, 0 received, 100% packet loss, time 0ms

NO[/code]
n’apparait pas à l’écran (dans aucun terminal).
Dans ce cas quel intérêt y a t-il à inscrire > /dev/null dans le script puisque de toute façon aucun retour n’apparaitra ?

Voila j’espère avoir été plus clair (j’en suis pas sûr…)

Merci

Si le script ci-dessus est exécuté par cron, toutes les sorties des commandes non redirigées seront envoyées dans un mail. En gros, à chaque exécution tu recevras un mail contenant “YES” ou “NO”. Si tu supprimes la redirection, le mail contiendra aussi la sortie de la commande ping.

cron ne m’envoie aucun mail !..
Je l’utilise pourtant déjà avec des commandes rsync notamment.