前置き
今回は Putty を使用して WindowsPC から Linux サーバのシェルをキックするサンプルプログラムを紹介します。
決まった時間にシェルを実行する際はクーロンで事足りますが、手動実行したい時もあり、わざわざログインして実行するのがめんどくさかったため、PowerShellで自動化しました。
PowerShellから他のCLIツールにコマンドの実行について記載しているため、Putty 以外のツールをご利用されている方でも参考になるのではないかと思ってます。
別の記事でLinuxサーバのファイルをダウンロードする記事も書かせていただいております。
一連の流れで「シェルの実行」 → 「実行結果ログのダウンロード」のような場合に使えると思いますので、是非見ていってください。
【PowerShell】WindowsPCからLinux上のファイルをダウンロードする
シナリオ
1.PuttyでLinuxサーバにログイン
2.$EXECUT_FILE_PATH
で指定したシェルを実行する
サンプルプログラム
サンプルプログラムをコピーして、拡張子「.ps1」で保存してください。
下記のサンプルプログラムのConfig
部分に必要な情報を入力してください。
基本的に下記の項目を見直していただきたいと思います。
・$PUTTY_PATH
・$USER_NAME
・$IP_ADDRESS
・$PASSWORD
・$EXECUT_FILE_PATH
################################## Config ##################################
# PUTTY情報
$PUTTY_PATH = "C:\Tools\PuTTY"
$PLINK_PATH = Join-Path $PUTTY_PATH "plink.exe"
# Linux接続情報
$USER_NAME = "user"
$IP_ADDRESS = "XX.XX.XX.XX"
$PASSWORD = "password"
# 実行するシェルのパス
$EXECUT_FILE_PATH = "/users/app/test.sh"
############################################################################
########################## 文字コードをUTF8に変更 ##########################
chcp 65001
############################################################################
############################## シェル実行処理 ##############################
# Linux上で実行したいコマンドを上から順番に記述
<#
ログイン直後はCLI上にゴミが初期値で競ってされており、
配列[0]にLinuxコマンドを入力した場合、
「 sh: コマンドが見つかりませんでした...」と出力された。
サンプルプログラムでは、配列[0]に空白を入れることで回避している。
※ 空白を入れるとEnterを押したときと同じ動きをする
#>
$executionCommadn = @(
""
, "sh ${EXECUT_FILE_PATH}"
, "exit"
)
# 配列に入っているコマンドを上から順番に実行する
$executionCommadn | & $PLINK_PATH “${USER_NAME}@${IP_ADDRESS}” -pw $PASSWORD
############################################################################
終わりに
今回は、シェルの実行についてでしたが、もちろん他のLinuxコマンドも利用できるので、是非、応用して使ってみてください。
ここまで読んでいただき、ありがとうございました。