自動化重啓JMeter Server

使用paramiko類

import paramiko

try:
   s = paramiko.SSHClient()
   s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   s.connect(hostname=server, username='root', password=password)
   # 1. 查看JMeter進程
   stdin, stdout, stderr = s.exec_command('cd /home/jmeter; ps -ef | grep jmeter; pwd')
   print(stdout.read())
   # 2. 殺掉JMeter進程
   stdin, stdout, stderr = s.exec_command("cd /home/jmeter; ps -ef | grep java | awk '{print $2}' | xargs kill -9; pwd")
   print(stdout.read())
   # 3. 查看JMeter進程
   stdin, stdout, stderr = s.exec_command('cd /home/jmeter; ps -ef | grep jmeter; pwd')
   print(stdout.read())
   # 4. 重新啓動JMeter
   stdin, stdout, stderr = s.exec_command('cd /home/jmeter; nohup /usr/jmeter/apache-jmeter-4.0/bin/jmeter-server >nohup.out 2>&1 &')
   print(stderr.read())
   # 5. 查看JMeter進程
   stdin, stdout, stderr = s.exec_command('cd /home/jmeter; ps -ef | grep jmeter; pwd')
   print(stdout.read())
   s.close()
except Exception as e:
   print(e)

可以直接執行2和4

 

Ques1: 代碼實現重啓server,nohup jmeter-server & 無效

https://blog.csdn.net/weixin_30865427/article/details/94844952

1.路徑問題,用腳本執行找不到jmeter-server

nohup /usr/jmeter/apache-jmeter-4.0/bin/jmeter-server &

另外修改爲

nohup /usr/jmeter/apache-jmeter-4.0/bin/jmeter-server >nohup.out 2>&1 &

對於& 1 更準確的說應該是文件描述符 1,而1標識標準輸出,stdout。
對於2 ,表示標準錯誤,stderr。
2>&1 的意思就是將標準錯誤重定向到標準輸出。

最後的一個&表示掛在後臺執行,即後臺

輸出日誌到nohup.out

Ques2: paramiko每次執行都會回到root路徑

stdin, stdout, stderr = s.exec_command('cd /home/jmeter; nohup /usr/jmeter/apache-jmeter-4.0/bin/jmeter-server >nohup.out 2>&1 &')

笨方法:在每個命令前加上'cd /home/jmeter;'

利用別的類可以實現在一個路徑下執行,但是想要paramiko,也是可以實現的。後續再鑽研。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章