透過 SSH 在遠端機器上執行 Shell 指令碼


摘要

如果無法遠端控制計算機,很難想象會發生什麼,因為遠端訪問計算機長期以來一直是必要的。對於基於 Linux 的機器,連線到遠端機器的最佳方法是透過 SSH。SSH 客戶端應用程式可用於登入到遠端計算機或伺服器並在該計算機上執行命令。當提供命令時,它會在遠端主機或伺服器上執行,而不是登入 shell。

使用者經常需要處理遠端系統,這要求他們登入到遠端伺服器,執行特定操作,然後結束該會話。ssh 客戶端使之成為可能。在本教程中,我們將介紹一些用於在本地執行遠端命令的 ssh 配置。

注意 - Linux 命令區分大小寫。

SSH

“SSH”代表安全外殼或安全套接字外殼。連線到遠端伺服器時,安全外殼有助於安全性。由於使用了 ssh 命令使用的安全 ssh 協議,客戶端和主機之間的資料傳輸以加密形式進行。它透過客戶端將輸入傳送到主機,並接收主機發送的輸出。TCP/IP 埠 22 用於其執行。

透過 SSH 執行命令

要從遠端機器獲取日期,讓我們執行單個命令“date”。在以下示例中,我們將看到如何獲取遠端機器的日期,

示例

$ ssh webmaster@172.17.0.2 date

輸出

Mon June 15 08:55:40 IST 2022

要獲取遠端機器的磁碟空間使用情況,讓我們執行單個命令“df -h”。

在下面的示例中,我們將看到如何獲取遠端伺服器的磁碟空間使用情況,

示例

$ ssh webmaster@172.17.0.2 ‘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 Linux@172.17.0.2 ./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 命令及其示例。

希望您發現這些命令示例有用。

更新於: 2022-12-19

7K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.