有一个名为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
答案1
我不知道您登录的服务器 shell 是否是原始的 Korn Shell,但如果是,您可以修改pbsu
脚本的末尾,以便
[ -n "$REMOTEHOST" ] && /usr/local/bin/pbrun -h $REMOTEHOST -u $用户名 /usr/local/bin/pbksh $LOGIN_SWITCH [ -n "$REMOTEHOST" ] || /usr/local/bin/pbrun -b -u $用户名 /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 $用户名 /usr/local/bin/pbksh $LOGIN_SWITCH ${@:2}。
然后,您可以使用以下命令将命令发送到服务器,而无需登录 shell
pbsu - sftwrk01 -c "your commands here"
(注意引号!)因此,对于您的示例,它将是
pbsu - sftwrk01 -c "ls -lrt var/can/log"
(顺便说一下,请注意,您不需要更改到某个目录来列出其内容 - 只需将该目录的名称提供给命令ls
,如上所示。)