Вышеприведенный скрипт оболочки, предложенный statox, конечно, верен, но он не учитывает тот факт, что компьютер может выйти из строя между двумя проверками, или вы можете выйти из системы, или вы можете прервать сеанс ssh, из которого вы запускаете скрипт.
Самый простой способ обезопасить себя от всех этих событий одновременно - использовать команду at для своевременного выполнения второй проверки. Поэтому я предлагаю изменить приведенный выше скрипт следующим образом:
#!/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
где /home/Savio/ExecutableScript - это исполняемый скрипт (* chmod 755 ExecutableScript), который проверяет выход файла файл sample.txt и, если он не существует, предпринимает соответствующие действия, зная, что истек 5-часовой промежуток времени.
Я понимаю, что большинство людей не знакомы с форматом + 5 часов при вызове, вы можете найти его подробно здесь.
Вышесказанное переживет перезагрузки, выходы из системы, отключения.
РЕДАКТИРОВАТЬ: команда at особенно полезна, потому что она использует вашу среду, а не root. Кроме того, имейте в виду, что at использует стандартную оболочку Bourne sh, а не bash -again shell bash. Таким образом, в she-bang в файле /home /Savio /ExecutableScript убедитесь, что вы явно указали оболочку bash, чтобы она работала так, как вы ожидаете.