忍者ブログ

◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例

   

【TTL】TTL_LOGIN

;; FILENAME【TTL_LOGIN.ttl】
;; ************************************
;; ■ タイムアウト値の設定
;; ************************************
timeout=10                           ;; ■ タイムアウト値の設定
statusbox 'ログイン用のマクロ実行' '【★】'
;; ************************************
;; ■ 引数パラメータの値を格納する
;; ************************************
paramIP = params[2]                  ;; ■ 接続先IPアドレス
paramUSER = params[3]                ;; ■ ユーザー名
paramPASSWORD = params[4]            ;; ■ パスワードのdatファイル
paramINI = params[5]                 ;; ■ INIファイル
paramAUTH = params[6]                ;; ■ 認証方式(password/challenge)
paramVALUE = params[7]               ;; ■ 判別する為の値(root.dat)⇒ルート切替のパスワード設定
paramHOST = params[8]                ;; ■ ホスト名
DECRYPT = ''                         ;; ■ 複合化パスワード変数の初期化
;; ************************************
;; ■ 復号化したパスワード文字列の取得
;; ************************************
getpassword ParamPASSWORD ParamUSER DECRYPT ;; ■ 複合化パスワード取得
;;▼▲▼▲▼▲▼▲▼▲▼▲▼▲
;;■ 値の判定(CSVファイルのE列の文字)
;;■ RDP 又は TeraTerm での接続処理が分岐する
;;▼▲▼▲▼▲▼▲▼▲▼▲▼▲
strscan paramVALUE 'RDP'             ;; ■ 文字列の値に「RDP」を含むか判定する
if result <> 0 then                  ;; ■ リザルト値 0 以外の場 ⇒ RDP接続
;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
;;╋ RDP接続の処理
;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
 ;; ************************************
 ;; ■ 資格情報の作成
 ;; ************************************
  sprintf2 KEYINFO "cmdkey /generic:TERMSRV/%s /user:%s /pass:%s" ParamIP ParamUSER DECRYPT
  exec KEYINFO
 ;; ************************************
 ;; ■ 環境変数にMSTSC格納
 ;; ************************************
  RDPPATH = "%windir%\system32\mstsc.exe"
  expandenv RDPPATH
 ;; ************************************
 ;; ■ リモートデスクトップ接続コマンド実行
 ;; ************************************
  sprintf2 EXEPATH "%s /v:%s" RDPPATH ParamIP
  exec EXEPATH
 ;; ************************************
 ;; ■ 待機時間
 ;; ************************************
  statusbox DECRYPT '【パスワード】'
  pause 15
 ;; ************************************
 ;; ■ 資格情報の削除
 ;; ************************************
  sprintf2 KEYINFO "cmdkey /delete:TERMSRV/%s" ParamIP
  exec KEYINFO
  end                                ;; ■ TeraTermマクロ終了
endif
;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
;;╋ TeraTerm接続の処理
;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
;; ************************************
;; ■ SSH接続コマンド組み立て
;; ************************************
LoginSSH = paramIP                   ;; ■ IPアドレス or ホスト名
strconcat LoginSSH ':22 /ssh /auth=' ;; ■ 認証方式オプション
strconcat LoginSSH paramAUTH         ;; ■ 認証方式の値
strconcat LoginSSH ' /user='         ;; ■ ユーザ名オプション
strconcat LoginSSH paramUSER         ;; ■ ユーザ名の値
strconcat LoginSSH ' /passwd='       ;; ■ パスワードオプション
strconcat LoginSSH DECRYPT           ;; ■ パスワードの値
strconcat LoginSSH ' /F='            ;; ■ INIファイルオプション
strconcat LoginSSH paramINI          ;; ■ INIファイルの値
;; ************************************
;; ■ SSH接続ログイン
;; ************************************
connect LoginSSH
;; ************************************
;; ■ ログイン判定
;; ************************************
if result <> 2 then
    messagebox '接続エラー' '【connection err】'
    end                              ;; ■ TeraTermマクロ終了
endif
;; ************************************
;; ■ LOGフォルダの作成及びパス設定
;; ************************************
getdir macroDIR                      ;; ■ 現在のパス取得
strconcat macroDIR '\LOG\'           ;; ■ 編集 ⇒ <現在のパス>\LOG\
foldersearch '\LOG\'                 ;; ■ .\LOGフォルダの検索
if result = 0 then                   ;; ■ 検索結果=「無」の場合
 foldercreate macroDIR            ;; ■ .\LOGフォルダ作成
endif                                ;; ■ 判定処理の終了
FilePath = macroDIR                  ;; ■ ローカルフォルダのパス格納
;; ************************************
;; ■ ネットワークドライブの検索及びパス設定
;; ************************************
foldersearch 'Z:\'                   ;; ■ ネットワークドライブの検索
if result = 1 then                   ;; ■ 検索結果=「有」の場合
  FilePath = 'Z:\LOG\'               ;; ■ ネットワークドライブのパス格納
else                                 ;; ■ 検索結果=「無」の場合
endif                                ;; ■ 判定処理の終了
;; ************************************
;; ■ LOGファイル名の編集
;; ************************************
getdate LogDate "_%Y%m%d-%H%M%S.log" ;; ■ 現在時刻を取得 ⇒「_年月日-時分秒.log」
;; FileName_IPaddress = "_&h"           ;; ■ IPアドレスを取得 ⇒ 「_IP_」
;; strconcat FileName_IPaddress LogDate ;; ■ 編集 ⇒ 「_IP_年月日-時分秒.log」
FileName = "TeraTeram_"              ;; ■ ファイル名
strconcat FileName paramHOST         ;; ■ ホスト名
strconcat FileName LogDate           ;; ■ 編集 ⇒「ファイル名_ホスト名_年月日-時分秒.log」
;; ************************************
;; ■ LOGファイルの出力先の編集
;; ************************************
strconcat FilePath FileName
;; ************************************
;; ■ LOGファイル書込み(追記)開始
;; ************************************
logopen FilePath 0 1                 ;; ■ ログ書込み開始(TeraTerm設定が無い場合に実行される)
;; ************************************
;; ■ プロンプト待ち( $ or # )
;; ************************************
wait '$' '#'
sendln
sendln '#---------------------'
sendln '# ■ ' paramIP
sendln '#---------------------'
wait '$' '#'
sendln
;; ************************************
;; ■ ユーザをルートに切り替える
;; ************************************
strcompare paramUSER 'root'          ;; ■ 文字列の値が「root」と一致するか判定
if result <> 0 then                  ;; ■ リザルト値 0 以外の場合 ⇒ ルート以外と判定する
    statusbox 'rootユーザに切替えます。。。' '【ユーザ変更メッセージ】'
    ;; ************************************
    ;; ■ 復号化したパスワード文字列の取得
    ;; ************************************
    paramUSER = 'root'                       ;; ■ 変数に'root'を設定
    getpassword paramVALUE ParamUSER DECRYPT ;; ■ 複合化パスワード取得
    statusbox DECRYPT '【ルートのパスワード】'
    wait '$' '#'
    pause 2
    sendln 'su -'
    pause 2
    wait ':'
    sendln DECRYPT
    sendln
endif
;; ************************************
;; ■ リナックスの場合は以下を実行する
;; ************************************
strcompare paramVALUE 'Solaris'      ;; ■     wait '$' '#'の値が「Solaris」と一致するか判定
if result <> 0 then                  ;; ■ リザルト値 0 以外の場合 ⇒ リナックスと判定する
;;    pause 2
    wait '$' '#'
    sendln '#====================='
    sendln 'ip a | grep 'paramIP
    wait '$' '#'
    sendln '#---------------------'
    sendln '# 日時/USER名/ホスト名'
    sendln '#---------------------'
    sendln 'date "+%F %T" ; whoami ; hostname'
    wait '$' '#'
    sendln '#====================='
    sendln
    sendln
else
    end                              ;; ■ TeraTermマクロ終了
endif
statusbox 'サーバへログインしました。。。' '【ログインメッセージ】'
pause 1
end                                  ;; ■ TeraTermマクロ終了
PR

更新日付

11 2025/12 01
S M T W T F S
1 2 3 4 5
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

RECOMMEND

プロフィール

HN:
Account
HP:
性別:
非公開
職業:
--- NODATA ---
趣味:
--- NODATA ---
自己紹介:
◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

リンク

<<【使い方】TTLログインScript  | HOME |  【BAT】TTLログインScript>>
Copyright ©  -- LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例 --  All Rights Reserved
Design by CriCri / Photo by Melonenmann / powered by NINJA TOOLS / 忍者ブログ / [PR]