CURTIME=$(date '+%s')
LOG=/home/apache_logs.txt
FILETIME1=$(stat $LOG -c %Y)
TIMEDIFF1=$(expr $CURTIME - $FILETIME1)
Eu criei esse script no Ubuntu e ele funciona bem lá, mas no SunOS (Generic_150400-64 sun4v sparc sun4v), ele não está funcionando.
Esse script é para verificar se os logs estão sendo atualizados e o fazem (se houver), dependendo da saída de segundos no TIMEDIFF1.
Se else executará coisas como, se os logs forem atualizados há 15 minutos, faça isso, se há 30 minutos faça isso ... e assim por diante.
Portanto, o tempo em segundos como saída é importante para que a instrução if else seja executada com eficiência.
por isso, estou tentando determinar quantos anos um arquivo tem (há quanto tempo foi modificado / atualizado) no SECONDS. e preciso de tempo em segundos.
bash
shell-script
awk
solaris
Bharat
fonte
fonte
it is not working
é a menos útil de todas as descrições de problemas. Quando algo em sua vida não está funcionando e você quer que alguém o ajude a fazê-lo funcionar, você precisa dizer a ele de que maneira não está funcionando. Neste caso - saída errada, sem saída, core dump, mensagens de erro, outra coisa? O que acontece se você incluir um shebang no topo -#!/bin/env bash
? O que faz você pensar que um script awk seria apropriado para esta tarefa?Respostas:
Como substituto do stat, você pode usar o seguinte perl oneliner:
perl -e 'print((stat("/tmp/a"))[10])'
Para solucionar a data atual, você pode usar o
touch
comando para criar um arquivo temporário e ler o carimbo de data / hora da modificação no arquivo temporário, como:A referência sobre o comando perl stat () pode ser encontrada em: https://perldoc.perl.org/functions/stat.html
fonte
Se a versão do
date
seu sistema SunOS não suportar o+%s
argumento, usarawk
para corrigir isso , embora não seja impossível, é impraticável.Funciona ? Caso contrário, você estará sem sorte. Nesse caso, você pode usá-lo para obter o horário atual:
stat filename -c %Y
Se a sua versão do bash não suportar , use-o .
[ -e filename ]
-f
PS Você deve citar todas as suas variáveis:
fonte