Calcula a diferença de data entre a data da Última modificação de um arquivo e AGORA usando o shell script

5

Estou tentando calcular o tempo decorrido desde a última atualização do arquivo de log.

Acho que os seguintes comandos serão usados

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

Como posso subtraí-los e obter o resultado pelo número de segundos decorridos?

    
por Tarik Setia 03.03.2015 / 19:52

4 respostas

3
lastUpdate="$(stat -c %Y myLogFile.log)"
now="$(date +%s)"
let diff="${now}-${lastUpdate}"
    
por 03.03.2015 / 20:45
1

compare as duas saídas para obter o número de segundos entre agora e a data modificada

stat -c %Y file  vs date +%s
    
por 03.03.2015 / 20:34
0

Você está quase lá! Basta informar date para usar um formato no qual a computação seja fácil.

lastUpdate=$(date -r myLogFile.log +%s)
now=$(date +%s)
file_age=$((now - lastUpdate))
    
por 04.03.2015 / 01:17
0

Um forro:

stat -c %Y /path/to/file | echo 'expr $(date +%s) - $(cat)'

    
por 05.02.2016 / 00:05