系统管理工具包: 使用 SSH 进行分布式管理
2008-11-12 08:30:42 来源:WEB开发网当然,其效果基本上是相同的。
当您希望通过管道进行传输的信息或者命令是远程的,那么使用远程管道方法是非常有用的。例如,使用清单 5 中的命令,您可以将 ls 与 du 组合使用,以确定不同目录的磁盘使用情况。
清单 5. 确定不同命令的磁盘使用情况
ssh root@gentoo.vm "ls -d /usr/local/* |xargs du -sh "
Password:
4.0K /usr/local/bin
4.0K /usr/local/games
4.0K /usr/local/lib
0 /usr/local/man
4.0K /usr/local/sbin
12K /usr/local/share
4.0K /usr/local/src
在继续将这些技术重新分布到多台计算机之前,这里将介绍一个直接运行远程交互会话的技巧,而无需首先进行登录。
直接的交互会话
如前所述,您可以直接运行许多不同的命令和命令链。SSH 解决方案的优点之一是,尽管命令本身是以远程的方式执行的,但是命令的输入和输出都来源于调用的计算机。您可以将它作为一种在两台计算机(与您希望执行的命令相关)之间交换信息的方法。
您可以执行各种各样不同的命令。然而,因为您直接从命令行运行这些命令,所以对于直接使用该方法所能执行的操作,通常是有限制的。例如,使用上面介绍的这种方法和技术,尝试使用某种编辑器来编辑一个远程文件,通常都会失败(请参见清单 6)。
清单 6. 编辑一个远程文件失败
$ ssh root@gentoo.vm "emacs /etc/amavisd.conf"
emacs: standard input is not a tty
通过强制 SSH 分配一个伪 tty 设备(以便您可以直接与远程应用程序进行交互),就可以解决这个问题。
在多台计算机中运行远程的命令
更多精彩
赞助商链接