- 投稿日:2021-02-13T23:47:40+09:00
ラズパイ4BでSSH接続(Mac、最初からディスプレイなし、無線LANの場合)<後編>
(追記 2021/02/16 8.デスクトップの初期設定を追加しました。)
前編からの続きです。全体の流れは
1.必要な物をそろえる
2.microSDカードをSD Card Formaterで初期化
3.OSをダウンロードしてmicroSDカードにファイルを配置する
4.SSHを有効化する&ラズパイをWi-Fiに接続する準備
5.起動する(電源につなぐ)
6.SSH接続する(起動を確認)
7.VNC ViewerでGUI接続
8.デスクトップの初期設定で、後編は 5.起動する からになります。
5.起動する(電源に繋ぐ)
Raspberry Pi4にMicroSDカードを挿して、USB-Cで給電し起動を行ってください。
緑のランプが点滅すればSDCardの読み込みが行われています。だんだん点滅が穏やかになってきたら正常に動いてるので、下記のSSH接続に移ってください。
6.SSH接続を行う
前回の記事でmicroSDCardにwpa_supplicant.confファイルが書いてあるので(ちなみにwpaはWi-Fi Protected Accessの略です)、ラズパイの電源を起動をしただけでラズパイとWiFiが繋がっている状態になります。その状態でMacからリモートでSSH接続を行います。
リモート接続するためにはラズパイのIPアドレスが必要になります。IPアドレスは、DHCPと呼ばれる仕組みによって自動的にラズパイに割り振られているので、ターミナルから調べます。
ターミナルで以下のコマンドを打ってください。
arp -a
そうするとこのような画面が出てきます。
ここではIPアドレスが(192.168.3.7)でした。(もちろん各々の環境によって数字は変わります)
注意してほしいのはここではraspberrypiと表示されていますが、必ずしもraspberrypiと表示されているとは限りません。表示されてなくてもWiFi接続しているラズパイの場合もあります。それでも次のSSH接続で確認すれば問題ないので、これかな?と思うものがあればSSH接続を試してみてください。
ちなみに192.168.3.1とか192.168.3.255はルータかその辺です。
それでは大変長らくお待たせしました。いよいよSSH接続を行います。
接続のコマンドはターミナルで
ssh pi@各々のIPアドレス
になるので今回の場合は以下のようになります。
ssh pi@192.168.0.7
このように各自で調べたIPアドレスを書いてください。
そうするとパスワードを求められるのでraspberryと入力してください。(初期設定がユーザ名pi、パスワードraspberryになっています。)
もし、
と表示されたらyesと入力してenterを押してください。
接続できれば一番下に
と表示されます。これで成功です!やったね!!
ここまでくれば、峠は越えたと思って大丈夫です。後はさほど大変ではありません。
余談ですが、僕が初めて接続できたときは嬉しくて雄叫びを上げたっけなぁ。SDCard買い替えたりしたりして苦労しましたもの。。
それでは最後にVNCに移ります。
7.VNC viewerでGUI接続
VNCとは?
Virtual Network Computingの略
ネットワーク上の離れたコンピュータを遠隔操作ができるソフトウェア。デスクトップ画面で操作できる。
VNC viewerはこちらから無料ダウンロードできます。
ラズパイをSSH接続した状態で、
sudo raspi-config
と打ってください。そしたら下のような画面が出ます
設定によって背景の色は違うかもしれませんが、書かれている単語が同じであれば問題ないです。
まずはVNCの設定をONにします。
3
→P3
→Yes
VNC接続をデフォルトに設定します(これをしないとエラーがでます。)
1
→S5
→B4
ラズパイのデスクトップのサイズです。
2
→D1
→好きなサイズ
(ちなみに僕はMac Book Proの13.3インチでDMT Mode 35 1280x1024 60Hz 5:4 にしています。ちょうどいい具合に使えています。)
このツールをアップデートします。
8
このツールを終了します。
Finish
ここで一度ラズパイを再起動をします。「~ like to reboot now?」と聞かれたらyesを押します。
もし聞かれなかったら下のコマンドを入力してください。一度SSH接続からログアウトします。
sudo reboot
その後、reboot(再起動)するとssh接続が切れるのでまた
ssh pi@各々のIPアドレス
でSSH接続を行い、VNC Viewer(こちらからインストールしてください)
を開き、上の方にある入力欄に先ほど入れた確認したIPアドレスを入力してください。(別日にこのスクショを撮ったのでIPアドレスが192.168.3.10となっていますが、気にしないで下さい。)
この画面が出たらcontinueを押します。
この画面が出たら、usernameにpi,passwordにraspberryと入力してOKを押してください。
この画面が出ればVNC接続に成功です。続いて初期設定に移ります。
8.デスクトップの初期設定
先ほどの画面のWarningのところでOKを押すとこちらの画面になります。
ここをNextで進んで、
CountryでJapanを選択すると、自動的に上の画像のようになります。そしてNext。
「pi」ユーザーのパスワードを変えます。好きなパスワードを設定してください。そしてNext。
ここはチェックしなくて大丈夫です。デスクトップの周りに黒枠があれば、チェックすると再起動後に調整してくれるそうですが、後でも設定等でできるそうです。そしてNext。
ここはWiFi設定です。自分の接続しているWiFiを選んでNext。
ソフトウェアのアップデートです。Nextでアップデートしてください。自分の環境では10分弱くらいかかりました。
終わればこの画面がでます。OKを押すとSet Up Complete!という画面が出てくるので、Restartを押して再起動を行うことで設定が反映がされます。
以上で終了です!お疲れ様でした。これでもう(セキュリティを気にしなければ)ラズパイで自由に遊べます。僕はWiFiで常につないでいるわけでは無かったので、この状態(流石にIPアドレスの固定はやったけど)でLチカとかやって遊んでました。
次回は最低限のセキュリティについて書きます。
- 投稿日:2021-02-13T20:01:05+09:00
SSHログインした時や作業中にどのサーバにいるか分かりやすくする方法
前座
皆さんこんにちは。ハンズラボのサムです!
今回は複数サーバにSSHログインしてるとあるあるなネタです!ターミナルでタブをいっぱい開いていると今自分がどのサーバにいるのか分からなくなる現象をどうにかしたい!
今回はこれを解決したいと思います。
設定方法
ログイン時のメッセージ設定
- /etc/motdに下記を追加
- サーバ名
- ドメイン名
- IPアドレス
例
___ ___ __ _ ____ ___ __ / _ | ___ ___ / (_)______ _/ /_(_)__ ___ / __/__ _____ _____ ____ / _ \_______ ___/ / / __ |/ _ \/ _ \/ / / __/ _ `/ __/ / _ \/ _ \ _\ \/ -_) __/ |/ / -_) __/ / ___/ __/ _ \/ _ / /_/ |_/ .__/ .__/_/_/\__/\_,_/\__/_/\___/_//_/ /___/\__/_/ |___/\__/_/ /_/ /_/ \___/\_,_/ /_/ /_/ Domain : Domain name IP Address : Global IP Address※AAはここで作れる (フォント : smslant)
https://aa.be-dama.com/Amazon Linuxの時はmotdが自動更新されるので、設定で更新停止
sudo update-motd --disable
ターミナルの表示を変える
- /etc/bashrcに下記を追記
- 表示情報のホスト名をサーバ名にする
例
# Default Pronmpt Setting #PS1="[\u@\h \W]\$" PS1="[\u@AP-Prod \W]\$ "\u@の後ろにサーバの名前を入れてください!
変更前
[centos@ip-172-31-1-1 ~]$変更後
[centos@AP-Prod ~]$以上になります!
どれも簡単に設定できて、サーバを間違えて操作ミスする可能性を減らしたり、確認作業をしやすくできるので是非試してみてください!
- 投稿日:2021-02-13T15:32:18+09:00
Proxy配下のDocker_備忘録
はじめに
最近は全く設計や構築ができず、ストレスのたまる毎日です。
休みの日くらい自分の好きなことをしようと思い、基礎学習を兼ねて構築を。
とりあえず、思いついたProxyとDocker環境の構築をやりました。目的:ProxyとDockerの導入。Proxyを介した通信の確認。
Proxy
Proxyとは(Wikipedia抜粋)プロキシ(Proxy)とは「代理」の意味である。 インターネット関連で用いられる場合は、特に内部ネットワークからインターネット接続を 行う際、高速なアクセスや安全な通信などを確保するための中継サーバ「プロキシサーバ」を 指す。インターネットに直接接続させたくないサーバやPCのために、代わりに通信のやり取りします。
これによって、サーバ自身が直接外部アクセスすることがなくなり、セキュリティリスクを抑えることができます。
※Web業界には「リバースプロキシ」ってのも存在するらしいがここでは割愛Docker
Dockerとは(Wikipedia抜粋)コンテナ仮想化を用いてアプリケーションを開発・配置・実行するための オープンソースソフトウェアあるいはオープンプラットフォームであるこれだけ読んで理解できる人は相当頭が良い。。。。
とりあえず検索してみた。
Docker入門(第一回)~Dockerとは何か、何が良いのか~
OS上に環境を準備し、その上にアプリが稼働するための環境を提供。
仮想マシンとの違いはゲストOS領域。コンテナではOS領域が無い分動作が軽いようです。とりあえずやってみた
環境をざっくりと整理
①3台のサーバを用意
②1台はVPN用に準備(今回は説明省略)
③1台はProxy用。この子は外部アクセスの役目を持つので外部ネットワークと、クライアント用の内部ネットワークを持たせる
④今回クライアントはDockerの役割を持つ※すべてCentOS8を採用。理由は単純、無償かつLinuxなので軽いし不要なリソース確保しなくすむ。
◆Proxy導入手順
いつもお世話になっているサイトから手順を拝借
Proxy/ロードバランサ [Squid : インストール]◆Docker導入手順
せっかくなので、Proxyを介して導入。もちろん手順はいつもの。
コンテナ基盤 [Docker : インストール]導入が終わったので、さっそくイメージデータをダウンロードしようとしたところ、トラブル発生しました。
エラーメッセージ1Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:54586->[::1]:53: read: connection refused何てことはない。
Proxyのクライアント側の設定が間違っていたようです。(ネットワークアドレス間違い&設定リロード)
修正してリトライ。エラーメッセージ2Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshakeまだ駄目なようです。
調べてみると、どうやらDocker用のProxy設定が漏れていたようなので、下記を参考に設定します。
VagrantをProxy経由で利用する [Dcoker]無事イメージデータのダウンロード確認まで終わりました。
目的達成したので備忘録として残します。おわりに
相変わらずProyxは厄介だなと痛感。ファイアウォールと同等に深く考えたくない理由もわかります。
しかし、セキュリティを意識する上では重要だし、案外Proxyを介した通信のトラフィックを見るのも面白いものだと感じます。
次は、コンテナ環境で何か試してみようと思います。参考
https://www.server-world.info/query?os=CentOS_8&p=squid&f=1
https://www.server-world.info/query?os=CentOS_8&p=docker&f=1
https://qiita.com/daichannel/items/08e074a01e8ab41d52f7
https://cybersecurity-jp.com/security-measures/32171
https://knowledge.sakura.ad.jp/13265/
- 投稿日:2021-02-13T15:32:18+09:00
ProxyとDocker_備忘録
はじめに
最近は全く設計や構築ができず、ストレスのたまる毎日です。
休みの日くらい自分の好きなことをしようと思い、基礎学習を兼ねて構築を。
とりあえず、思いついたProxyとDocker環境の構築をやりました。目的:ProxyとDockerの導入。Proxyを介した通信の確認。
Proxy
Proxyとは(Wikipedia抜粋)プロキシ(Proxy)とは「代理」の意味である。 インターネット関連で用いられる場合は、特に内部ネットワークからインターネット接続を 行う際、高速なアクセスや安全な通信などを確保するための中継サーバ「プロキシサーバ」を 指す。インターネットに直接接続させたくないサーバやPCのために、代わりに通信のやり取りします。
これによって、サーバ自身が直接外部アクセスすることがなくなり、セキュリティリスクを抑えることができます。
※Web業界には「リバースプロキシ」ってのも存在するらしいがここでは割愛Docker
Dockerとは(Wikipedia抜粋)コンテナ仮想化を用いてアプリケーションを開発・配置・実行するための オープンソースソフトウェアあるいはオープンプラットフォームであるこれだけ読んで理解できる人は相当頭が良い。。。。
とりあえず検索してみた。
Docker入門(第一回)~Dockerとは何か、何が良いのか~
OS上に環境を準備し、その上にアプリが稼働するための環境を提供。
仮想マシンとの違いはゲストOS領域。コンテナではOS領域が無い分動作が軽いようです。とりあえずやってみた
環境をざっくりと整理
①3台のサーバを用意
②1台はVPN用に準備(今回は説明省略)
③1台はProxy用。この子は外部アクセスの役目を持つので外部ネットワークと、クライアント用の内部ネットワークを持たせる
④今回クライアントはDockerの役割を持つ※すべてCentOS8を採用。理由は単純、無償かつLinuxなので軽いし不要なリソース確保しなくすむ。
◆Proxy導入手順
いつもお世話になっているサイトから手順を拝借
Proxy/ロードバランサ [Squid : インストール]◆Docker導入手順
せっかくなので、Proxyを介して導入。もちろん手順はいつもの。
コンテナ基盤 [Docker : インストール]導入が終わったので、さっそくイメージデータをダウンロードしようとしたところ、トラブル発生しました。
エラーメッセージ1Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:54586->[::1]:53: read: connection refused何てことはない。
Proxyのクライアント側の設定が間違っていたようです。(ネットワークアドレス間違い&設定リロード)
修正してリトライ。エラーメッセージ2Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshakeまだ駄目なようです。
調べてみると、どうやらDocker用のProxy設定が漏れていたようなので、下記を参考に設定します。
VagrantをProxy経由で利用する [Dcoker]無事イメージデータのダウンロード確認まで終わりました。
目的達成したので備忘録として残します。おわりに
相変わらずProyxは厄介だなと痛感。ファイアウォールと同等に深く考えたくない理由もわかります。
しかし、セキュリティを意識する上では重要だし、案外Proxyを介した通信のトラフィックを見るのも面白いものだと感じます。
次は、コンテナ環境で何か試してみようと思います。参考
https://www.server-world.info/query?os=CentOS_8&p=squid&f=1
https://www.server-world.info/query?os=CentOS_8&p=docker&f=1
https://qiita.com/daichannel/items/08e074a01e8ab41d52f7
https://cybersecurity-jp.com/security-measures/32171
https://knowledge.sakura.ad.jp/13265/
- 投稿日:2021-02-13T15:16:44+09:00
sshpassを使って、リモートシャットダウン
初めに
sshpassで、別端末をシャットダウンしたいといったときに使用。
気が向いたら、ループして複数端末対応も書く予定フォルダ構成
c:\test\
├ shutdown.sh
└ passfile(パスワードを記載)ソースファイル
passfilehogehogeshutdown.shpassword=$(<passfile) sshpass -f passfile ssh -o "StrictHostKeyChecking no" user@hostname "echo ${password} | sudo -S poweroff"※userはsshでログインするユーザーを記載
※hostnameは接続先を記載
※ユーザーはroot特権もちのやつを使う参考
- 投稿日:2021-02-13T11:55:32+09:00
50行でちゃんと動くリマインダーアプリ「Notification-CLI」をリリースしました
50行でちゃんと動くリマインダーアプリ「Notification-CLI」をリリースしました
以下かんたんな日本語版クイックスタートになります。
Minimalistic Command Line Notification Application under 50 Lines
50行で実装のシンプルなコマンドラインベースのリマインダーアプリケーション。
クイックスタート Quick Start
This will nofity you when 2021 February 20, PM 6:00.
以下で2021年2月20日18時に通知をします。
./noc.js -d 2021022018 --desktopVery much minimalistic.
とてもミニマリスティック。
インストール Installation
git clone https://github.com/yuis-ice/notification-cli.git cd notification-cli chmod 755 ./noc.js npm i必要環境 Requirements
- node.js v13.10.1 or higher
# node.js [nvm-sh/nvm](https://github.com/nvm-sh/nvm) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash bash nvm install v13.10.1 node -v使用例 Examples
This will only notify you by command line console output:
コマンドライン出力で通知します。
./noc.js -d 2021022018The output be like:
出力はこんな感じです。
$ ./noc.js -d 202102120234 2021-02-12T02:33:16+09:00 Jobs started... 2021-02-12T02:33:16+09:00 You will be notified at: 2021-02-12T02:34:00+09:00 2021-02-12T02:34:00+09:00 Notified. $You can abbreviate your seconds, minutes, hours and so on:
秒、分などを省略しても動きます。
./noc.js -d 2022This will notify you when PM 11:00 in the day:
その日の23時になったら通知します。
./noc.js -d 23 --format HHAn alias makes your code much more minimalistic:
エイリアスを定義すると、よりシンプルになります。
alias notify="./noc.js --format MM,DD,HH" # Specifying absolute path recommended notify -d 2,20,18This will run your command:
シェルコマンド、外部コマンドも実行できます。
./noc.js -d 2021022018 -c "firefox.exe sound.mp3"No logs on background be like:
バックグラウンドでマルチインスタンスに使用するのもいいですね。
./noc.js -d 2021022018 --desktop --hide-log --log "" &My favorite format <3
僕のお気に入り。
./noc.js -d 2021022018 -c "firefox.exe sound.mp3" --desktop -t "your appointment soon"コマンドラインオプション Command line Options
$ ./noc.js Usage: notification-cli [options] Options: -d, --date <date> specify date to fire (e.g. "2022010100" for 2020/1/1 00:00) (default: null) -f, --format <format> specify date format (default: "YYYYMMDDHHmmss") -D, --desktop enables desktop notification -t, --title <text> specify title (default: "Notification-CLI") -m, --message <text> specify message (default: ":)") -c, --exec-command <command> specify command to run (e.g. firefox.exe ringtone.mp3) (default: null) -l, --log <text> specify console log message (default: "Notified.") -H, --hide-log hide infomation logs -h, --help display help for command一言
コードを書くよりreadmeを書く時間のほうが長くなってしまった例。
momentjsとnode-scheduleのおかげでimportやコマンドラインオプション部分を除くメインのコードはなんと10行程度で収まっています。
ソースコードを見られたら少し恥ずかしいかもしれない。対してソースコードのシンプリシティは初学者にとってそのコードを研究する敷居を低くしてくれると思うので、node.jsあるいはプログラミング初学者の人に積極的に参考にして頂ければ嬉しいと思う。
- 投稿日:2021-02-13T11:42:35+09:00
lessコマンドでテキストを表示する時に行番号を表示する
- 投稿日:2021-02-13T08:30:18+09:00
【PowerShell】WindowsPCからLinux上のファイルをダウンロードする
前置き
今回は Putty を使用して WindowsPC から Linux サーバのファイルを取得するサンプルプログラムを紹介します。
毎日シェルの実行結果をとってくる単純作業を「自動化できたらいいな」と思い、作りました。
PowerShellから他のCLIツールにコマンドの実行について記載しているため、Putty 以外のツールをご利用されている方でも参考になるのではないかと思ってます。別の記事でLinuxサーバのシェルを実行する記事も書かせていただいております。
一連の流れで「シェルの実行」 → 「実行結果ログのダウンロード」のような場合に使えると思いますので、是非見ていってください。
【PowerShell】WindowsPCからLinux上のShellファイルを実行するシナリオ
1.ローカルに日付フォルダを作成する
2.PuttyでLinuxサーバにログイン
3.「1」で作成したフォルダに$TARGET_FILE_PATH
のパターンに該当するファイルをダウンロードサンプルプログラム
サンプルプログラムをコピーして、拡張子「.ps1」で保存してください。
下記のサンプルプログラムのConfig
部分に必要な情報を入力してください。
基本的に下記の項目を見直していただきたいと思います。
・$PUTTY_PATH
・$USER_NAME
・$IP_ADDRESS
・$PASSWORD
・$TARGET_FILE_PATH
GetLogFile.ps1################################## Config ################################## # 取得したいファイルのパターン用で使用 $NEW_DATE = Get-Date -Format "yyyyMMdd" # 格納先フォルダ名で利用 $NEW_DATE_TIME = Get-Date -Format "yyyyMMdd_HHmmss" # PUTTY情報 $PUTTY_PATH = "C:\Tools\PuTTY" $PSFTP_PATH = Join-Path $PUTTY_PATH "psftp.exe" # Linux接続情報 $USER_NAME = "user" $IP_ADDRESS = "XX.XX.XX.XX" $PASSWORD = "password" <# 取得先設定 今回のデフォルトは実行PowerShellと同一のフォルダ配下に 日付フォルダを作成して、その中に取得したファイルを格納する #> $DOWNLOAD_PATH = Join-Path $PSScriptRoot $NEW_DATE_TIME # 取得したいファイル名パターン # 今回の例だと「/users/app」配下の「test_20210212_1111.log」などが取得できる $TARGET_FILE_PATH = "/users/app/test_${NEW_DATE}*.log" ############################################################################ ########################## 文字コードをUTF8に変更 ########################## chcp 65001 ############################################################################ ############################# ファイル取得処理 ############################# # 格納先フォルダ作成・移動 if (!(Test-Path $DOWNLOAD_PATH)) { New-Item $DOWNLOAD_PATH -Type Directory } Set-Location $DOWNLOAD_PATH # Linux上で実行したいコマンドを上から順番に記述 # mgetコマンドにすることでパターンが一致するものを取得できる。 # パターンに該当するファイルが複数存在する場合は全て取得する。 $executionCommadn = @( "mget ${TARGET_FILE_PATH}" , "exit" ) # 配列に入っているコマンドを上から順番に実行する $executionCommadn | & $PSFTP_PATH “${USER_NAME}@${IP_ADDRESS}” -pw $PASSWORD ############################################################################終わりに
今回はシェルの実行結果ログファイルをダウンロードする想定で書かせていただきました。
まぁ、使う機会は極めてまれだと思いますが、定例業務の効率化ができるので、よかったら試してみてください。あと、Linuxサーバからダウンロードするファイルのファイル名に日本語が入っていると文字化けしてダウンロードされます。
すごく調べましが解決策がみつかりませんでした。
もしご存知の方がいらしたらコメントで教えてください!ここまで読んでいただき、ありがとうございました。
- 投稿日:2021-02-13T08:29:35+09:00
【PowerShell】WindowsPCからLinux上のShellファイルを実行する
前置き
今回は 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
ExecutShell.ps1################################## 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コマンドも利用できるので、是非、応用して使ってみてください。
ここまで読んでいただき、ありがとうございました。