環(huán)境:Python3.6.5? Pycharm
備注:python連接遠(yuǎn)程機盆顾,需要借助paramiko庫玖媚,因此此腳本主要為paramiko的使用
#!/usr/bin/env python
//定義這是一個python腳本
#coding:utf8
//定義編碼方式
import paramiko
//導(dǎo)入paramiko庫
? ssh = paramiko.SSHClient()
//定義ssh為SSH的客戶端
? ? ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
? ? ssh.connect(hostname='IP地址', port='端口號', username='用戶名', password='用戶名密碼')
? ? stdin, stdout, stderr = ssh.exec_command("要執(zhí)行的linux命令")
? ? print(stdout.read())
//打印輸出的結(jié)果
? ? ssh.close()
//關(guān)閉連接
需要注意的是惑芭,執(zhí)行l(wèi)inux命令時盅安,單條與多條的使用方法不一致
stdin, stdout, stderr = ssh.exec_command("要執(zhí)行的linux命令") -------單條
stdin, stdout, stderr = ssh.exec_command("多條Linux命令面殖,每條命令直接用;分隔",get_pty=False)-----多條
而常使用的Linux命令如下:
1震缭、ps -ef | grep 服務(wù) | grep -v grep | awk '{print $2}'|xargs kill -9
//找到要重啟的服務(wù)并kill掉之前的進(jìn)程
2嚣伐、cd /root/env/tomcat-biz/bin;./startup.sh
//tomcat的啟動方式
3糖赔、nohup java -jar jar包名.jar >run.log 2>&1 &
//jar包的啟動方式
使用中遇到的問題:
1、nohup無法調(diào)起jar包
解決方式:使用nohup命令前轩端,重啟一下配置文件. /etc/profile
2放典、腳本運行完成后,部分模塊報錯
解決方式:部分服務(wù)需要優(yōu)先啟動基茵,因此啟動后奋构,需要sleep一段時間,因此需要導(dǎo)入time模塊
完整代碼如下:
#!/usr/bin/env python
#coding:utf8
import paramiko
import time
def redis():
? ? ssh = paramiko.SSHClient()
? ? ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
? ? ssh.connect(hostname='IP地址', port='端口號', username='用戶名', password='用戶密碼')
? ? stdin, stdout, stderr = ssh.exec_command("多條linux命令",get_pty=False)
? ? print('redis:', stdout.read())
? ? ssh.close()
? ? time.sleep(30)
//redis啟動拱层,zookeeper和cache相同
def priority():
? ? 需要優(yōu)先啟動的模塊声怔,內(nèi)部邏輯如上
? ? time.sleep(10)
def dubbo():
????? dubbo各模塊啟動,內(nèi)部邏輯如上
? ??? time.sleep(30)
def gateway():
???? 網(wǎng)關(guān)重啟(一般為最后一步舱呻,內(nèi)部邏輯如上)
if __name__ == '__main__':
? ? redis()
? ? zookeeper()
? ? cache()
? ? priority()
? ? dubbo()
? ? gateway()
? ? print('環(huán)境啟動完成')
//主函數(shù)醋火,啟動完成后告知“環(huán)境啟動完成”