Shell

通過 pbrun 自動執行腳本?

  • August 5, 2011

有一個名為sftwrk01,uatwrk01intwrk01的Unix 環境

我需要每天通過以下方式登錄(通過 pbsu,它是 pbrun 的包裝器)來檢查每個環境中的日誌:

$pbsu - sftwrk01  //this helps to login to sftwrk01

然後登錄後我檢查日誌。相同的過程適用於更多的環境uatwrk01,例如intwrk01等。

現在我嘗試了這個:

$pbsu - sftwrk01 && cd var/can/log && ls -lrt

但這不起作用,因為實際上該語句cd var/can/log && ls -lrt是在我通過鍵入退出 sftwrk01 環境後執行的exit

考慮到我沒有管理員權限,可能有哪些不同的解決方案?(即我只是主目錄中的使用者之一。)

如果沒有管理員權限這是不可能的,那麼您可以提及一種可以在擁有完全權限的情況下執行此操作的方法(也許您會編輯某個.profile文件來執行此操作)

**OS Info :**
rcihp145 :/home/msingh2> uname -a
HP-UX rcihp145 B.11.23 U 9000/800 3683851961 unlimited-user license

其他資訊:

rcihp145 :/home/msingh2> ls -lrta
total 7296
-r--r--r--   1 msingh2    users          438 Dec 22  2010 .profile
drw-------   2 msingh2    users           96 Dec 22  2010 .ssh
-r--r--r--   1 msingh2    users          831 Dec 22  2010 .cshrc
-r--r--r--   1 msingh2    users          347 Dec 22  2010 .exrc
-r--r--r--   1 msingh2    users          333 Dec 22  2010 .login
-rw-------   1 msingh2    users           56 Dec 23  2010 .sh_history.
-rwxr-xr-x   1 msingh2    users         5451 Dec 23  2010 .dtprofile
-rw-------   1 msingh2    users      3577932 May 18 05:21 core
drwxr-xr-x  422 root       root         16384 Aug  3 14:27 ..
-rw-------   1 msingh2    users          245 Aug  4 00:41 .Xauthority
-rw-------   1 msingh2    users         1768 Aug  4 00:41 .TTauthority
drwxr-xr-x   4 msingh2    users         8192 Aug  4 00:41 .
-rw-------   1 msingh2    users        37533 Aug  4 00:41 .ICEauthority
-rw-------   1 msingh2    users         4064 Aug  4 06:28 .sh_history
drwxr-xr-x  12 msingh2    users         8192 Aug  4 06:28 .dt
-rw-------   1 msingh2    users         3462 Aug  5 02:29 .sh_history.msingh2

是pbsu

我不知道您登錄的伺服器 shell 是否是原始的 Korn Shell,但如果是,您可以修改pbsu腳本的結尾,以便

[ -n "$REMOTEHOST" ] && /usr/local/bin/pbrun -h $REMOTEHOST -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH
[ -n "$REMOTEHOST" ] || /usr/local/bin/pbrun -b -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH

變成

[ -n "$REMOTEHOST" ] && /usr/local/bin/pbrun -h $REMOTEHOST -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH ${@:2}
[ -n "$REMOTEHOST" ] || /usr/local/bin/pbrun -b -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH ${@:2}

.

然後你就可以在不登錄 shell 的情況下向伺服器發送命令,使用

pbsu - sftwrk01 -c "your commands here"

(注意引號!)因此,對於您的範例,它將是

pbsu - sftwrk01 -c "ls -lrt var/can/log"

(注意,順便說一句,您不需要更改到某個目錄來列出其內容 - 只需將該目錄的名稱提供給ls命令,如上所示。)

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