ssh遠程執行遇到的一些坑


一、python模塊選擇

subprocess:用check_ouput 本想接收返回,但是傳參麻煩、執行過程的各種權限問題,最終放棄

os.system:簡單粗暴,直接本機執行,最終用這個。缺點是,只有返回碼

Tip:python執行命令行不要太過復雜,否則各種奇葩問題無法排查;可以寫到shell腳本里面,python去調用腳本

 

二、命令行寫法

1.所以盡量別用 sh 命令去啟動腳本(雖然本地能成功啟動)。第1)種寫法,死活沒法啟動服務

  1):sshpass -p xxx ssh root@xxx.xxx.xxx.xxx sh  /mnt/home/deploy/credit/pld-risk/service.sh service start

  2):sshpass -p xxx ssh root@xxx.18.xxx.140 'cd /mnt/home/deploy/credit/pld-risk/ && ./service.sh service start'

2.命令中java,最好用絕對路徑

cmd = '/usr/local/jdk1.8.0_181/bin/java -jar {}/jacoco/lib/jacococli.jar dump --destfile {}-test.jacoco.exec'.format(settings.COVERAGE_HOME, os.path.join(self.service_dir, self.service_name))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM