mun*_*ish 1 shell login authentication shell-script
有一个名为sftwrk01
,的 Unix 环境uatwrk01
,intwrk01
还有一些
我需要每天通过登录来检查每个环境中的日志,如下所示(通过 pbsu,它是 pbrun 的包装器):
$pbsu - sftwrk01 //this helps to login to sftwrk01
Run Code Online (Sandbox Code Playgroud)
然后登录后我检查日志。同样的过程也适用于几个环境,如uatwrk01
,intwrk01
等。
现在我试过这个:
$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
我不知道您登录的服务器 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
命令,如上所示。)