透過 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 命令及其示例。
希望您發現這些命令示例有用。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP