Shell
通過 pbrun 自動執行腳本?
有一個名為
sftwrk01
,uatwrk01
等intwrk01
的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
命令,如上所示。)