工具|sync-deploy:用命令掌握你的遠(yuǎn)程主機(jī)

不知道你是否也曾像我一樣面對(duì)這樣的問題:想要簡單的在遠(yuǎn)程主機(jī)上上傳下載數(shù)據(jù)文件、運(yùn)行個(gè)命令,但要么需要通過ssh直接登錄主機(jī),要么需要頻繁的輸入ssh或scp等命令以及ip地址,密碼。

sync-deploy工具集是我去年在解決這樣的問題以及遠(yuǎn)程部署PBS計(jì)算任務(wù)不便時(shí)開始寫,其實(shí)質(zhì)是一堆shell腳本。最近考慮到我有時(shí)候需要增加主機(jī)、切換主機(jī),于是又新增了相應(yīng)的命令,因此也再次匯總整理一下這些命令。

只要系統(tǒng)可以執(zhí)行shell,基本都能用這個(gè)工具,因?yàn)樗膶?shí)現(xiàn)基本就是對(duì)ssh和scp的封裝。

下面我對(duì)目前可用的10個(gè)命令進(jìn)行簡要介紹,一些詳情可以閱讀https://github.com/ShixiangWang/sync-deploy。

主要分為下載、配置和使用三部分,前兩部分都是一次性步驟。

下載

點(diǎn)擊下載

或克?。?/p>

git clone https://github.com/ShixiangWang/sync-deploy.git

下載后執(zhí)行add_path.sh腳本將命令添加到環(huán)境路徑中,這樣無論你處于什么目錄都能使用。

cd sync-deploy/src
./add_path.sh

如果是蘋果系統(tǒng),默認(rèn)會(huì)將路徑寫入~/.bash_profile;如果是其他系統(tǒng),默認(rèn)會(huì)寫入~/.bashrc。如果使用的其他sh,比如zsh,那么系統(tǒng)識(shí)別路徑不是上述兩者,可以通過-d選項(xiàng)指定。

除了sync-command命令沒有選項(xiàng),其他命令基本都有選項(xiàng)需要指定。

準(zhǔn)備與配置

首先在服務(wù)器端配置本地機(jī)器的公鑰,以便于實(shí)現(xiàn)無密碼文件或命令傳輸。

最簡單的方式是在終端鍵入ssh-keygen然后一路按回車鍵。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/wangshx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/wangshx/.ssh/id_rsa.
Your public key has been saved in /c/Users/wangshx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XaNcpRZHmMp65eHKDzYIzbXYB0ZAb3EHYc7T3azgQD4 wangshx@wsx-liuxslab
The key's randomart image is:
+---[RSA 2048]----+
|       .o.+ **=  |
|         = *oB o.|
|         .E.@ . +|
|       o Oo@o+ . |
|      . S.*+o..  |
|       .....o    |
|        .o+.     |
|         .oo     |
|           ..    |
+----[SHA256]-----+

如果你使用的是windows7或者10,不知道怎么使用ssh,我推薦你安裝git bash,windows10用戶也可以開啟Ubuntu子系統(tǒng)以便于使用。

將公鑰id_sra.pub(本地機(jī)器.ssh子目錄下)中文本內(nèi)容拷貝到服務(wù)器.ssh子目錄中的authorized_keys中,放在已有文本后面。如果該文件不存在則創(chuàng)建。

進(jìn)行測試,如果不需要密碼登錄則成功。

然后點(diǎn)擊打開當(dāng)前目錄(src/)的sync-setting文件,將遠(yuǎn)程主機(jī)的host名與ip地址改為你自己的(也可以使用后面的sync-hostadd命令)。

如果ssh服務(wù)還沒有開啟,請(qǐng)參考https://www.linuxidc.com/Linux/2015-01/112045.htm解決。

使用

使用可以分為4種類型:

  • 上傳/下載文件
  • 運(yùn)行命令或腳本
  • 增加/刪除以及切換主機(jī)
  • PBS任務(wù)計(jì)算

下面我列出對(duì)應(yīng)的命令,使用非常簡單,可以通過命令 + h選項(xiàng)的方式閱讀使用說明(除了sync-command),比如sync-download下載文件(文件夾):

Usage: sync-download -n 'remote_files' -d localdir
>>> remote_files: files you wanna download, can be directories or filenames
>>> localdir: The only one directory you wanna transfer to.
>>>          Do not set more than one destdir, error will occur.
>>>     Please do note the 'remote_files' must be quoted otherwise you use absolute file path!!!
>>>
>>> examples:
              sync-download -n '~/test/*' -d ./test
         or
              sync-download -n /public/home/liuxs/test/* -d ./test

上傳/下載文件

  • sync-upload - 上傳文件(夾)
  • sync-download - 下載文件(夾)

運(yùn)行命令或腳本

  • sync-commad - 后面直接接運(yùn)行的遠(yuǎn)程主機(jī)命令,命令最好用引號(hào)括起來,以與本地主機(jī)命令或文件/路徑區(qū)別

比如查看遠(yuǎn)程主機(jī)家目錄,為展示區(qū)別,我看看本地主機(jī)家目錄:

$ sync-command 'ls'
biodata
download
practice
readme.md
soft
tmp
workspace
zhuqi
$ ls
Applications Documents    Library      Music        Public
Desktop      Downloads    Movies       Pictures
  • sync-run 運(yùn)行遠(yuǎn)程主機(jī)可執(zhí)行文件

增加/刪除以及切換主機(jī)

  • sync-hostadd 增加主機(jī)
  • sync-hostdel 刪除主機(jī)
  • sync-switch 切換主機(jī)

PBS任務(wù)計(jì)算

  • sync-template 新建PBS任務(wù)模板
  • sync-deploy 部署PBS計(jì)算任務(wù)
  • sync-check 檢查PBS任務(wù)狀態(tài)

配合使用,威力無窮~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容