雖然已是凌晨,但絲絕不能掩蓋我激動的心情,今天完成了對GotoSSH的一次大更新,新增了兩個肥腸實用的功能,我只能說,是真的好用,話很少說,先來看效果圖:git
普通的一鍵登陸:github
一鍵登陸跳板機,而後跳轉登陸線上服務器:shell
一鍵登陸跳板機查看指定日誌:vim
一鍵登陸跳板機後跳轉線上服務器查看指定日誌:服務器
而後是更加勁爆內容,一鍵從跳板機複製指定文件到本地:ssh
一鍵從生產環境複製指定文件到本地:3d
我只能說,是真的強。日誌
Shell腳本已經發布到了github
上,連接在此:https://github.com/MFrank2016/GotoSSHcode
可自行前往下載,好用的話別忘了給個star。server
CentOS :
$ sudo yum install -y expect
Ubuntu :
$ sudo apt-get install tcl tk expect
Mac :
$ sudo brew install expect
$ git clone https://github.com/MFrank2016/GotoSSH.git $ cd GotoSSH $ chmod a+x gotossh $ sudo cp gotossh /usr/local/bin/
$ vim ~/.gotossh_config server_name|ip|username|password|port|rely_server_no [Server1] command=tail -f -n 10 testlog.log [scp] log1=~/testlog.log
配置文件由三部分組成。
第一部分是服務器的基本信息。
server_name|ip|username|password|port|rely_server_no
舉個栗子:
JumpServer1|118.24.163.31|root|testpassword|22|0 OnlineServerB|111.231.59.85|root|testpassword2|22|1
最後一列是表明該服務器依賴於哪一個服務器,若是該列的值設置爲0,表明不依賴於其餘服務器,不然表明須要先登陸其餘服務器後才能登陸該服務器,目前暫時只支持二連跳,不支持多跳轉。
第二部分是自定義命令,你能夠在這裏爲每臺服務器單獨設置一些自定義命令。
[Server1] command=tail -f -n 10 testlog.log
Server1 表示如下是爲第一臺服務器設置的命令,同理Server2則表示爲第二臺設置的命令。對於順序沒有要求,只要爲須要設置自定義命令的服務器添加該選項便可。
command 是命令的名字,能夠隨意取名,最好簡單一點,方便輸入,等號後面是實際執行的命令。
舉個栗子:
gotossh 1 command
只要你小手一點回車,腳本便會自動幫你登陸到第一臺服務器,而後執行上面的命令tail -f -n 10 testlog.log
。
注意,若是你輸入的命令須要密碼的話,須要在命令後面把密碼也帶上,而且用|分隔。
舉個栗子:
[Server1] command=scp root@111.231.59.85:/var/log/test-service/test-service.log ./test-server.log|testpassword2
固然,強烈建議不要將相似rm -rf xxx
等敏感操做放到這裏,由於若是配置不當,容易引起事故。
配置文件的最後一部分是對於scp命令的支持。
[scp] log1=~/testlog.log log2=/var/log/test-service/test-service.log
log1 和 log2 都是隨意起的名字,後面是服務器上你想要複製的文件路徑,配置好以後,你就能夠這樣使用:
gotossh 1 scp log1
它就會自動把第一臺服務器上的~/testlog.log
文件複製到你的本地。
gotossh 2 scp log2
這個操做就更厲害了,由於第二臺服務器設置了對第一臺服務器的依賴,因此它會先登陸第一臺服務器,而後再複製第二臺服務器上的文件到第一臺服務器上,最後,退出服務器到本地,將第一臺服務器上的複製品再拷貝到本地。
配置文件舉例
$ vim ~/.gotossh_config JumpServer1|118.24.163.31|root|testpassword|22|0 OnlineServerB|111.231.59.85|root|testpassword2|22|1 [Server1] log=tail -f -n 20 testlog.log [Server2] log=tail -f -n 20 /var/log/test-service/test-service.log cd=cd /var/log/test-service/ [scp] log3=~/testlog.log log4=/var/log/test-service/test-service.log
用法
$ gotossh ###################################################################################### # [GOTO SSH] # # # # # # [1] test_server - 192.168.0.1:root # # [2] online_server - 192.168.2.2:root # # # # # ###################################################################################### Server Number:(Input Server Number Here)
gotossh 1 gotossh 2 gotossh 1 log gotossh 2 log gotossh 2 cd gotossh 1 scp log3 gotossh 2 scp log4
scp
命令的支持,能夠將線上服務器日誌一鍵拷貝到本地,豈不是美滋滋。最後再貼一下項目地址:https://github.com/MFrank2016/GotoSSH
若是以爲還不錯,別忘了加個star✨也歡迎關注個人公衆號留言交流。