通过 SSH 在远程 Linux 系统上运行命令的方法

发布时间:2019-10-14 08:58 来源:互联网 当前栏目:网站服务器

我们有时可能需要在远程机器上运行一些命令。如果只是偶尔进行的操作,要实现这个目的,可以登录到远程系统上直接执行命令。但是每次都这么做的话,就有点烦人了。既然如此,有没有摆脱这种麻烦操作的更佳方案?

是的,你可以从你本地系统上执行这些操作,而不用登录到远程系统上。这有什么好处吗?毫无疑问。这会为你节省很多好时光。

这是怎么实现的?SSH 允许你无需登录到远程计算机就可以在它上面运行命令。

通用语法如下所示:

$ ssh [用户名]@[远程主机名或 IP] [命令或脚本]

1) 如何通过 SSH 在远程 Linux 系统上运行命令

下面的例子允许用户通过 ssh 在远程 Linux 机器上运行 df 命令。

$ ssh daygeek@CentOS7.2daygeek.com df -h
 Filesystem        Size Used Avail Use% Mounted on
 /dev/mapper/centos-root  27G 4.4G  23G 17% /
 devtmpfs         903M   0 903M  0% /dev
 tmpfs          920M   0 920M  0% /dev/shm
 tmpfs          920M 9.3M 910M  2% /run
 tmpfs          920M   0 920M  0% /sys/fs/cgroup
 /dev/sda1        1014M 179M 836M 18% /boot
 tmpfs          184M 8.0K 184M  1% /run/user/42
 tmpfs          184M   0 184M  0% /run/user/1000

2) 如何通过 SSH 在远程 Linux 系统上运行多条命令

下面的例子允许用户通过 ssh 在远程 Linux 机器上一次运行多条命令。

同时在远程 Linux 系统上运行 uptime 命令和 free 命令。

$ ssh daygeek@CentOS7.2daygeek.com "uptime && free -m"
 23:05:10 up 10 min, 0 users, load average: 0.00, 0.03, 0.03
       total    used    free   shared  buffers   cached
 Mem:     1878    432    1445     1    100    134
 -/+ buffers/cache:    197    1680
 Swap:     3071     0    3071

3) 如何通过 SSH 在远程 Linux 系统上运行带 sudo 权限的命令

下面的例子允许用户通过 ssh 在远程 Linux 机器上运行带有 sudo 权限 的 fdisk 命令。

普通用户不允许执行系统二进制(/usr/sbin/)目录下提供的命令。用户需要 root 权限来运行它。

所以你需要 root 权限,好在 Linux 系统上运行 fdisk 命令。which 命令返回给定命令的完整可执行路径。

$ which fdisk
 /usr/sbin/fdisk
$ ssh -t daygeek@CentOS7.2daygeek.com "sudo fdisk -l"
 [sudo] password for daygeek:
 Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
 Units = sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk label type: dos
 Disk identifier: 0x000bf685
 Device Boot   Start     End   Blocks  Id System
 /dev/sda1  *    2048   2099199   1048576  83 Linux
 /dev/sda2     2099200  62914559  30407680  8e Linux LVM
 Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
 Units = sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk /dev/mapper/centos-root: 29.0 GB, 28982640640 bytes, 56606720 sectors
 Units = sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
 Units = sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Connection to centos7.2daygeek.com closed.
        
 
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、