1. 程式人生 > >SecureCRT for Android實現自動重啟、自動開啟logcat、自動定位特殊字串

SecureCRT for Android實現自動重啟、自動開啟logcat、自動定位特殊字串

SecureCRT版本資訊:
Version 8.1.3 (x64 build 1382)

此指令碼,主要用於Android測試,可用於自動重啟、自動輸出logcat等操作。

如何使用

SecureCRT—-Script—-Run…

SecureCRT----Script----Run...

# $language = "python"
# $interface = "1.0"

#Created by [email protected] on 2017/7/5.

#可根據盒子的實際輸出做調整

#等待開機輸出到串列埠上字串“lowmemorykiller: oom_adj 15 => oom_score_adj 1000”,便於此時機,執行logcat命令
reboot_start_ready = "lowmemorykiller: oom_adj 15 => oom_score_adj 1000" #捕捉開機過程中異常列印 #java.lang.NullPointerException #android.os.DeadObjectException #/data/anr/traces.txt reboot_Exception_Watchdog = "Watchdog" reboot_Exception_NullPointer= "java.lang.NullPointerException" reboot_Exception_DeadObject = "android.os.DeadObjectException"
reboot_Exception_anr = "/data/anr/traces.txt" #等待正常開機後的列印 reboot_start_end = "create /var/sky_stb_ChannelBackAndSmartEpg.cfg" #logcat命令 cmd_logcat = "logcat -v time" cmd_reboot = "reboot" def Main(): crt.Screen.Synchronous = True if not crt.Session.Connected: crt.Dialog.MessageBox("檢查SecureCRT是否已連結"
) return #重啟次數 reboot_count = 0 while True: #輸出重啟次數 #引數True表示傳送的是字串,非命令 crt.Screen.Send("\n重啟次數reboot_count=%d\n\n"%(reboot_count), True) #等待重啟至reboot_start_ready crt.Screen.WaitForString(reboot_start_ready, 30) #chr(3)傳送‘中斷鍵’、chr(13)傳送‘enter鍵’,等待shell crt.Screen.Send(chr(3)) crt.Screen.Send(chr(13)) crt.Screen.WaitForString("[email protected]:/ # ") #執行logcat命令 SendCmd(cmd_logcat) #等待正常開機字串標誌 #WaitForString未指定timeout時間,意味著一直等 result = crt.Screen.WaitForString(reboot_Exception_DeadObject, 90) if result == 0: #中斷cmd_logcat命令輸出,傳送ctrl + c crt.Sleep(2000) crt.Screen.Send(chr(3)) crt.Screen.Send(chr(3)) #記錄重啟次數 reboot_count += 1 #執行reboot命令 SendCmd(cmd_reboot) else: break def SendCmd(cmd): # Returns true if the text in 'send' was successfully sent and the # text in 'expect' was successfully found as a result. # If we're not connected, we can't possibly return true, or even # send/receive text if not crt.Session.Connected: return while True: crt.Screen.Send(cmd + chr(13)) #避免上一個chr(13)無效,多發一次,方便快捷。 crt.Screen.Send(chr(13)) #此處WaitForStrings含義在於:有的時候傳送到串列埠的字串會異常。 #匹配到cmd字串,返回1 #未匹配字串,返回0 #1表示等待超時1s result = crt.Screen.WaitForStrings(cmd, 1) #cmd if result == 1: break #多次傳送ctrl + c crt.Screen.Send(chr(3)) crt.Sleep(1000) crt.Screen.Send(chr(3)) #crt.Dialog.MessageBox(str(result)) return True Main()

相關推薦

SecureCRT for Android實現自動自動開啟logcat自動定位特殊字串

SecureCRT版本資訊: Version 8.1.3 (x64 build 1382) 此指令碼,主要用於Android測試,可用於自動重啟、自動輸出logcat等操作。 如何使用 SecureCRT—-Script—-Run…

Jetty插件實現熱部署(開發時修改文件自動Jetty)

max www. nbsp 很遺憾 pom als ati mave 重啟 在pom.xml文件中配置Jetty插件的參數:scanIntervalSeconds <plugin> <grou

Node.js熱部署代碼,實現修改代碼後自動服務方便實時調試

iso 用戶 使用方法 了解 super 幫助 應用 https js文件 寫PHP等腳本語言的時候,已經習慣了修改完代碼直接打開瀏覽器去查看最新的效果。而Node.js 只有在第一次引用時才會去解析腳本文件,以後都會直接訪問內存,避免重復載入,這種設計雖然有利於提高性能,

Docker容器可以使用容器平臺管理自動實現自修復嗎?

引入 管理 寫代碼 過多 來講 dock 網易 一個 doc 容器的自修復功能是經常被吹噓的。因為容器是衣服,人躺下了,衣服也躺下了,容器平臺能夠馬上發現人躺下了,於是可以迅速將人重新喚醒工作。 而虛擬機是房子,人躺下了,房子還站著。因而虛擬機管理平臺不知道裏面的人能不

Supervisor的作用與配置:實現對異常中斷的子進程的自動

對異常中斷的子進程的自動重啟Supervisor的作用與配置:實現對異常中斷的子進程的自動重啟supervisor管理進程,是通過fork/exec的方式將這些被管理的進程當作supervisor的子進程來啟動,所以我們只需要將要管理進程的可執行文件的路徑添加到supervisor的配置文件中就好了。此時被管

[2]supervisor的使用管理:實現對異常中斷的子進程的自動(以redis為例)

program usr AI turn red 重新啟動 自動 t權限 可執行文件 1:下載wget http://download.redis.io/releases/redis-3.2.8.tar.gz1下載指定版本,可以登錄https://redis.io/downl

[4]supervisor使用管理:實現對異常中斷子進程的自動(以mysql為例)

grep -v rem iad apple mysq round true com 子進程 實現進程服務管理,supervisort監聽到進程死後,會自動將它重新拉起,很方便的做到進程自動恢復的功能,不再需要自己寫shell腳本來控制安裝過程1、到官網下載最新版本,解壓編譯

[3]supervisor使用管理:實現對異常中斷子進程的自動(以nginx和apache為例)

ria std super -s zip inux ecs 核數 down Web服務器Nginx的安裝與配置卸載老版本的Nginxsudo apt-get --purge remove nginxsudo apt-get autoremove dpkg --get-sel

VS2010 MFC Dialog實現程式自動

    VS2010 MFC Dialog 做了一個小專案,需要實現自動重啟,搜了一些文章,各有優缺點,所以將這些文章做了一下簡單的綜合,下面是自己的實現過程,並附上了參考文章連結,希望能給新手帶來幫助。 1. 先建一個VS2010 MFC Dialog 工程,此處之所

Keepalived實現心跳檢測實現自動

專案中伺服器如果發生宕機:1、故障轉移 2、心跳檢測 3、負載均衡 4、自動重啟   心跳檢測: 心跳檢測指令碼: 寫入nginx_check.sh指令碼 vi  /etc/keepalived/nginx_check.sh   #!/bin/bashA=`

android 安裝後自啟動 和 靜默安裝後自動

安裝後自啟動很久之前的問題了 今天剛好遇到 記錄一下:新增兩行命令就搞定了 一般的安裝 Intent intent = new Intent(); //執行動作 intent.setAction(Intent.ACTION_VIEW);

Shell指令碼實現軟體一鍵安裝和自動(一)

前言 在LINUX開發過程中,往往需要對已經開發好的軟體進行打包,一鍵安裝後程序能自動後臺啟動,當程序意外關閉後能自動重啟,本篇來介紹實現過程。 業務分析 對功能進行拆分 1、實現程式後臺執行,掛掉重啟的監聽器指令碼 2、將監聽器指令碼放入開機啟動項 3、實現軟體

SHELL指令碼實現服務宕機監控自動

需要先安裝 yum install stat  crontabs (本例項在centos系統下) #!/bin/bash #Shell ##根據修改檔案時間進行監控## content=`ls -l /tmp/log.txt | awk '{ print $5 }'`  

php-fpm容易假死,實現自動php服務的指令碼 通過後

通過後臺一直執行,檢測有問題就重啟。指令碼程式碼很少,語句很簡單,消耗系統資源非常低,可以試試。 感覺挺笨的方法,不過有效,呵呵~ #!/bin/bash #check php-fpm server up/down TelLog=/tmp/telphp.log while : do sleep 15

android app崩潰後自動

1.偶然發現專案因為一場崩潰後,自動重啟到上一介面。因為未知原因,重啟後fragment顯示有誤,需要殺死程序後才能正常適應app。悲劇的是,因為馬上就重啟程序 了,導致LOG中看不到異常原因。非常不好除錯。 2.經過查資料得知,這些都是google的一種策略,當app崩潰

Android 開發之Service 探索如何保證Service不被殺死或被kill之後自動

前言: 在我司專案1.0版本的時候訊息是使用的環信、用了之後發現各種bug,各種機型不支援導致app崩潰,於是在2.0版本果斷去掉環信,使用了公眾號用的那套訊息系統(老大自己寫的)並做了擴充套件升級。

解決android系統進行OTA升級失敗時進入recovery介面不能自動問題

1.前言          在使用android系統中我們肯定需要對其進行OTA升級,因專案原因,我們機器升級頻率比較高,android系統升級出現失敗的情況肯定是有的,原因用多方面,下面會說到。升級

Android Service被關閉後自動,解決被異常kill 服務

Android開發的過程中,每次呼叫startService(Intent)的時候,都會呼叫該Service物件的onStartCommand(Intent,int,int)方法,然後在onStartCommand方法中做一些處理。然後我們注意到這個函式有一個int的返回值,

SpringBoot自動熱啟動

SpringBoot自動重啟的兩種方法: 1)在專案的pom中直接新增plugin,如下: <build> <plugins> <plugin> <groupId&g

Android一個APP檢測另一個APP的Service被殺死時自動服務

例如:appA要檢測啟動appB中的service 1.修改B中Service啟動時的FLAG @Override public int onStartCommand(Intent