Aix
如何判斷文件在 AIX 上是否超過 30 分鐘?
我想在 ksh 或 bash 中編寫一個 shell 腳本,如果特定文件超過 30 分鐘,它會以 1 退出。(最後修改時間超過半小時)。在 Linux 或現代 unix 上會很容易,但我必須在 AIX 5.2 版本上完成。
所以約束:
- ‘find’ 中沒有 -mmin -mmax 選項
- touch 沒有 -d 選項(touch -d ‘30 minutes ago’ temp then find ! -newer temp不起作用)
- 沒有“stat”命令
- ‘date’ 命令中沒有 %s 參數(date +%s不起作用)
- 我不允許安裝任何軟體
你能幫我解決這些限制嗎?
我可以使用 , 和 來做到
touch
這test
一點date
。(在 AIX 5.3.0.0 上測試)首先,您需要在過去 30 分鐘內創建一個文件(不幸的是,這需要事先了解機器上的目前時區。但如果需要,您可以將其用於處理。)
在此範例中,目前時區為 EST5EDT (GMT-4)。如果幸運的話,機器時區將設置為 GMT,您可以使用
TZ=00:30
:-bash-3.00# date Mon 26 Mar 14:22:31 2012 -bash-3.00# touch -t `TZ=04:30 date '+%Y%m%d%H%M.%S'` foo -bash-3.00# ls -al foo -rw-r--r-- 1 root system 0 26 Mar 13:52 foo
現在使用 test 來比較日期:
-bash-3.00# test '/smit.log' -ot foo && echo 'smit.log is older than 30min' smit.log is older than 30min