Как принудительно обновлять файл, если оставить его без изменений через 55 минут?

Мне нужно, чтобы файл журнала обновлялся, если он остался неизменным в течение 55 минут. Например, скажем, что сейчас 19:00, а IOstatDisk2.log не изменился с 18:00:

  solaris1a:/var/tmp ROOT # ls -ltr IOstatDisk2.log -rw-r--r-- 1 root other 6 Aug 2 18:00 IOstatDisk2.log 

Поэтому в этом случае я добавлю строку

 echo “new cycle - forced update after 55 min.” >> IOstatDisk2.log 

Но если последний штамп времени был менее 55 минут назад, я не буду добавлять строку.

  • passwd не работает после изменения CRYPT_DEFAULT
  • Как запустить программу setuid на Solaris 10?
  • Добавить пользователя в Solaris
  • bc ведет себя по-разному на Solaris и Linux
  • Где я могу использовать «beadm»?
  • Команда, которая возвращает либо идентификатор процесса, если работает, либо какой-либо другой результат, если нет?
  • Предоставить пользователю разрешение на доступ к файлам в каталоге
  • У Solaris есть эквивалент /etc/ld.so.conf?
  • 2 Solutions collect form web for “Как принудительно обновлять файл, если оставить его без изменений через 55 минут?”

    Вы можете проверить его (и работать с файлом, если тест имеет значение true) следующим образом:

     if [ $(((`date +%s` - `stat -c %Y IOstatDisk2.log`) / 60)) -ge 55 ] then echo "File was modified more than 55 minutes ago" # do something with the file... fi 

    find GNU или find BSD сделают трюк для вас:

     find <DIRECTORY> -type f -amin +55 -name \*<PATTERN>\* -print 

    это будет печатать все файлы с именем PATTERN в DIRECTORY, где доступ к ним превышает 55 минут назад.

    Linux и Unix - лучшая ОС в мире.