Como exibir o próximo horário de planejamento para um nó do TSM?

2
0:root@SERVER:/SERVER/fs_111 # dsmc q schedule
IBM Tivoli Storage Manager
Command Line Backup-Archive Client Interface
  Client Version 6, Release 4, Level 0.1  
  Client date/time: 03/09/2014 15:08:27
(c) Copyright by IBM Corporation and other(s) 1990, 2012. All Rights Reserved.

Node Name: SERVER_111
Session established with server TSM03: AIX-RS/6000
  Server Version 5, Release 5, Level 5.2
  Server date/time: 03/09/2014 15:08:27  Last access: 03/09/2014 15:02:58

    Schedule Name: foo
      Description: 
   Schedule Style: Classic
       Action: Incremental
      Options:  
      Objects:  
     Priority: 4
   Next Execution: 2 Hours and 7 Minutes
     Duration: 2 Hour 
       Period: 2 Day  
      Day of Week: Any
        Month: 
     Day of Month: 
    Week of Month: 
       Expire: Never

0:root@SERVER:/SERVER/fs_111 # 

Da saída do "dsmc q schedule", vejo que o próximo backup para este nodeid estará em "2 Hours and 7 Minutes". Eu também posso ver o "data / hora do servidor".

Minha pergunta : como posso obter o próximo horário? Seria a hora do servidor mais o próximo tempo de execução. Portanto, neste exemplo: "03/09/2014 17:15:27"

    
por evachristine 11.03.2014 / 21:16

1 resposta

0

Aqui está uma maneira difícil de fazer o que você quer. Ele faz algumas suposições sobre a natureza da saída, mas deve fornecer um modelo de como você pode expandir uma solução mais exata para seu problema.

Exemplo

Para esta demonstração, estou pegando a saída que você forneceu e colocando-a em um arquivo de texto para que eu possa "simular" o comando do TSM em execução. Esse arquivo estou chamando tsm_output.txt .

O código a seguir analisará o próximo tempo de execução:

$ cat tsm_output.txt  | grep 'Next Exec' | awk '{print $3, $6}'
2 7

A primeira suposição que minha solução faz é que a natureza dessa saída será tal que sempre será a hora & Minutos. Com base nisso, podemos expandir as horas & minutos para que sejam segundos.

$ cat tsm_output.txt | grep 'Next Exec' | awk '{print $3"*60*60+"$6"*60"}' 
2*60*60+7*60

Podemos, então, canalizar essa saída para uma ferramenta de calculadora de linha de comando chamada bc :

$ cat tsm_output.txt | grep 'Next Exec' | awk '{print $3"*60*60+"$6"*60"}' | bc
7620

Assim, com o número de segundos, podemos solicitar a ajuda do comando date para calcular o tempo de NOW + os segundos:

$ date -d "$(cat tsm_output.txt | grep 'Next Exec' | \
    awk '{print $3"*60*60+"$6"*60"}' | bc) seconds"
Wed Mar 12 06:22:42 EDT 2014

Isso informa a data para exibir o tempo + os segundos do deslocamento. Este é o formato date -d "X seconds" .

    
por 12.03.2014 / 09:17