如何在Linux中远程运行SSH命令并在本地显示结果

当需要使用SSH从一台Linux服务器或Unix服务器到另一台远程Linux机器执行某些命令或本地Bash脚本时,这对于Linux系统管理员来说是一项相当普通的任务。 在本文中,您将找到有关如何在Linux中运行远程SSH命令并在本地显示结果的示例。

在Linux上运行远程SSH命令的基本语法

$ ssh [email protected] 'command'

哪里:

  • SSH协议 ->这是用于与远程服务器建立连接的协议或命令。
  • 用户 ->这是远程服务器上的用户名。
  • 主办 ->这是您要执行远程命令的远程主机。
  • 命令 ->这是您要在远程主机上执行的命令。

例子:

  • 假设您想了解远程服务器的安装点的详细信息。
[[email protected] ~]# ssh [email protected] df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/xvda2      10473456 1599732   8873740  16% /
devtmpfs          483256       0    489456   0% /dev
tmpfs             547132       0    502766   0% /dev/shm
tmpfs             547132   13000    492766   3% /run
tmpfs             547132       0    502766   0% /sys/fs/cgroup
tmpfs             111244       0    103558   0% /run/user/1000
tmpfs             111244       0    103558   0% /run/user/0
[[email protected] ~]#

在上面的示例中,系统将要求您在远程主机上输入您的名称密码。 由于我们在两台服务器之间设置了SSH密码,因此该系统无需密码即可工作。 如果您想在两台服务器之间设置SSH密码,请阅读本文。

  • 如果您想知道远程主机正常运行时间命令的结果。
[[email protected] ~]# ssh [email protected] uptime
00:31:26 up 52 min,  2 users,  load average: 0.00, 0.01, 0.03
[[email protected] ~]#

  • 甚至您也可以远程使服务器超载。
[[email protected] ~]#ssh [email protected] reboot

在Linux中运行远程SSH命令以停止或启动任何进程或服务。

  • 如果您想在远程主机上停止HTTPd进程。
[[email protected] ~]# ssh [email protected] 'systemctl stop httpd'

由于在上面的示例中,命令由多个单词组成,因此您必须将整个命令用引号引起来,‘”

  • 现在,要重新启动HTTPD服务,请使用以下命令。
[[email protected] ~]# ssh [email protected] 'systemctl start httpd'

  • 使用以下命令可以远程检查HTTPd服务的状态:
[[email protected] ~]# ssh [email protected] 'systemctl status httpd'
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2017-06-212 95:15:21 EDT; 43s ago
     Docs: man:httpd(8)
           man:apachectl(8)
Main PID: 2121 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─1911 /usr/sbin/httpd -DFOREGROUND
           ├─1912 /usr/sbin/httpd -DFOREGROUND
           ├─1913 /usr/sbin/httpd -DFOREGROUND
           ├─1914 /usr/sbin/httpd -DFOREGROUND
           ├─1915 /usr/sbin/httpd -DFOREGROUND
           └─1916 /usr/sbin/httpd -DFOREGROUND
 
Jun 22 09:15:21 ip-213-159-209-228.ap-south-1.compute.internal systemd[1]: Starting The Apache HTTP Server...
Jun 22 09:15:21 ip-213-159-209-228.ap-south-1.compute.internal systemd[1]: Started The Apache HTTP Server.
[[email protected] ~]#

要输出到本地Linux文件,请在远程主机上运行命令。

如果要在远程主机上获取已执行命令的输出,则需要遵循下一个方法。

[[email protected] ~]# ssh [email protected] 'free -m' > /tmp/memory.txt
[[email protected] ~]# cat /tmp/memory.txt
              total        used        free      shared  buff/cache   available
Mem:            991          95         352          13         450         685
Swap:             0           0           0
[[email protected] ~]#

在上面的示例中,在这里,我们在远程主机上运行了内存使用情况命令,并将输出重定向到本地文件“ /tmp/memory.txt”。 之后,您可以使用cat命令检查文件的内容。

Sidebar