ホームページ >バックエンド開発 >PHPチュートリアル >SecureCRT_PHP チュートリアルでの Script スクリプトの使用経験
SecureCRT で VBSCRIPT スクリプトを使用すると、実際に作業効率が向上し、完全な自動化を実現できます。
SecureCRT は、スクリプト ツールの作成と運用という非常に優れたプラットフォームを提供します。 SecureCRT ツールで一般的に使用される関数をいくつか示します。
1. SecureCRT で最も一般的に使用される関数は crt.Screen です。基本的に、多くの操作は次の操作を決定するために画面の戻り値に基づいています。 (1): crt.Screen.WaitForString("KeyString",timewaiting)
この関数は単一文字列の判定です。KeyString は検索するキーワード、timewaiting はタイムアウトしきい値です。例: crt.Screen.WaitForString(") people:",5) このコード行は、people: が 5 秒以内に検出されない場合、次のステートメントが実行されることを意味します。これが crt.Screen.WaitForString("people:") に変更された場合、それはコードの次の行は、people: が表示されるまで実行されません。
WaitForString には戻り値があり、戻り値は True または False です。したがって、戻り値に基づいて条件判定を行い、次のコードを決定することができます。例:
If (crt.Screen.WaitForString ("current state : UP",1)
False) thenportStatus="PortUP" Else
portStatus="PortDown"
End If
msgbox portStatus
This段落 ポートの状態を判定して記録するコードです
(2): crt.Screen.WaitForStrings("KeyString1", "KeyString2",..., timeout)
複数の文字列を判定するために使用され、タイムアウト効果は同じです。例:
crt.Screen.WaitForStrings("cisco","huawei","H3C",5)
5 秒以内に対応する文字が検出されると、対応するインデックス番号が返されることを意味します (インデックス番号は1から始まります)。どちらもチェックされていない場合は、0 が返されます。 したがって、この関数の使用法は次のようになります。
Dim SwitchKey
SwitchKey=crt.Screen.WaitForStrings("cisco","huawei","H3C",5)
ケースSwitchKeyを選択
ケース1
ケース2
MsgBox「Huawei機器」
ケース3
MsgBox「H3D機器」
ケースその他
メッセージボックス「不明なデバイス」
選択終了
(3) 実際、SecureCRT でサポートされているスクリプト言語は VBS です。このスクリプト言語は VB とはまったく異なり、インターフェイスのサポートが不十分です。ただし、いくつかの会話関数もあります
, InputBox: ユーザーにパラメーターの入力を求めるtemp = inputbox("ユーザーにパラメーターの名前を入力するように求める", "ダイアログ ボックスの名前"): 入力パラメータは特定のパラメータに割り当てる必要があります。 1 つのパラメータが使用されます。
、出力関数 msgbox
msgbox "ユーザーに出力する情報ダイアログ ボックス"
例: 正方形の面積を求めるスクリプト
dim r,s
r=inputbox("辺の長さを入力してください正方形の:"," 正方形の面積を求めるプログラム")s=r*r
msgbox(s)
------ ---------------------------------------------------- --------------- -----------
ステートメントの構造:
1. 順次実行されるスクリプトについては、広く利用可能な例を取り上げます。インターネット上でシステムに自動的にログインする例を、次のように少し変更します。
# $ language = "VBScript"
# $interface = "1.0"Sub Main
'ホスト 192.168.0.2 に接続します
crt.session.Connect("/telnet 192.168.0.2")
crt.screen.WaitForString "login:",10
' ユーザー名を入力して Enter キーを押します
crt.screen.send "minico" & Chr(13)
'ログインパスワードのプロンプトが表示されるまで待ちます。待ち時間は 10 秒です
crt.screen.WaitForString "Password:",10
'パスワードを入力して Enter キーを押します
crt.screen.send "123456"
crt.screen .send Chr(13)
End Sub
if ... then ...else... 構造体と case 構造体、基本的な知識の例を参照
3. ループ構造体
スクリプト例
#====== =================================== =============
# $ language = "VBScript"
# $interface = "1.0"'================== ================ ================================= ================ =========='
' プログラム名: AIX.VBS' プログラムの説明: AIX ホスト システム構成/検査スクリプト
' 作成者: 鄭吉東
' 完成時期: 2008-5-7
'= ================================= ================ ================================= ========'
'==== ================================= ================ ================================= ====='
' プログラムグローバル変数領域
'== ================================== ================ ================================= ======='
'============================================== ============================================='
' 程序全局常量区
'============================================= ============================================== 「
」ボタンパラメータオプション
Const ICON_STOP = 16 ' エラー/停止アイコンを表示します。
Const ICON_QUESTION = 32 ' 「?」を表示します。 icon
Const ICON_WARN = 48 ' '!' を表示します。アイコン。
Const ICON_INFO= 64 ' 「情報」アイコンが表示されます。
Const BUTTON_OK = 0 ' OK ボタンのみ
Const BUTTON_CANCEL = 1 ' OK ボタンとキャンセル ボタン
Const BUTTON_ABORTRETRYIGNORE = 2 ' 中止、再試行、および無視ボタン
Const BUTTON _YESNOCANCEL = 3 ' はい、いいえ、キャンセル ボタン
Const BUTTON_YESNO = 4 ' はいおよびいいえのボタン
Const BUTTON_RETRYCANCEL = 5 ' 再試行およびキャンセルのボタン
Const DEFBUTTON1 = 0 ' 最初のボタンはデフォルトです
Const DEFBUTTON2 = 256 ' 2 番目のボタンはデフォルトです
Const DEFBUTTON3 = 512 'ボタンはデフォルトです
' 可能なメッセージボックス() 戻り値
Const IDOK = 1 ' OK ボタンがクリックされました
Const IDCANCEL = 2 ' キャンセルボタンがクリックされました
Const IDABORT = 3 ' 中止ボタンがクリックされました
Const IDRETRY = 4 '再試行ボタンがクリックされました
Const IDIGNORE = 5 ' ボタンがクリックされた場合は無視します
Const IDYES = 6 ' はいボタンがクリックされました
Const IDNO = 7 ' ボタンはクリックされません
'============================= ================================================= ============='
' 程序辅助関数数区
'============================ ================================================= ==============='
'登陆関数数
関数ログイン
'定义IP地址,登陆用户名,密码变量
dim passwd
dim username
Dim result
薄暗い旗
flag =1
'切断开主机接続
crt.session.Disconnect
'开启对话框,取得IP地址,登陆用户名,密码等变量
ip =入サーバーIPアドレス:" 、"AIX"、"192.1.1.207"、false)
If (Trim(ip) = "") Or (ip = IDABORT) then
result = crt.Dialog.MessageBox("您没有输入登陆的IPアドレス址,CRT将被退出!", "提案信息",ICON_INFO)
crt.quit
End If
flag =1
While flag = 1
username = crt.Dialog.Prompt("请输入登陆用户名:", " AIX ", "root", false)
If username = IDABORT then
result = crt.Dialog.MessageBox("您选择了没有输入用户名,CRT将被推出!", "提示情報",ICON_INFO)
crt.quit
If (Trim(ユーザー名)
passwd = crt.Dialog.Prompt("ログイン ユーザーのパスワードを入力してください:", " congine", true)
'ホストに接続します
crt.screen .Synchronous = true
crt.session.Connect("/telnet " & ip)
crt.screen.WaitForString "login:"
'ユーザー名を入力し、 Enterを押してください crt.screen.send username & chr(13)
'ログインするためにログインパスワードのプロンプトが表示されるまで待ちます。待ち時間は10秒です
crt.screen.WaitForString "Password:"
'パスワードを入力してEnterを押してください
crt.screen.send passwd & chr(13)
If crt.screen.WaitForString(" ログイン名またはパスワードが無効です", 3) = True then
crt .quit
End If
crt.screen.Synchronous = false
End Function
'現在のセッション ログ関数を記録する
Function writelog Dim result
Dim logfilename
Dim flag
flag =1
While flag =1
Logfilename = crt .Dialog.Prompt("このセッションの LOG ファイルの場所を入力してください", "AIX", "c: " & ip &".log", false)
If Trim(logfilename) = "" Or (logfilename = IDABORT) then
result = crt.Dialog.MessageBox("セッション ログを保存することを強く推奨します", "プロンプト メッセージ", ICON_INFO)
Name = ログファイル名
crt.session.Log( true)
Function setline
crt.screen.send chr(13) & chr(13)
' crt.Sleep 1000
End Function
関数セットコマンド(cmdstr, sec)
setline
sec = sec * 1000
crt.screen.send cmdstr & Chr(13)
crt.Sleep sec
'サーバー基本情報を取得
Function get_machiinfo
setcommand "hostname",1
setcommand "pr tconf |grep 'マシンシリアル番号'",6
'ホストデバイスの状態
setcommand "lsdev -C |grep proc",2
setcommand "lsattr -El mem0",2
setcommand "lsdev -Cc ディスク",2
setcommand "lsdev -Cc テープ",2
setcommand "ifconfig -a",2
setcommand "more /etc /hosts",2
'ホストソフトウェア情報
setcommand "uname -a ",2
setcommand "oslevel -s",5
setcommand "instfix -i |grep ML",10
'ホストボリュームグループ情報
setcommand "lsvg -o",2
SetCommand "LSVG -L ROOTVG", 2
' SetCommand "Errpt", 2
SetCommand "Errtt -a ", 2
SetCommand " sysdumpdev -l ",2
'ホストシステムのパフォーマンス
setcommand "lsps -a",2
setcommand "vmstat 2 10",25
'=========== = ================================================ = ================================'
' プログラム main 関数 (メイン) エリア
'===== = ================================================ = ====================================='
Sub Main
Dim 結果
' crt.screen.Synchronous = true
'システムログイン
ログイン
writelog
get_machiinfo
result = crt.Dialog.MessageBox("情報収集が完了しました。起動しますか? CRT?", " プロンプト メッセージ"、ICON_QUESTION または BUTTON_YESNO または DEFBUTTON2)
If result = IDYES then
crt.quit
End If
crt.session.Log(false)
' crt.screen.Synchronous = false
End Sub