O script de shell acima sugerido pelo statox está correto, mas não leva em consideração o fato de que o computador pode ficar entre as duas verificações, ou você pode fazer logout, ou você pode interromper a sessão ssh da qual você estão executando o script.
A maneira mais simples de se assegurar contra todos esses eventos simultaneamente é usar o comando at para executar a segunda checagem. Assim, sugiro que o script acima seja modificado da seguinte forma:
#!/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
onde / home / Savio / ExecutableScript é um script executável (* chmod 755 ExecutableScript) que verifica a saída do arquivo exemplo.txt e, se não existe, toma ações adequadas sabendo que o lapso de tempo de 5h já expirou.
Eu entendo que a maioria das pessoas não está familiarizada com o formato agora + 5 horas de em invocação, você pode encontrá-lo detalhado aqui .
O acima irá sobreviver a reinicializações, logouts, desconexões.
EDIT: o comando at é especialmente útil porque usa o seu ambiente, e não o root . Além disso, lembre-se de que at usa o shell Bourne padrão sh , não o shell Bourne-again bash . Assim, no she-bang no arquivo / home / Savio / ExecutableScript, certifique-se de especificar o shell bash explicitamente, para que ele funcione como você espera.