Backup
如何顯示 TSM 節點的下一個計劃時間?
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"
。