前几天我在测试如何 在复制文件或目录时保持文件权限不变 到多个位置和系统。 当我想检查远程系统上的文件权限时,我必须通过 SSH 登录到该系统并检查属性。 多次从远程系统登录和注销的过程对我来说有点烦人。 我认为如果我能够通过 SSH 在远程 Linux 系统上执行命令会更好。
幸运的是,我在查看手册页后找到了解决方法 ssh
命令。 如果您想知道如何从本地系统本身在远程系统上运行命令或脚本,而无需登录到该远程系统,这里是如何做到的。
内容
通过 SSH 在远程 Linux 系统上执行命令
从本地系统通过 SSH 在远程系统上运行命令或脚本的典型方法是:
$ ssh <[email protected]_Address-or-Doman_name> <Command-or-Script>
请允许我给你看一些例子。
通过 SSH 在远程系统上运行单个命令
让我们说你想 查找内核详细信息 您的远程 Linux 系统。 为此,只需运行:
$ ssh [email protected] uname -a
这里,
sk
是我的远程系统的用户名,192.168.225.22
是远程系统的 IP 地址,- 和
"uname -a"
是我想从本地系统在远程系统上运行的命令。
样本输出:
看? 我实际上并没有登录到远程系统,但执行了 uname
通过 SSH 在远程系统上执行命令,并在本地系统的终端中显示输出。
您还可以在引号中指定命令,如下所示。
$ ssh [email protected] "uname -a"
或者,
$ ssh [email protected] 'uname -a'
如果你有 更改 SSH 协议的默认端口,只需提及它使用 -p
参数如下。
$ ssh -p 2200 [email protected] uname -a
通过 SSH 在远程系统上运行多个命令
您还可以通过在下面的引号中指定它们来在遥控器上运行多个命令。
$ ssh [email protected] "uname -r && lsb_release -a"
或者,
$ ssh [email protected] "uname -r ; lsb_release -a"
上述命令将显示我的 Ubuntu 服务器的内核版本和分发详细信息。
样本输出: