通过pbrun自动执行脚本?

mun*_*ish 1 shell login authentication shell-script

有一个名为sftwrk01,的 Unix 环境uatwrk01intwrk01还有一些

我需要每天通过登录来检查每个环境中的日志,如下所示(通过 pbsu,它是 pbrun 的包装器):

$pbsu - sftwrk01  //this helps to login to sftwrk01
Run Code Online (Sandbox Code Playgroud)

然后登录后我检查日志。同样的过程也适用于几个环境,如uatwrk01intwrk01等。

现在我试过这个:

$pbsu - sftwrk01 && cd var/can/log && ls -lrt
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为实际上该语句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
Run Code Online (Sandbox Code Playgroud)

其他信息:

 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
Run Code Online (Sandbox Code Playgroud)

是 pbsu

roz*_*acz 5

我不知道您登录的服务器 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"
Run Code Online (Sandbox Code Playgroud)

(注意引号!)所以,对于你的例子,它会是

pbsu - sftwrk01 -c "ls -lrt var/can/log"
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,请注意,您不需要更改到某个目录来列出其内容 - 只需将该目录的名称提供给ls命令,如上所示。)