顯示具有 Unix 標籤的文章。 顯示所有文章
顯示具有 Unix 標籤的文章。 顯示所有文章

9/25/2011

AIX版的Linux watch指令...(監控指令的輸出狀態)

 

標題有些繞舌...不過不影響我們的主題需求...

Linux上有個好用的指令叫做watch,

能夠持續的監控指令的輸出狀態,讓系統管理員能夠隨時嘗握狀況。

比方說我們想要監控 netstat -ant 的輸出狀況,隨時觀查連線狀態的變化。

則可以使用

# watch -d -n 1 ‘netstat –ant'

-n 表示每一秒更新一次輸出。
-d 表示將有變更的部份以高亮標示(Highlight)

輸出如下圖

image

很方便對吧!!

可惜...在IBM AIX上沒有這個好東西...( AIX上的watch指令是別的奇怪用途..)

不過別擔心! 因為這種問題在網路上早就一堆解答了...

這篇只是把他們整理一下,方便日後查找而已 ;-)

AIX 上的 watch 指令替代方案

其實也不難! 就是寫個迴圈來一直進行~

root@aix # cat watch.sh
#!/bin/ksh
#
# $1 = 監控的間隔時間,以秒為單位.
# $2 = 請將所有要輸入的指令以雙引號(")或單引號(')包起來.
#

# Exit the watch.sh use Ctrl + C
#

while true
do
  clear
  echo "Interval $1 sec, Command: $2"
  eval $2
  sleep $1
done
root@aix # #以下比方說要執行監控ls -l /home/user | grep .profile,每秒更新一次.
root@aix #
root@aix # ./watch.sh 1 "ls -l /home/user | egrep '.profile'"

 

 

參考資料如下:

Linux watch command on AIX?

Monitoring logs and command output


7/10/2011

vi 及 sed 置換字串的小技巧

 

工作中常常會需要將設定檔或script內的很多字替換掉,

當然這本身是一個很簡單的事情。

比方檔案內容如下:

[xxooxp@blogsopt ~]# cat xyz.txt
/uuu/abc
/uuu/abc
/uuu/abc
/uuu/abc

而我們想將 uuu 置換為 xyz 可透過簡單的幾個方法達成。

使用 vi 置換,
[xxooxp@blogsopt ~]# vi xyz.txt
/uuu/abc
/uuu/abc
/uuu/abc
/uuu/abc                                                      
~                                                                       
~                                                                       
:1,$s:/uuu/:/xyz/:g

使用 sed 置換

[xxooxp@blogsopt ~]# sed –i ‘s:/uuu/:/xyz/:g’ xyz.txt



10/16/2010

UNIX timestamp 轉換為 GMT/UTC 時間或本地時間

 

有時我們的程式會使用Unix timestamp來做為時間表示的方法,

Unix timestamp 也有人稱為 Unix time、POSIX time,

但不是每個人都能很快速的算出從GMT (格林威治) 1970年1月1日00時00分00秒 至今的秒數(應該沒人不同意吧?)。

 

為此在使用 Linux / Unix 的時候,就會想要快速的知道怎麼計算?

這邊有從網路上蒐集而來的方法,就來看看吧。

# 轉換 Unix timestamp 為本地時間 (依系統時區)。
[xxooxp@blogspot / ]# perl -le 'print scalar(localtime(1287234368))'
Sat Oct 16 21:06:08 2010
 
# 轉換 Unix timestamp 為 GMT 時間。
[xxooxp@blogspot / ]# perl -le 'print scalar(gmtime(1287234368))'
Sat Oct 16 13:06:08 2010
 
# 按照本地時間 (依系統時區),計算出 Unix timestamp。
[xxooxp@blogspot / ]# perl -le 'print time()'
1287234778
 
# 在 Linux 系統轉換 Unix timestamp 為本地時間更方便。
[xxooxp@blogspot / ]# date –d @1287234778
Sat Oct 16 21:12:58 CST 2010

 

參考資料:

Epoch & Unix Timestamp Conversion Tools

Unix时间戳(Unix timestamp)转换工具

[xxooxp@blogspot / ]# info date



10/01/2010

tar 指令備份小技巧

 

tar 可以透過 pipe line 做一些特別的備份方式。

像是使用

[root@/tmp]# tar -cvf - /etc | tar -xvf -
這邊以|(pipe line)為分隔說明兩部份,
前半部的參數是
c 建立被 tar 的資料。
v verbose 的意思,就是會顯示 tar 了什麼。
f 這個參數後要接 tar 完後的檔名,比方說 tar –cvf backup.tar 要tar的來源
- 這符號是表示標準輸入或標準輸出,要看使用的位置,這邊的例子是標準輸出
因此前半部就是叫 tar 指令將 /etc 內的所有資料,tar 到 – (標準輸出)內。
後半部的參數是
x 解開被 tar 的資料。
v verbose 的意思,就是會顯示 tar 了什麼。
f 這個參數後要接 tar 完後的檔名,比方說 tar –xvf backup.tar 解tar的目地
- 這符號是表示標準輸入或標準輸出,要看使用的位置,這邊的例子是標準輸入
所以後半部就是讓 tar 指令將 – (標準輸入,將前半部的標準輸入拿來用),
內的資料解 tar 到目前所在的目錄(因為我們沒在最後”解tar的目的”中輸入參數)。
 
或者是
# (cd source-Folder ;tar -cf - .)|(cd target-Folder ; tar -xfBp –)