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

test

最終回 不正アクセスを通知する

投稿日:2020.01.30 | カテゴリー: 記事

 ログの情報を分析して、管理者に警告メッセージを送信するのは、サーバーの運用管理ではよく使う手法です。インターネット側からアクセスできるようにしたサーバーの場合は、特にセキュリティ関連の通知ができると便利です。

 そこで、暗号化通信の「SSH」(Secure SHell)による、Linuxサーバーへのログイン認証のログを監視して、リモートログインや、不正(らしき)アクセスを検知したときにSNSに通知するシェルスクリプトを作成します(図1)。

図1 ログを解析して通知をSNSに送信するシェルスクリプト

漢のUNIX(Vol.64掲載)

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

著者:後藤 大地

今回も引き続き、プログラミング言語の「Rust」について解説する。前回も取り上げたが、Rustの学習は「The Rust Programming Language」(https://doc.rust-lang.org/book/)に沿って進めるのがよいと思う。The Rust Programming Languageではまず、「数当てゲーム」(Guessing Game、英訳としては「推測ゲーム」)のプログラムを開発する。これによって、Rustのプログラミングを一通り学べる。

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

図3 自動生成されるRustプログラムのソースコードファイル「src/main.rs」

図4 コンパイルに必要な構成情報や依存関係を記したファイル「Cargo.toml」

図6 ユーザーに対して入力を求め、その入力を受け付けて「あなたの予測値:」として入力値を表示するプログラム(main.rs)

図8 変数に値を2回代入するサンプルコード(src/main.rs)

図10 mutを指定して値を変更できる変数と宣言したサンプルコード(src/main.rs)

図12 read_line()関数の戻り値を表示させるコード

Webアプリケーションの正しい作り方(Vol.64記載)

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

著者:しょっさん

ソフトウエアを正しく作るために、エンジニアたちはどんなことを知らなければならないでしょうか。実際のコードを使って、より良くしていくためのステップを考えてみましょう。第4回は、3回目のイテレーションを実施し、システムに必要な機能を実装していきます。

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

図3 マイグレーションファイルのテンプレート

図4 経費清算のマイグレーションファイルにuser_idのカラムを追加するように修正した

図5 config/database.tsファイル

図6 権限テーブルのモデルファイル

図7 ユーザーマスターテーブルのモデルファイル

図8 passportライブラリを使って、パスワード認証を行う部分(index.tsへの追加)

図9 ログインの強制(index.ts への追加)

図10 src/routes/login.tsファイル(ログインスクリプト)

図11 src/routes/expenses/submit.tsファイルの修正

図12 用意した型定義ファイル

図13 認証関係をつかさどるAuthenticationクラスを記述した「src/controllers/auth/index.ts」ファイル

図14 認証関係のテストケースを記述した「authentication.test.ts」ファイル

図15 テストデータ作成用のシードファイル(src/seeders/*-demo-user.js)

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

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

著者:清水赳

前回に引き続き、OSSのシステム監視ツール「Prometheus」を「Itamae」というプロビジョニングツールを使って、サーバー監視システムを構築する方法を紹介します。今回は、Prometheusでノード情報を取得・計算する方法や、外形監視、データの可視化方法について解説します。

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

図5 「./cookbooks/blackbox_exporter/default.yml」ファイルに記述する内容

図6 「./cookbooks/blackbox_exporter/files/etc/systemd/system/blackbox_exporter.service」ファイルに記述する内容

図7 「./roles/client.rb」ファイルの編集内容

図8 「./cookbooks/blackbox_exporter/files/etc/blackbox_exporter/blackbox.yml」ファイルに記述する内容

図9 「./cookbooks/prometheus/files/etc/prometheus/prometheus.yml」ファイルに追加する内容

特集1 はじめてのRust(Vol.64記載)

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

著者 :河野 達也

最近、Rustというプログラミング言語の名前をよく見かけるようになりました。米Amazon Web Services社、米Dropbox社、米Facebook社、米Mozilla財団などは、Rustを使ってミッションクリティカルなソフトウエアを開発しています。Rust とはどんな言語でしょうか。シンプルなプログラムの開発を通してRustの世界に飛び込みましょう。

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

Part1

図1 Rust のプログラムの例

図12 エラーになるRustのプログラムの例

図21 sqrt()関数の定義コード

図23 let文とif式を追加したsqrt()関数の定義コード

図24 loop式を追加したsqrt()関数の定義コード

図25 戻り値の記述を追加したsqrt()関数の定義コード

図26 mut修飾子を追加したsqrt()関数の定義コード

図27 main()関数のコード

Part2

図2 Cargo.tomlファイルに追加する設定

図3 コマンドライン引数を処理するプログラム

図5 Option型の定義(抜粋)

図6 Result型の定義(抜粋)

図7 match式とif let式の使用例

■match式の使用例

■if let式の使用例

図8 コマンドライン引数を必須にする変更

図9 std::fmtモジュールのDebugトレイトの定義(抜粋)

図10 analyze()関数の定義コードを追加

図11 main()関数の定義コードを変更

図12 analyze()関数の定義コードを変更

図15 構造体Tripの定義コードを追加

図16 Tripをデシリアライズするための書き換え(その1)

図17 analyze()関数の定義コードを変更

図19 RecordCounts構造体の定義を追加

図20 RecordCountsのデフォルト値をつくる関数を定義

図21 analyze()関数の定義部分のrec_counts変数が使われている行を変更

図22 日時を変換するparse_datetime()関数の定義コード

図23 分析レコードを絞り込むための関数定義コードを追加(その1)

図24 分析レコードを絞り込むための関数定義コードを追加(その2)

図25 分析レコードを絞り込むためにanalyze()関数の定義コードを変更

図27 統計的な処理をするためのコード

図28 所要時間を登録するためのメソッドを追加(その1)

図29 所要時間を登録するためのメソッドを追加(その2)

図30 統計処理をするためにanalyze()関数の定義コードを変更

図32 DisplayStats構造体の定義コード

図33 DisplayStats構造体の定義コード

図34 DisplayStats型にnew()関連関数を定義するコード

図35 analyze()関数の定義コードを書き換える

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

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

004 レポート 専修大学3年次の最終発表会
005 NEWS FLASH
008 特集1 はじめてのRust/河野達也 コード掲載
031 姐のNOGYO
032 特集2 Viscuitで学ぶコンピュータサイエンス/渡辺勇士
042 ラズパイセンサーボードで学ぶ 電子回路の制御/米田聡
045 香川大学SLPからお届け!/清水赳 コード掲載
052 錆(さび)/桑原滝弥、イケヤシロウ
054 MySQL Shellを使おう/梶山隆輔
060 法林浩之のFIGHTING TALKS/法林浩之
062 バーティカルバーの極意/飯尾淳
066 Webアプリの正しい作り方/しょっさん コード掲載
076 円滑コミュニケーションが世界を救う!/濱口誠一
078 漢のUNIX/後藤大地 コード掲載
084 中小企業手作りIT化奮戦記/菅雄一
090 ユニケージ新コードレビュー/坂東勝也
096 Techパズル/gori.sh
098 コラム「新しい風が吹いてくる」/シェル魔人

Vol.64

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

 「C」や「C++」のような高性能や高効率なソフトウエア開発に適しており、なおかつ、安全性を重視した次世代のプログラミング言語「Rust」が最近注目されています。特集1では、Rustの特徴、使いどころ、開発環境構築方法、プログラミングのやり方などを、初心者にも分かりやすいように、紹介しています。また、CSV 形式のデータを分析するという実用的なプログラムを扱っています。
 特集2では、ビジュアル開発ツール「Viscuit」(ビスケット)を使ったプログラミングを紹介しています。「メガネ」というツールだけで、驚くようなプログラムが、子供でも作成できます。Viscuitでコンピュータサイエンスを体験してみましょう。
 このほか、連載「ユニケージ新コードレビュー」ではプログラミング言語「AWK」の使いどころを、連載「センサーボードで学ぶ電子回路の制御」ではリアルタイムクロック(RTC)を実装する方法を紹介しています。
 今回も読み応え十分のシェルスクリプトマガジン Vol.64。お見逃しなく!

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

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

Vol.64 補足情報

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

姐のNOGYO

p.31にあるUSPファームのサイトの「http://www.uspeace.jp/」は「https://farm.usp-lab.com/」の誤りです。お詫びして訂正いたします。

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

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

  • -->