前面的部落格完成了乙個簡單的定時刪除日誌的指令碼,但由於現在又多台伺服器,需要在多台伺服器上執行刪除日誌操作的指令碼,有很多辦法,我想到的方法,乙個是,可以將指令碼部署到這些伺服器上,然後在每台伺服器上使用crontab來定時執行,但是如果伺服器太多的話,就比較繁瑣;還有乙個辦法就是通過指令碼去登入伺服器,執行指令碼,去完成操作,那怎樣才能用指令碼登入伺服器呢?
這裡主要要用到乙個linux的工具:expect,下面寫乙個簡單的例項來測試,命名為temp.sh
#!/usr/bin/expect
set timeout 10
spawn ssh -p 6022 [email protected]
expect
}interact
然後用sh temp.sh,出現錯誤:spawn:command not found
通過查詢資料,原來expect用的不是bash,所以不能用sh,通過./來執行:./temp.sh
出現錯誤:沒有許可權操作,那就改一下檔案的許可權:chmod 744 temp.sh
然後再:./temp.sh
然後成功登陸,這裡先完成了一小步。
突然想起乙個小問題,如果沒有安裝expect工具的,可以這樣安裝:
yum install expect
也有可能遇到問題,我遇到了如下問題:
沒有找到公鑰,不能安裝
可以這樣安裝:
yum --nogpgcheck install expect
這樣就可以跳過公鑰,直接安裝,結果圖:
這樣就安裝成功了。(ps:需要清楚yum命令的,可以自己查一下)
通過以上的方式就可以實現通過指令碼進行ssh登入伺服器了。
SSH登入遠端伺服器的Shell指令碼
製作ssh登入遠端伺服器的shell指令碼 ubuntu環境需要安裝expect安裝包 sudo apt get install expect使用shell指令碼自動ssh登入遠端伺服器 login.sh usr bin expect f 設定ssh連線的使用者名稱 set user liuben ...
如何使用SSH登入遠端伺服器
預設配置 windows下有很多ssh工具。在這裡我是用的是命令列。使用ssh連線伺服器的命令如下 ssh 使用者名稱 ip位址 p 埠號 1如果連線成功的話會提示你輸入遠端伺服器的密碼。全部成功之後ssh就會顯示遠端伺服器的提示符,這時候就說明連線成功了。金鑰登入 每次登入sh都需要輸入密碼很麻煩...
Mac 使用SSH遠端登入伺服器
可以通過mac自帶的ssh工具遠端登入雲主機,首先需要確保mac允許使用遠端登入,具體操作就是 系統偏好設定 共享 勾選遠端登入,一般僅允許系統使用者就可以了。首先需要在終端下確認當前使用者目錄下是否有.ssh目錄。在終端下切換到當前使用者目錄使用 ls a。ssh目錄是隱藏的。需要使用這個命令來檢...