シェルスクリプトマガジン

test

香川大学SLPからお届け!(Vol.95掲載)

投稿日:2025.03.25 | カテゴリー: コード

著者:遠藤幸太郎

AIと自然言語処理技術の発展により、「ChatGPT」に代表される、人間と自然な形で対話できる会話型AIが注目を集めています。今回は、PythonでAIチャットボットアプリを開発していきます。米Google社の「Gemini API」を利用し、対話だけでなく、音声や映像ファイルをアップロードして分析できるようにします。

シェルスクリプトマガジン Vol.95は以下のリンク先でご購入できます。

図3 「win.py」ファイルに記述するコード

図5 基本的なチャットボットアプリのコード

図9 図5の③で示す箇所に挿入するコード

図10 図5の④で示す箇所に挿入するコード

図11 図5の⑥で示す箇所に挿入するコード

図12 図5の⑪で示す箇所に挿入するコード

Pythonあれこれ(Vol.95掲載)

投稿日:2025.03.25 | カテゴリー: コード

著者:飯尾 淳

本連載では「Pythonを昔から使っているものの、それほど使いこなしてはいない」という筆者が、いろいろな日常業務をPythonで処理することで、立派な「蛇使い」に育つことを目指します。その過程を温かく見守ってください。皆さんと共に勉強していきましょう。第25回では、人間がどのように文章の意味を理解するかという認知能力に関わる、少し不思議で面白い現象について取り上げます。

シェルスクリプトマガジン Vol.95は以下のリンク先でご購入できます。

図4 タイポグリセミア度を算出する関数tl()の定義コード

図5 関数make_candidate_index()の定義コード

図7 タイポグリセミア文を作成する関数typoglycemia()の定義コード

図8 タイポグリセミア度「0.7」の文を作成した例

特集2 ベクトル検索エンジンのVald(Vol.95記載)

投稿日:2025.03.25 | カテゴリー: コード

著者:湯川 輝一朗

ベクトル検索エンジン「Vald」は、純国産のオープンソースソフトウエア(OSS)です。画像や音声などの非構造データを数値ベクトル化にして検索に利用します。クラウド上でも動作し、大規模な高速検索に向いています。ライセンスはApache License 2.0であり、無料利用が可能です。本特集では、Valdについて解説します。

シェルスクリプトマガジン Vol.95は以下のリンク先でご購入できます。

図7 values.yamlファイル

特集1 はじめてのシェルスクリプト(Vol.95記載)

投稿日:2025.03.25 | カテゴリー: コード

著者:麻生 二郎

シェルスクリプトは、LinuxやUNIX系OSのコマンドのみで記述できるプログラムです。さまざまな処理をテキストファイルに書き込み、LinuxやUNIX系OSの環境ですぐに試せるので便利です。本特集では、はじめてシェルスクリプトを書く人向けにその記述テクニックを分かりやすく紹介します。

シェルスクリプトマガジン Vol.95は以下のリンク先でご購入できます。

図5 引数の受け取りを試すシェルスクリプト(test1.sh)

図6 readコマンドを試すシェルスクリプト(test2.sh)

図7 ifを試すシェルスクリプト(test3.sh)

図8 caseを試すシェルスクリプト(test4.sh)

図9 Whileを試すシェルスクリプト(test5.sh)

図10 forを試すシェルスクリプト(test6.sh)

図11 関数を試すシェルスクリプト(test7.sh)

レポート2(Vol.95掲載)

投稿日:2025.03.25 | カテゴリー: コード

著者:末安 泰三

米FerretDB社は2025年3月5日、MongoDB互換のドキュメント指向データベース管理システム「FerretDB」のバージョン2.0をリリースした。米Microsoft社のNoSQLデータベース実装「DocumentDB」を採用したことで、従来版比で20倍以上の性能を出せるケースがあるという。

シェルスクリプトマガジン Vol.95は以下のリンク先でご購入できます。

図1 「docker-compose.yml」ファイルに記述する内容

シェルスクリプトマガジンvol.95 Web掲載記事まとめ

投稿日:2025.03.25 | カテゴリー: コード

004 レポート 米Adobe社の商用利用可能な動画生成AI
005 レポート MongoDB代替のFerretDB新版 コード掲載
006 製品レビュー パソコン「Dell Pro 13 Premium」
007 NEWS FLASH
008 特集1 はじめてのシェルスクリプト/麻生二郎 コード掲載
013 インタビュー Linux Foundation Japan 福安徳晃氏
014 特集2 ベクトル検索エンジンのVald/湯川輝一朗 コード掲載
022 特集3 Hinemos入門 ジョブ編/倉田晃次、加藤達也
030 Markdownを活用する/藤原由来
039 Raspberry Pi Pico W/WHで始める電子工作/米田聡
046 Pythonあれこれ/飯尾淳 コード掲載
052 香川大学SLPからお届け!/遠藤幸太郎 コード掲載
058 中小企業手作りIT化奮戦記/菅雄一
064 SSHによるリモート管理入門/大津真
074 Techパズル/gori.sh
075 コラム「小売業のビジネスリーダーを育成する講義」/シェル魔人

Vol.95

投稿日:2025.03.25 | カテゴリー: バックナンバー

 シェルスクリプトは、UNIX/Linuxコマンドを組み合わせてプログラムを記述します。コマンドの羅列でも動作するので、プログラムとしてはとてもシンプルです。このシェルスクリプトは、UNIX系OSやLinuxの環境があれば、すぐに試せます。特集1では、はじめてシェルスクリプトを書く人向けにポイントとなる記法を紹介しています。
 特集2では、国産オープンソースソフトウエアのベクトル検索エンジン「Vald」を解説しています。ベクトル検索エンジンは、画像や音声などの非構造データを数値ベクトル化にして検索に利用します。大規模な高速検索に向くValdの仕組みや導入方法を理解しましょう。
 特集3では、エンタープライズシステムの監視やジョブ管理、運用の自動化などを実現する国産オープンソースの統合運用管理ソフトウエア「Hinemos」のジョブ管理機能を紹介しています。シェルスクリプトマガジン Vol.92の特集2に次ぐ第2弾です。
 このほか、連載「Pythonあれこれ」では、「タイポグリセミア」という最初と最後の文字さえ合っていれば、順番はめちゃくちゃでもちゃんと読める現象をPythonプロブラムと絡めています。とても面白い内容です。
 今回も読み応え十分のシェルスクリプトマガジン Vol.95。お見逃しなく!

※記事掲載のコードはこちら。記事の補足情報はこちら

※読者アンケートはこちら

Vol.95 補足情報

投稿日:2025.03.21 | カテゴリー: コード

特集3 Hinemos入門 ジョブ編

Hinemosの運用管理機能を提供する「Hinemosマネージャ」などのソフトウエアを、「Red Hat Enterprise Linux 9」が稼働するホストにインストールする手順を、こちらで紹介しています。

連載 Markdownを活用する

静的サイトジェネレータ「Hugo」およびバージョン管理システム「Git」のインストール、Gitのセットアップ、サイトの構築手順は、こちらから参照できます。

連載香川大学SLPからお届け!

記事で紹介したコードを拡張して、アプリのボタンなどの見栄えを調整しました。コードを記したファイルはここからダウンロードできます(ファイルはZIPで圧縮しています)。

情報は随時更新致します。

Hinemos導入とエージェント起動

投稿日:2025.03.21 | カテゴリー: コード

 2025年4月号特集3を読むための準備として、Linuxディストリビューション「Red Hat Enterprise Linux 9」(RHEL9)環境にHinemosをインストールしてエージェントを起動する方法を紹介します。このコンテンツは、2024年10月号のシェルスクリプトマガジンVol.92特集2を基にしています。以下では、インストール先のホスト名が「rhel-manager」、IPアドレスが「172.16.63.245」の場合を例に、作業手順を解説します。他のホスト名やIPアドレスを利用している場合には、適宜読み替えてください。
 Hinemosのシステムは、「マネージャサーバ」「クライアント」「管理対象ノード」で構成されます。(図1)。


 マネージャサーバは、Himemosの運用管理機能を提供するHinemosマネージャ(以下、マネージャ)が稼働するマシンです。管理対象の情報を保持したリポジトリと、監視やジョブといった各機能で扱うデータを保管するデータベースを保持します。
 クライアントは、オペレータが利用するGUIベースの操作端末です。OSに専用ソフトウエアをインストールして使う「リッチクライアント」と、Webブラウザで操作できる「Webクライアント」の2種類があります。今回は、マネージャサーバにWebクライアントをインストールして、それをWebブラウザで使うことにします。
 管理対象ノードは、監視やジョブ実行などを行うHinemosの管理対象となるマシンです。利用する機能によっては、管理対象ノードに「Hinemosエージェント」(以下、エージェント)やSNMP*サーバーなどのソフトウエアをインストールする必要があります。今回は、マネージャサーバ自身にエージェントをインストールして、管理対象ノードにします。

【SNMP】 リモート機器を監視、制御するためのネットワークプロトコル。Simple Network Management Protocolの略。

マネージャの導入準備

 マネージャをインストールする前に、マネージャの動作に必要なパッケージをインストールします。rhel-managerに管理者(rootユーザー)でログインしてから、次のコマンドを実行してください。

 なお、2回目のdnfコマンドでインストールしているパッケージは必須ではありませんが、インストールが推奨されているものです。特別な理由がなければインストールすることをお勧めします。以下では、これらの推奨パッケージもインストールしたものとします。
 続いて、次のコマンドを実行してロケール(言語設定)を日本語にします。

 さらにSELinux*を無効にします。SELinuxが有効になっていると、マネージャをインストールできないからです。SELinuxを無効にするには、「/etc/selinux/config」ファイルの「SELINUX」行を次のように書き換えてから、RHEL9を再起動します。

【SELinux】 強制アクセス制御と呼ばれるセキュリティ機能を提供するセキュリティモジュール。Security-Enhanced Linuxの略。

 なお、同行が「SELINUX=enforcing」の場合には、SELinuxが有効になります。「SELINUX=permissive」の場合には、SELinuxによるアクセス制御は無効になりますが、監査ログの記録は有効になります。
 マネージャサーバがクライアントや管理対象ノードからの接続を受け付けられるように、ファイアウォールの設定もします。RHEL9では、デフォルトでファイアウォールが有効になっています。そのため、ファイアウォールを無効にするか、接続を待ち受けるポートを開放する必要があります。
 ファイアウォールを無効にするには、次のコマンドを実行します。

 ファイアウォールを有効にしておきたい場合には、ポートを開放する設定をします。例えば、TCPの22番ポートと80番ポートを開放するには、次のようにfirewalldコマンドを実行します。

 同様の手順で、表1に示すポートをすべて開放する設定をしてください*1。設定後、次のコマンドを実行することでファイアウォールに反映されます。

*1 開放するポートの詳細については、「Hinemos ver.7.1 基本機能マニュアル」(https://github.com/hinemos/hinemos/releases/download/v7.1.0/ja_Base_Linux_7.1_rev1.pdf)の「2.2.9 ネットワークの要件」を参照してください。

表1 マネージャサーバで開放すべきポート

プロトコルリッチクライアントや管理対象ノードからの接続待ち受けポートWebクライアントの接続待ち受けポート
TCP22,8080,8081,8082,8083,8443,8444,8445,2400180,443
UDP161,162,514

 最後に、マネージャサーバのホスト名の名前解決ができることを確認します。名前解決ができない場合、マネージャがうまく動作しないことがあります。
 次のようにpingコマンドを実行して、自分自身から応答があることを確認してください。

 「Name or service not known」と表示される場合には、名前解決ができていません。そのときには、次のコマンドを実行して名前解決用の情報を登録します。他のホスト名やIPアドレスを利用している場合には、適宜読み替えてください。

 以上で事前準備は完了です。

マネージャの導入と起動

 マネージャやWebクライアント用コンポーネント、管理対象ノードにインストールするエージェントのパッケージは、GitHubリポジトリのリリースページ(https://github.com/hinemos/hinemos/releases)から入手できます。ここから、最新版をインストールしてください。
 今回は、2024年9月上旬時点の最新版である「Hinemos ver.7.1.0」のパッケージをインストールします。マネージャのパッケージは「hinemos-7.1-manager-7.1.0-1.el9.x86_64.rpm」、Webクライアント用コンポーネントのパッケージは「hinemos-7.1-web-7.1.0-1.el9.x86_64.rpm」です。これらを「/tmp」ディレクトリなどにダウンロードし、ダウンロードしたディレクトリで次のコマンドを実行するとインストールできます。

 GitHubリポジトリからも直接インストールできます。それには、次のようにrpmコマンドを実行します。

 パッケージのインストール後、次のコマンドを実行するとマネージャとWebクライアントが起動します。

エージェントの導入と起動

 続いて、マネージャサーバにエージェントを導入して、自分自身を管理対象ノードとして取り扱えるようにします*2。それにはまず、次のコマンドを実行して、エージェントの実行に必要なパッケージをインストールします。

*2 マネージャサーバ以外のコンピュータにエージェントをインストールする場合の作業手順については、「Hinemos ver.7.1 基本機能マニュアル」の「2.2.5Hinemosエージェントの要件」などを参照してください。

 ファイアウォールも設定します。ファイアウォールを無効にするか、表2に示すポートを開放してください。

表2 管理対象ノードで開放すべきポート

プロトコル開放すべきポート
TCP22
UDP161,24005

 さらに、次のコマンドを実行してsnmpdサービス(SNMPサーバー)を起動します。これにより、マネージャサーバのCPUやメモリーなどのリソース情報をHinemosが取得できるようになります。

 ここまでの作業で、エージェントをインストールする準備が整いました。エージェントのパッケージは「hinemos-7.1-agent-7.1.0-1.el.noarch.rpm」です。これを「/tmp」ディレクトリなどにダウンロードし、ダウンロードしたディレクトリで次のコマンドを実行するとインストールできます。

 シェル変数HINEMOS_MANAGERには、マネージャサーバのIPアドレスを設定します。
 先ほどと同様に、GitHubリポジトリからも直接インストールできます。それには、次のようにrpmコマンドを実行します。

 最後に、次のコマンドを実行すればエージェントが起動します。

  • shell-mag ブログの 2025年3月 のアーカイブを表示しています。

  • -->