通过 SSH 在远程机器上运行 Shell 脚本
摘要
如果无法远程控制计算机,很难想象会发生什么,因为远程访问计算机长期以来一直是必要的。对于基于 Linux 的机器,连接到远程机器的最佳方法是通过 SSH。SSH 客户端应用程序可用于登录到远程计算机或服务器并在该计算机上运行命令。当提供命令时,它会在远程主机或服务器上执行,而不是登录 shell。
用户经常需要处理远程系统,这要求他们登录到远程服务器,执行特定操作,然后结束该会话。ssh 客户端使之成为可能。在本教程中,我们将介绍一些用于在本地执行远程命令的 ssh 配置。
注意 - Linux 命令区分大小写。
SSH
“SSH”代表安全外壳或安全套接字外壳。连接到远程服务器时,安全外壳有助于安全性。由于使用了 ssh 命令使用的安全 ssh 协议,客户端和主机之间的数据传输以加密形式进行。它通过客户端将输入发送到主机,并接收主机发送的输出。TCP/IP 端口 22 用于其执行。
通过 SSH 运行命令
要从远程机器获取日期,让我们运行单个命令“date”。在以下示例中,我们将看到如何获取远程机器的日期,
示例
$ ssh [email protected] date
输出
Mon June 15 08:55:40 IST 2022
要获取远程机器的磁盘空间使用情况,让我们运行单个命令“df -h”。
在下面的示例中,我们将看到如何获取远程服务器的磁盘空间使用情况,
示例
$ ssh [email protected] ‘df -h’
输出
Filesystem Size Used Avail Use% Mounted on overlay 875G 24G 807G 3% / tmpfs 64M 0 64M 0% /dev shm 64M 0 64M 0% /dev/shm /dev/nvme0n1p3 875G 24G 807G 3% /home/cg/root tmpfs 63G 0 63G 0% /proc/acpi tmpfs 63G 0 63G 0% /proc/scsi tmpfs 63G 0 63G 0% /sys/firmware
运行 Shell 脚本
我们还可以使用 SSH 远程运行脚本,因此远程执行不仅限于命令。我们需要做的就是为 SSH 命令提供本地脚本的绝对路径。
让我们创建一个包含以下元素的简单 shell 脚本,并将其命名为“sys-info.sh”。
#! /bash/sh echo “Id” = “` w ` echo “Time” = “` date ` echo “Host” = “` hostnamectl `
现在,我们将使用“chmod”命令提供必要的权限,使此脚本可执行,并在远程机器上使用 ssh 命令运行 shell 脚本“sys-info.sh”。在生成的输出中,我们将获得主机名、ID 和日期,
示例
$ chmod +x sys-info.sh $ ssh [email protected] ./sys-info.sh
输出
Id = User Time = Tue Jan 28 07:18:55 IST 2022 Host = Static hostname: Ubuntu.tutorialspoint.com Icon name: computer-vm Chassis: vm Machine ID: 002f47b82af248f562d52f1c98f Boot ID: dca9a1ba06374d7d96678f94617 Virtualization: kvm Operating System: Ubuntu Linux (Core) CPE OS Name: cpe:/o:Ubuntu:Ubuntu:7 Kernel: Linux 5.13.0-40-generic.x86_64 Architecture: x86_64
结论
在本教程中,我们学习了如何使用 SSH 在远程机器上执行脚本。我们探讨了一些实际示例。使用 SSH 安全访问远程机器。首先,我们了解了如何通过运行使用 SSH 的单个命令(如日期和磁盘空间使用情况)来连接到远程机器。
稍后,我们创建了一个 shell 脚本,并使用 SSH 在远程机器上运行了该脚本。这些是在使用 SSH 访问远程机器时最实用的 Linux 命令及其示例。
希望您发现这些命令示例有用。