Intereting Posts
Какой тип терминала поддерживается при реализации эмулятора терминала? Отказоустойчивая физическая и виртуальная машина с репликацией. Является ли это возможным? Почему команды верхнего регистра работают в моей оболочке Bash? Как использовать sed для замены ключей в файле с помощью регулярного выражения? Создание постоянного USB с минимальной ОС на os x Downprade PHP 5.4 -> 5.3 на CentOS 5.10 Как печатать строки, если два поля имеют одинаковые значения? HpUX: правильный vgreduce Как я могу предотвратить перезагрузку systemctl или выключение системы systemctl? Как отобразить сообщение при входе в систему? Chrony не хочет синхронизировать Могу ли я дважды загружать Linux Mint 32/64? Запуск облачной печати Google при загрузке Доступно только две памяти объемом 2 ГБ на 64-битном ядре Linux rsync определенные файлы, исключая остальные, игнорируя каталог .svn /, рекурсивно

Вычислить разницу дат между последней измененной датой файла и СЕЙЧАС с использованием сценария оболочки

Я пытаюсь вычислить время, прошедшее с момента последнего обновления файла журнала.

Я предполагаю, что будут использованы следующие команды

lastUpdate=$(date -r myLogFile.log) now=$(date) 

Как я могу вычесть их и получить результат за несколько секунд?

 lastUpdate="$(stat -c %Y myLogFile.log)" now="$(date +%s)" let diff="${now}-${lastUpdate}" 

сравните два выхода, чтобы получить количество секунд между теперь и измененной датой

 stat -c %Y file vs date +%s 

Ты почти там! Просто укажите date чтобы использовать формат, на котором вычисление легко.

 lastUpdate=$(date -r myLogFile.log +%s) now=$(date +%s) file_age=$((now - lastUpdate)) 

Один лайнер:

stat -c% Y / путь / в / файл | echo `expr $ (date +% s) – $ (cat)`