国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 詳解SSH 遠程執行任務的方法

詳解SSH 遠程執行任務的方法

2020-07-09 09:14sparkdev Linux

本篇文章主要介紹了詳解SSH 遠程執行任務的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

SSH 是 Linux 下進行遠程連接的基本工具,但是如果僅僅用它來登錄那可是太浪費啦!SSH 命令可是完成遠程操作的神器啊,借助它我們可以把很多的遠程操作自動化掉!下面就對 SSH 的遠程操作功能進行一個小小的總結。

遠程執行命令

如果我們要查看一下某臺主機的磁盤使用情況,是不是必須要登錄到目標主機上才能執行 df 命令呢?當然不是的,我們可以使用 ssh 命令在遠程的主機上執行 df 命令,然后直接把結果顯示出來。整個過程就像是在本地執行了一條命令一樣:

$ ssh nick@xxx.xxx.xxx.xxx "df -h"

那么如何一次執行多條命令呢?其實也很簡單,使用分號把不同的命令隔起來就 OK 了:

$ ssh nick@xxx.xxx.xxx.xxx "pwd; cat hello.txt"

第一條命令返回的結果: /home/nick

這說明用這種方式執行命令時的當前目錄就是登陸用戶的家目錄。

第二條命令返回 hello.txt 文件的內容。

注意,當命令多于一個時最好用引號括起來,否則在有的系統中除了第一個命令,其它都是在本地執行的。

詳解SSH 遠程執行任務的方法

執行需要交互的命令

有時候我們需要遠程執行一些有交互操作的命令。

$ ssh nick@xxx.xxx.xxx.xxx "sudo ls /root"
$ ssh nick@xxx.xxx.xxx.xxx "top"

詳解SSH 遠程執行任務的方法

這兩條命令雖然提示的失敗原因不同,但它們有一個共同點:都需要與用戶交互(需要 TTY)。所以它們失敗的原因也是相同的:
默認情況下,當你執行不帶命令的 ssh 連接時,會為你分配一個 TTY。因為此時你應該是想要運行一個 shell 會話。

但是當你通過 ssh 在遠程主機上執行命令時,并不會為這個遠程會話分配 TTY。此時 ssh 會立即退出遠程主機,所以需要交互的命令也隨之結束。

好在我們可以通過 -t 參數顯式的告訴 ssh,我們需要一個 TTY 遠程 shell 進行交互!

添加 -t 參數后,ssh 會保持登錄狀態,直到你退出需要交互的命令。

詳解SSH 遠程執行任務的方法

作為總結,我們看看 -t 參數的官方解釋:

"Force pseudo-terminal allocation.  This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t options force tty allocation, even if ssh has no local tty."
好吧,更強悍的是我們居然可以指定多個 -t 參數!

執行多行的命令

有時候我們可能需要隨手寫幾行簡單的邏輯,這也沒有問題,ssh 能輕松搞定!

詳解SSH 遠程執行任務的方法

你可以用單引號或雙引號開頭,然后寫上幾行命令,最后再用相同的引號來結束。

那么如果需要在命令中使用引號該怎么辦?

其實針對類似的情況有一條比較通用的規則,就是混合使用單雙引號。這條規則在這里也是適用的:

詳解SSH 遠程執行任務的方法

當我們在命令中引用了變量時會怎么樣呢?

詳解SSH 遠程執行任務的方法

請注意上圖中的最后一行,并沒有輸出我們期望的 nick。這里多少有些詭異,因為如果變量沒有被解釋的話,輸出的應該是 $name 才對。但是這里卻什么都沒有輸出。

對于引用變量的寫法,可以通過下面的方式保證變量被正確解釋:

詳解SSH 遠程執行任務的方法

注意,我們在上圖的命令中為 bash 指定了 -c 參數。

遠程執行腳本

對于要完成一些復雜功能的場景,如果是僅僅能執行幾個命令的話,簡直是弱爆了。我們可能需要寫長篇累牘的 shell 腳本去完成某項使命!此時 SSH 依然是不辱使命的好幫手(哈哈,前面的內容僅僅是開胃菜啊!)。

執行本地的腳本

我們在本地創建一個腳本文件 test.sh,內容為:

ls
pwd

然后運行下面的命令:

$ ssh nick@xxx.xxx.xxx.xxx < test.sh

詳解SSH 遠程執行任務的方法

通過重定向 stdin,本地的腳本 test.sh 在遠程服務器上被執行。

接下來我們我期望能為腳本 test.sh 傳遞一個參數,為了驗證傳入的參數,在 test.sh 文件的末尾添加兩行:

echo $0
echo $1

然后嘗試執行下面的命令:

$ ssh nick@xxx.xxx.xxx.xxx < test.sh helloworld
$ ssh nick@xxx.xxx.xxx.xxx < "test.sh helloworld"

下圖顯示了執行的結果:

詳解SSH 遠程執行任務的方法

看來上面的方法都無法為腳本傳遞參數。
要想在這種情況下(遠程執行本地的腳本)執行帶有參數的腳本,需要為 bash 指定 -s 參數:

$ ssh nick@xxx.xxx.xxx.xxx 'bash -s' < test.sh helloworld

詳解SSH 遠程執行任務的方法

在上圖的最后兩行,輸出的是 "bash" 和 "helloworld" 分別對應 $0 和 $1。

執行遠程服務器上的腳本

除了執行本地的腳本,還有一種情況是腳本文件存放在遠程服務器上,而我們需要遠程的執行它!
此時在遠程服務器上用戶 nick 的家目錄中有一個腳本 test.sh。文件的內容如下:

ls
pwd

執行下面的命令:

$ ssh nick@xxx.xxx.xxx.xxx "/home/nick/test.sh"

詳解SSH 遠程執行任務的方法

注意,此時需要指定腳本的絕對路徑!

下面我們也嘗試為腳本傳遞參數。在遠程主機上的 test.sh 文件的末尾添加兩行:

echo $0
echo $1

然后嘗試執行下面的命令:

$ ssh nick@xxx.xxx.xxx.xxx /home/nick/test.sh helloworld

詳解SSH 遠程執行任務的方法

真棒,最后兩行 "/home/nick/test.sh" 和 "helloworld" 分別對應 $0 和 $1。

總結

本文通過 demo 演示了 ssh 遠程操作的基本方式。這些基本用法將為我們在更復雜的場景中完成各種艱巨的任務打下基礎。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/sparkdev/p/6842805.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩在线视频播放 | 欧美性生活片 | 国产精品一区二区无线 | 日本一区不卡 | 久久99国产一区二区三区 | 日本福利网站 | 日韩一区二区三区电影在线观看 | av一区在线观看 | 成人片免费看 | 精品一区二区在线观看 | 日韩免费av一区二区 | 欧美日韩久久久 | 在线观看黄| 欧美精品一区二区三区在线播放 | 美女一区 | 日韩一二三区视频 | 欧美日韩视频在线第一区 | 三区在线 | 欧美片网站免费 | 日韩一区二区三区四区 | 成人av一区二区三区 | 久久久人成影片一区二区三区 | 日韩一区二区精品视频 | 欧美成人免费网站 | 欧美黄色一区二区三区 | 91精品久久久久久久91蜜桃 | 久操视频在线 | 精品久久久久久久久久久久久久 | 日韩欧美~中文字幕 | 日本大人吃奶视频xxxx | 视频一二区 | 国产在线视频一区二区 | 国产在线精品一区二区 | 久久成人人人人精品欧 | 亚洲www啪成人一区二区 | 色综合天天综合网国产成人网 | 制服诱惑一区二区 | 中文字幕在线电影观看 | 精品久久久久久久久久久 | 亚洲激情在线播放 | 91精品国产高清一区二区三区 |