Bash

沒有 date -d 的 AIX 上的時間戳比較

  • August 8, 2018

我在 AIX 7 上有一個執行數據庫查詢的 bash 腳本,我得到的輸出是以下格式的時間戳:201607130319.

現在我想將時間戳與目前時間(date +%Y%m%d%H%M- 201607201802)進行比較,並檢查以分鐘為單位的差異。我基本上需要知道差異是否超過10分鐘。

我知道我可以在 Linux 上使用date -d,但在 AIX 上不可用。我也不允許在伺服器上安裝任何東西,所以我在這裡有什麼選擇?

Perl 可能已安裝,所以你可以這樣做

timestamp=$( some process )   # timestamp=201607130319
perl -se '
   use Time::Local;
   if ($ts =~ /^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)$/) {
       $time = timelocal(0,$5,$4,$3,$2-1,$1-1900);
       $now  = time;
       if (abs( $time - $now ) > 600) {
           print "more than 10 minutes\n";
       }
   }
' -- -ts="$timestamp"

引用自:https://serverfault.com/questions/790941