Backup

如何顯示 TSM 節點的下一個計劃時間?

  • March 12, 2014
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 # 

從“dsmc q schedule”的輸出中,我可以看到此 nodeid 的下一次備份將在“2 小時 7 分鐘”內。我還可以看到“伺服器日期/時間”。

我的問題:我怎樣才能得到下一個計劃時間?這將是伺服器時間加上下一次執行時間。所以在這個例子中:“03/09/2014 17:15:27”

這是做你想做的事的粗略方法。它對輸出的性質做了一些假設,但應該為您提供一個模板,讓您可以為您的問題擴展更精確的解決方案。

例子

對於此展示,我將您提供的輸出放入文本文件中,以便“模擬”執行的 TSM 命令。我正在呼叫的那個文件tsm_output.txt

以下程式碼將解析出下一次執行時間:

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

我的解決方案所做的第一個假設是,此輸出的性質將始終是小時和分鐘。在此基礎上,我們可以擴展小時和分鐘,使其變為秒。

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

然後,我們可以將該輸出通過管道傳輸到名為的命令行計算器工具bc

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

因此,有了秒數,我們可以藉助date命令來計算從現在開始的時間 + 那些秒數:

$ 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

這告訴日期顯示時間+偏移的秒數。這是形式date -d "X seconds"

引用自:https://unix.stackexchange.com/questions/119196