Le script shell ci-dessus suggéré par statox est bien sûr correct, mais il ne tient pas compte du fait que l'ordinateur peut tomber en panne entre les deux vérifications, vous pouvez vous déconnecter ou interrompre la session ssh à partir de laquelle vous exécutez le programme. scénario.
Le moyen le plus simple de s’assurer simultanément de tous ces événements est d’utiliser le à commande pour exécuter en avant la deuxième vérification. Ainsi, je suggère que le script ci-dessus soit modifié comme suit:
#!/bin/bash
FILE=/home/Savio/Dsktop/check/sample.txt
if [ -f $FILE ]
then
#Do what you want if file exists
else
at now + 5 hours /home/Savio/ExecutableScript
fi
où / home / Savio / ExecutableScript est un script exécutable (* chmod 755 Executable Script) qui vérifie l'existence du fichier sample.txt et, s’il n’existe pas, prend les mesures appropriées en sachant que le laps de temps de 5h est déjà écoulé.
Je comprends que la plupart des gens ne connaissent pas le à l'heure actuelle + 5 heures format de à invocation, vous pouvez le trouver détaillé ici .
Ce qui précède survivra aux redémarrages, aux déconnexions et aux déconnexions.
EDIT: le à Cette commande est particulièrement utile car elle utilise votre environnement, pas les racines . Aussi, gardez à l'esprit que à utilise le shell standard Bourne sh , pas le shell Bourne-again frapper . Ainsi, dans le she-bang du fichier / home / Savio / ExecutableScript, assurez-vous de spécifier explicitement le shell bash pour qu'il fonctionne comme vous le souhaitez.
sleep 5h; yourcommand
.