当前位置 主页 > 服务器问题 > win服务器问题汇总 >

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

    栏目:win服务器问题汇总 时间:2019-10-11 11:19

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

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

    这是怎么实现的?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.