Я пытаюсь выяснить способ отслеживания файлов, которые я сбрасываю из своего сценария. Если в дочерних файлах нет инкремента, тогда убейте мой скрипт.
Я делаю это, чтобы освободить ресурсы, когда это не нужно. Вот что я думаю, но я думаю, что мой apporch добавит бремя для CPU. Может ли кто-нибудь предложить более эффективный способ сделать это?
Ниже сценарий должен опросить каждые 15 секунд и собрать два файла одного и того же файла, если размер двух образцов одинаковый, а затем выйдите.
checkUsage() {
while true; do
sleep 15
fileSize=$(stat -c%s $1)
sleep 10;
fileSizeNew=$(stat -c%s $1)
if [ "$fileSize" == "$fileSizeNew" ]; then
echo -e "[Error]: No activity noted on this window from 5 sec. Exiting..."
kill -9 $$
fi
done
}
И я планирую назвать это следующим образом (в фоновом режиме):
checkUsage /var/log/messages &
Я могу также получить решение, если кто-то подскажет, как контролировать команду хвост и, если ничего печать на хвосте, то на выходе , НЕ УВЕРЕН, ПОЧЕМУ ЛЮДИ ОТКЛОНЯТСЯ. Конечная цель этого вопроса - проверить, отредактирован ли какой-либо файл за последние 15 секунд. Если не выйти или выбросить ошибку.
Я достиг этого сценария выше, но я не знаю, является ли это самым умным способом достижения этого. Я задал этот вопрос, чтобы узнать мнения других, если есть альтернативный способ или лучший способ сделать это.
Какая цель? Похож на проблему XY ... – Tensibai
Конечная цель - гарантировать, что если/var/log/messages не увеличивают свой размер за 15 секунд, тогда убить мой скрипт. – monk
Вышеупомянутый скрипт проверяет файл каждые 10 секунд, хотя, как вы положили 'sleep 10;' между 'fileSize' и' fileSizeNew' – sjsam