原文:Run Remote Commands with SSH
ssh 是一个神奇的工具。
你可以使用它连接2台电脑,或者在不登录到终端的情况下在远程机器上执行一段命令。
下面演示如何查看系统磁盘使用情况:
root@admin:~ # ssh root@www 'df -h' Filesystem Size Used Avail Use% Mounted on /dev/ubda 3.5G 2.1G 1.4G 61% / tmpfs 96M 4.0K 96M 1% /dev/shm
是不是很神奇,但好像不是非常有用。 如果你在多台服务器上配置好 public/private key pairs,然后就可以肆意在那些机器上。具体情况,下回分解。
现在呢,你可以通过已有的知识来做很多事情,比如查询服务器上 web服务 的进程数,而不用登录到服务器上然后敲入那些命令。 你要做的只是将要执行的命令用引号引起来然后放到 ssh 命令后面,就行了。 下面给出一个例子:用 root 帐号登录到服务器并查询服务器上的所有进程,将结果通过 pipes 传给本地,通过 grep apache 获得所有 apache 进程,然后通过 grep -v grep 过滤掉 grep apache 命令本身,这样就只剩下 apache 进程了,然后通过 wc -l 就能得到所有的 apache 进程数了。
root@admin:~ # ssh root@www 'ps -ef | grep apache | grep -v grep | wc -l' 11
或者看看如何显示系统的资源使用情况和最占用 CPU 的进程:
root@www:~ # ssh root@www 'top -b -n 1 | head -n 8' top - 11:01:04 up 20 days, 6:47, 1 user, load average: 0.44, 0.21, 0.09 Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie Cpu(s): 1.7% user, 1.5% system, 0.0% nice, 96.8% idle Mem: 195620k total, 186276k used, 9344k free, 16380k buffers Swap: 525304k total, 516k used, 524788k free, 26912k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7399 root 19 0 936 936 740 R 9.2 0.5 0:00.20 top
或者只是看看都谁登录呢:
root@www:~ # ssh root@www 'who' brock pts/0 Oct 21 10:31 (75.72.194.149) jim pts/1 Oct 25 06:25 (128.101.163.128)
如果你想知道怎么样才能在执行上面命令的时候不用输入密码,你可以看看这一篇 设置 SSH keys ,下次登录就不用输入密码了
No comments:
Post a Comment