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

test

漢のUNIX JSON データを扱うJanssonライブラリ(Vol.55掲載)

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

著者:後藤 大地

C言語のJSON用ライブラリ「Jansson」の使い方を紹介する。Janssonライブラリは、使い方がかなり直感的で扱いやすい。C言語でJSONデータを扱いたいのなら最初に使っておきたいものだ。

記事本文掲載のシェルスクリプトマガジンvol.55は以下のリンク先でご購入できます。


 

ラズパイ入門ボードで学ぶ 電子回路の制御(Vol.55掲載)

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

著者:米田 聡

シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)のプログラミングが楽しめる拡張ボード「ラズパイ入門ボード」を制作しました。本連載では、ラズパイ入門ボードを使った電子回路制御を取り上げていきます。第3回は、OLEDに画像を表示します。

記事本文掲載のシェルスクリプトマガジンvol.55は以下のリンク先でご購入できます。


 

特別企画 普通のパソコンではじめる仮想通貨マイニング(Vol.55掲載)

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

著者:末安 泰三

一時期のバブルは弾けた感じはありますが、仮想通貨にはまだまだ注目が集まっています。仮想通貨の一部は、パソコンでマイニング(採掘)という作業をすることで獲得できます。ASIC 耐性が高い「yescrypt」と呼ばれるハッシュ関数を使用する仮想通貨をマイニングする方法を紹介します。

記事本文掲載のシェルスクリプトマガジンvol.55は以下のリンク先でご購入できます。


 

 

特集1 CentOSではじめるLinuxサーバー構築(Vol.55掲載)

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

著者:麻生 二郎

CentOSやUbuntuなどのLinuxディストリビューション、パソコン、インターネットに接続する環境を用意すれば、無料で実用的なサーバーを構築できます。本特集では、企業のサーバーOSとして人気のCentOSを用いて、「ファイル共有」と「ブログ」の2種類のサーバーを立ち上げる方法を分かりやすく紹介します。
記事本文掲載のシェルスクリプトマガジンvol.55は以下のリンク先でご購入できます。


Part2 リモートアクセス環境の構築

Part3 ファイル共有/ブログサーバーの構築

第13回 ストレージの使用量を制限する(クオータの設定1)

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

Linuxサーバー上で複数のユーザーが作業することもあります。通常、各ユーザーには、作業場所として「/home」ディレクトリーの下に自分の名前と同じ「ホームディレクトリー」が割り当てられています。自分のホームディレクトリー内なら自由にファイルを保存できます。

ただし、自由に保存できるからといって、一人のユーザーが多くのストレージ容量を使うと、システムや他の人が使用できる領域を圧迫しかねません。よって、ユーザーや、ユーザーが所属するグループごとにファイルシステム単位でストレージの使用容量を制限するための「クオータ」(Quota)機能が用意されています(図1)。そのクオータの設定方法を紹介します。今回も「Ubuntu Server 16.04 LTS」を例にします。

図1 ユーザーやグループごとにストレージの使用量を制限する

第12回 ストレージの可用性を高める(RAIDの復旧)

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

前回は、RAIDの運用管理における監視方法を紹介しました。RAIDの障害を検出したら、次の障害が発生する前に完全復旧させましょう。
完全復旧作業の手順は図1のようになります。

図1 RAIDアレイの完全復旧手順

まず、障害が発生したストレージをRAIDアレイから切り離します。そして、サーバーマシンから故障したストレージを抜き取り、新しいストレージを交換します。「ホットスワップ」または「ホットプラグ」に対応したベイまたはケースなら電源を入れたまま抜き差しできますが、大抵はホットスワップに対応していません。サーバーマシンをシャットダウンして電源をオフにしてからストレージを交換してください。
交換を終えたら、サーバーマシンの電源をオンにします。サーバーが起動したら、新しいストレージに物理ボリュームを作成します。作成したら、RAIDアレイに追加します。これで完全復旧の完了です。

第11回 ストレージの可用性を高める(RAIDの運用管理)

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

3回にわたって、Ubuntu Server 16.04 LTSにおけるRAIDアレイ(ソフトウエアRAID)の構築方法を紹介しました。複数のストレージを使ってRAIDを構成したことで、可用性を高めることができました。しかし、安心はできません。ストレージの故障から復旧するまでの間は、高可用性を確保できないからです。

常にRAIDの状態を監視し、ストレージの故障を発見したときはすぐに新しいストレージを割り当て完全復旧しなくてはいけません(図1)。よって、今回はRAIDの運用管理方法について解説します。

図1 RAIDアレイの監視

第10回 ストレージの可用性を高める(ソフトウエアRAIDの構築3)

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

前回と前々回で、Ubuntu Server 16.04 LTSのインストーラーを使った、ソフトウエアRAIDの構築方法を解説しました。今回は、既に動かしているUbuntuサーバーにRAID構成にしたストレージ(RAIDアレイ)を追加します(図1)。

図1 ソフトウエアRAIDによるRAIDアレイを追加

今回も扱うRAIDは「ソフトウエアRAID」です。LinuxにはソフトウエアRAIDを構築・管理する「mdadm」コマンドが用意されています。

第9回 ストレージの可用性を高める(ソフトウエアRAIDの構築2)

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

前回は、「BIOS」のファームウエアを搭載するマシンで、Ubuntu Server 16.04 LTSのインストーラーを使ったソフトウエアRAID(RAID 1、RAID 5、RAID 6)を構築する手順を解説しました。今回は、ファームウエアが「UEFI」のマシンでの手順を紹介します(図1)。

図1 ファームウエアが「UEFI」のマシンでUbuntu ServerのインストーラーによるRAID構築

前回も少し触れましたが、「EFIシステムパーティション」への障害対策が必要です。EFIシステムパーティションはRAID構成にできませんが、起動時にしか使いません。そこで、別のストレージを用意してその中に作成し、バックアップしておきます。

第8回 ストレージの可用性を高める(ソフトウエアRAIDの構築1)

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

前回は「RAID」(レイド、Redundant Arrays of Inexpensive/Independent Disks)の概要、「RAID 0」「RAID 1」「RAID 5」「RAID 6」「RAID 0+1」「RAID 1+0」の構成、「ハードウエアRAID」と「ソフトウエアRAID」などの種類を紹介しました。今回から数回にわたって、Ubuntu Server 16.04 LTSのストレージをRAID構成にする方法、RAIDの監視やストレージの障害検出、障害からの復旧方法を解説します。

今回は、Ubuntu Server 16.04 LTSのインストーラーを使った、ソフトウエアRAIDによるRAID 1、RAID 5、RAID 6を構築する手順です。マシンのファームウエアが「BIOS」なら、Ubuntu Serverのインストーラーからシステムで利用しているストレージを簡単にRAID構成にできるので、それから始めましょう(図1)。

図1 Ubuntu Server 16.04 LTSのインストーラーによるRAID構築

ちなみに、ファームウエアが「UEFI」の場合、ストレージの先頭にある、OS起動用のソフトなどを格納する「EFIシステムパーティション」への障害対策が必要です。このパーティションを含むストレージに障害が発生した状態で、サーバーを再起動すると起動しないことがあり得ます。UEFIのマシンにおけるシステム全体のRAID構築方法は、次回以降に解説します。

第7回 ストレージの可用性を高める(RAIDの概要)

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

「可用性」(Availability)とは、システム稼働を継続できる能力のことです。この可用性を向上するには、障害に対して強いシステムを構築できるかどうかにかかっています。
サーバーには、ソフトウエアによる障害以外にハードウエアによる障害もあります。ハードウエアの中で最も壊れやすいのが、機械部品(モーター)で動作する「ハードディスク」(HDD)です。HDDの経年劣化による故障は避けられません。一部のデータが読み出しにくかったり、読み出せなかったりと、部分的に故障するので、とてもやっかいです。
このように壊れやすいにもかかわらず、HDDはサーバー内の大切なデータを保存しています。大切なデータが失われてしまうと、システム稼働を継続できません。逆にいえば、HDDが故障しても大切なデータを失うことがなければ、システム稼働を継続できます。その方法として有効なのが「RAID」(レイド、Redundant Arrays of Inexpensive/Independent Disks)です。RAIDは、複数のストレージを組み合わせて、1台(または2台)のストレージが故障しても他のストレージによってデータを消失させない仕組みです(図1)。複数のストレージに同じデータを保存したり、データを修復するための「パリティー」を生成・保存したりして、データ消失を防ぎます。

図1 RAID(Redundant Arrays of Inexpensive/Independent Disks)

第6回 ストレージを柔軟に管理する(LVMの操作3)

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

第5回に引き続き、Linuxなどのストレージを柔軟に管理する仕組み「LVM」(Logical Volume Manager)の利点を紹介します。今回は「スナップショット」です。
このスナップショットは、LVMの「論理ボリューム」を瞬時にバックアップできるとても便利な機能です(図1)。スナップショット作成時の論理ボリューム(LV)の状態を維持でき、それを「dump」や「rsync」などのコマンドで簡単に取り出せます。

図1 スナップショット機能

ラズパイ入門ボードで学ぶ 電子回路の制御(vol.54掲載)

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

著者:米田

シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)のプログラミングが楽しめる拡張ボード「ラズパイ入門ボード」を制作しました。本連載では、ラズパイ入門ボードを使った電子回路制御を取り上げていきます。第2 回は、Grove System の光センサーを扱います。

記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。


 

ユニケージ新コードレビュー(vol.54掲載)

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

著者:大内 智明

ユニケージでは、小さな道具の「コマンド」をシェルスクリプトで組み合わせて、さまざまな業務システムを構築しています。本連載では、毎回あるテーマに従ってユニケージによるシェルスクリプトの記述例を分かりやすく紹介します。初回は、サーバー2重化時のデータ書き込みです。
記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。


 

漢のUNIX XML2JSON のコードを整理して仕上げる(vol.54掲載)

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

著者:後藤 大地

前回までの2回で、XMLパーサーライブラリ「expat」の使い方と、expatによるXMLデータをJSONデータへ変換する方法を取り上げた。前回作成したサンプルコードはとりあえず動作するものだが、それほどきれいに整理はされていない。今回はこのサンプルコードを整理して完成させる。
記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。


 

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

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

著者:楠目幹

こんにちは。香川大学工学部 学部4年生の楠目です。高校時代にPCがマルウェアに感染した経験がきっかけでセキュリティに興味を持ち、マルウェア対策やペネトレーションテストに関する分野の勉強を行っています。
昨年の8月「セキュリティ・キャンプ全国大会2017」に参加しました。そこでは「Linux向けマルウェア対策ソフトを作ろう」と言う講義に参加し、「surface indicator+αなELFマルウェアの分類」というテーマに、チームで取り組みました。このテーマの目標は、機械学習や複雑な解析を用いずにELFマルウェアの亜種を素早く検出することです。今回の記事では、私が講師やチューターの方、チームのメンバーと一緒に取り組んだ内容をご紹介します。

記事本文掲載のシェルスクリプトマガジンvol.54は以下リンク先でご購入できます。

特集1 Node.js/Express入門(vol.54掲載)

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

著者:しょっさん

インターネットを介する各種サービス、ゲーム、そしてコミュニケーションツールなどの多くが「Webアプリ」として提供されています。このようにWebアプリが普及したのは、プログラミング言語「JavaScript」のおかげです。JavaScriptはフロントエンド開発が中心でしたが、サーバーサイドの実行環境「Node.js」の登場によりバンクエンドのアプリ開発にも使われています。本特集ではNode.js、フレームワークとなる「Express」について、実践しながら分かりやすく紹介します。
記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。


 

Vol.54

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

2018年に学ぶべきプログラミング言語として注目の「JavaScript」。特集1では、Webサーバーのバックエンドで動作するJavaScript実行環境「Node.js」と、Node.js向けフレームワークの「Express」を、導入方法も含めて分かりやすく紹介します。ITインフラやIoT(モノのインターネット)の技術者は必見です。
特集2では、すぐに使えるシェルスクリプト/ワンライナー集を紹介します。それぞれのシェルスクリプトやワンライナーで記述しているコードを詳しく解説しています。そのまま使ったり、自分なりにカスタマイズしたりと、自由に活用してください。
特集3では、仮想化技術の一つであるコンテナーの運用管理や運用自動化で定番になりつつある「Kubernetes」(クーバネイティス)を解説します。米Google社のクラウドサービス「Google Cloud Platform」を利用して、Kubernetesの実践的な使い方も紹介します。
特別企画では、一般販売も開始したスマートスピーカー「Amazon Echo」をカスタマイズするための「Alexaカスタムスキル」開発を紹介します。自分だけのAmazon Echoを手に入れましょう。
このほか、好評連載の「ラズパイ入門ボードで学ぶ電子回路の制御」では光センサーを扱います。シェルスクリプトマガジン特製の「ラズパイ入門ボード」を活用してください。

今月も読み応え十分のシェルスクリプトマガジン Vol.54。お見逃しなく!

※記事掲載のコードはこちら
※読者アンケートはこちら

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

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

 

シェルスクリプトマガジンvol.54のWeb掲載部分まとめです。

プレゼント&アンケートページはこちら!

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

04  レポート Ubuntu最新版18.04 LTSが登場 FoundationDBのオープンソース化

06  NEWS FLASH

08  特集1 Node.js/Express入門/しょっさん  コード掲載

29  縁の木、育てよう/白羽玲子

30  特集2 シェルスクリプトスニペット集/今泉光之  コード掲載

41  姐のNOGYO

42  特集3 Kubernetesを知る/福田潔  コード掲載

52  特別企画 Alexaカスタムスキル開発入門/岡本秀高 コード掲載

60  ラズパイ入門ボードで学ぶ電子回路の制御/米田聡  コード掲載

64  スズラボ通信/すずきひろのぶ

72  アジャイル開発 Let’s Practice!/熊野憲辰

76  円滑コミュニケーションが世界を救う! /濱口誠一

78  中小企業手作りIT化奮戦記/菅雄一

84  RESEARCHES FOR FUTURE/伊藤貴之

86  香川大学SLPからお届け! /楠目幹  コード掲載

92  法林浩之のFIGHTING TALKS/法林浩之

94  それプロのエバンジェリストから愛をこめて/山本美穂

98  人間とコンピュータの可能性/大岩元

100  バーティカルバーの極意/飯尾淳  コード掲載

106  雲/桑原滝弥・イケヤシロウ

108  漢のUNIX/後藤大地  コード掲載

116  ユニケージ新コードレビュー/大内智明  コード掲載

120  Techパズル/gori.sh

122  コラム「人間がボトルネックになる時代」/シェル魔人

バーティカルバーの極意 第六回(vol.54掲載)

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

著者:飯尾 淳

前回は、政府統計の総合窓口「e-Stat1」から入手できるデータをダウンロードして、八王子市の町・丁目を示す境界データを地図上に可視化する準備をしました。今回は、実際に地図データを活用できるように、データをきれいに整理する作業を実施します。データをきれいにする作業、それを「クレンジング」と呼びます。
記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。


特集3 Kubernetesを知る(vol.54掲載)

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

著者:福田 潔

コンテナー型の仮想化環境を提供するソフトウエア「Docker」の普及により、その運用管理が重要になってきています。Kubernetesは、最も注目されているコンテナー運用管理/運用自動化ツールです。本特集では使い方も含めて、Kubernetesについて分かりやすく紹介します。
記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。


 

特集2 日々の仕事をちょっと便利にする シェルスクリプトスニペット集(vol.54掲載)

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

著者:今泉 光之

日々の業務でよく使い回すちょっとしたコードの羅列を「スニペット」(断片)として用意しておくと便利です。本特集では、作業の自動化に便利であろういくつかのシェルスクリプトスニペットを紹介します。

記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。


 

 

 

特別企画 Alexaカスタムスキル開発入門(vol.54掲載)

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

著者:岡本 秀高

2018 年3 月30 日、スマートスピーカー「Amazon Echo」の一般販売が開始されました。そのバックエンドに使用されるAIアシスタント「Amazon Alexa」を活用することで、自分のオリジナルアプリ(スキル)を簡単に作成できます。本企画で、シンプルなスキルを作りながら、スキルの開発方法を学んでいきましょう。
記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。


 

番外編1 長期サポート版のUbuntu Server 18.04 LTS

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

2018年4月26日に「Ubuntu 18.04 LTS」がリリースされました(図1)。今まで連載で紹介してきた「Ubuntu 16.04 LTS」に代わる長期サポート版(LTS)です。Ubuntu 18.04 LTSでは、カーネルを含む多くのソフトウエアが更新されました。

図1 Ubuntu 18.04 LTSのリリースノート(https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes)

サーバー版の「Ubuntu Server 18.04 LTS」では、ネットワークユーティリティーとして「NetPlan」が採用され、ネットワーク設定は「systemd-networkd」というデーモンで管理されています。また、デフォルトのインストーラーが「Subiquity」となり、九つのステップで簡単にインストール可能になりました。

今回は、このUbuntu Server 18.04 LTSをSubiquityでインストールする方法と、ストレージを柔軟に管理する仕組み「LVM」(Logical Volume Manager)を設定したインストール方法を紹介します。Subiquityでは、インストールが簡単になった分、LVMが設定できません。

第5回 ストレージを柔軟に管理する(LVMの操作2)

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

前回は、Linuxなどのストレージを柔軟に管理する仕組み「LVM」(Logical Volume Manager)の利点として、論理ボリュームを拡張してファイルシステムの容量を増やす方法を紹介しました。今回は、残っている利点の一つとして論理ボリュームの縮小を解説します。
ルートファイルシステムなどに必要以上の容量を割り当ててしまっても、LVMならその容量を減らして減らした容量を別の用途に利用できます(図1)。

図1 論理ボリュームの縮小

第4回 ストレージを柔軟に管理する(LVMの操作1)

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

前回は、Linuxなどのストレージを柔軟に管理する仕組み「LVM」(Logical Volume Manager)の利点と、Ubuntu ServerのストレージをLVMで管理する方法を紹介しました。今回は、LVMの特長である、論理ボリュームを拡張してファイルシステムの容量を増やす方法を、Ubuntu Serverを使って実際に試しながら紹介します(図1)。

図1 論理ボリュームを拡張する

ルートファイルシステムを拡張する

物理ディスクを追加し、それを使ってUbuntu Serverのルートファイルシステムを拡張します。第3回「ストレージを柔軟に管理する(LVMの導入)」で解説した手順で、Ubuntu ServerのストレージをLVMに設定してインストールしておいてください。
いったんシャットダウンして電源を切り、ハードディスクなどの物理ディスクを増設します。増設したら、電源を投入してUbuntu Serverを起動します。ここでは、1Tバイトの新品ハードディスクを追加しました。

追加ディスクのデバイスファイル名を確認する

「parted」コマンドと「grep」コマンドで、追加したハードディスクのデバイスファイル名を調べます。「[sudo] taro のパスワード:」のように表示されたら、自分のパスワードを入力します。

基本的に、Ubuntu Serverをインストールしているストレージには「/dev/sda」のデバイスファイル名が割り当てられます。/dev/sda以外の「ディスク」から始まる行を確認します。容量から、追加したハードディスクのデバイスファイル名は「/dev/sdb」と分かります。

第3回 ストレージを柔軟に管理する(LVMの導入)

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

第1回から2回にわたって、パーティションの分割方法を紹介しました。いくつかのディレクトリーに別々のパーティションを割り当てると、他のディレクトリーから容量の圧迫などの影響を受けることがなくなります。
しかし、容量不足によるシステムやサーバーアプリの停止は免れても、容量不足に陥っているディレクトリーのサイズを簡単に増やせるわけではありません。新しいハードディスク(HDD)などを追加してより大きなサイズのパーティションを作成し、そのパーティションにディレクトリーの中身を丸ごとコピーした上で割り当てし直す作業が必要です。

柔軟なストレージ管理ができるLVM

Linuxには「LVM」(Logical Volume Manager)という仕組みがあります。LVMでは、HDDなどのストレージ内を物理的な区画(物理ボリューム)に分けて、それをいくつか束ねて論理的なストレージとなる「ボリュームグループ」を作成します(図1)。このボリュームグループから必要な容量だけを「論理ボリューム」に割り当てられます。この論理ボリュームは、パーティションと同様に扱えます。

図1 LVM(Logical Volume Manager)の構成

ボリュームグループや論理ボリュームの容量の増減は容易です。容量を増やしたいなら、ボリュームグループに物理ボリュームを追加し、追加したボリュームから必要な容量だけを論理ボリュームに割り当てます。逆に減らしたいなら、論理ボリュームからボリュームグループに容量を戻します。
また、LVMには「スナップショット」という便利な機能があります。ある時点のLVM上にあるデータの状態を瞬時に保存できます。バックアップ用途にも利用できるのでとても重宝します。
今回は、Ubuntu Server上でLVMを扱う方法を紹介します。

第2回 パーティションを分割する(Ubuntu Serverで実施)

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

前回、別々のパーティションに分けたいディレクトリーを示しました。「/boot」「/home」「/var」の3種類です。今回は、実際にUbuntu Serverのパーティションを分割し、それぞれのディレクトリーに割り当てます(図1)。

図1 パーティションを分割して個々のディレクトリーに割り当てる

分割は、Ubuntu Sertverのインストール時に実施するのが簡単です。そこで、Ubuntu Serverのインストールから始めましょう。以前の連載「UbuntuではじめるLinuxサーバー」の第1回で紹介した方法でインストールメディアを作成してください。そして、同じ連載の第2回で解説した手順でインストールを進めます。図2画面になったら、「手動」を選んでパーティションを手作業で作成します。

図2 パーティションの作成方法を選択する画面

インストール対象のマシンに内蔵または接続されているストレージが自動認識されます。「iSCSIボリュームの設定」と「パーティションへの変更を元に戻す」の間に、そのストレージが表示されるのでそれを選択します(図3)。

図3 Ubuntu Serverをインストールするディスクを選択

ここでは何も書き込まれていないハードディスク(HDD)を利用しているので、最初にディスクの先頭にパーティション情報を保存するためのテーブルを作成します。図4の画面で「はい」を選びます。

図4 パーティションテーブルの作成

第1回 パーティションを分割する(ディレクトリー構成)

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

Linuxが使用するディスク容量が不足すると、リモートからアクセスできなかったり、サーバーが正しく稼働しなくなったりするなど、重大な問題が起こりかねません。サーバーを安定的に運用するには、何らかの対策が必要です。ディスク容量が足りなくなる前に増設することも一つの方法ですが、まずはLinuxの特徴を生かした対策を施しておきましょう。
Linuxでは、ディレクトリーごとに別々のパーティション(ディスク内の区画)を割り当てられます。パーティションを分けておけば、あるパーティションが容量不足になっても他のパーティションへの影響はありません。よって、システムやサーバーの稼働に重要なファイルを格納しているディレクトリーと、容量が肥大化しやすいディレクトリーを、あらかじめ別々のパーティションに分けておくことで、最悪の事態を回避できます(図1)。

図1 システムのパーティションを分けておく

はじめてのLinuxサーバー運用管理

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

正常に、安全にLinuxサーバーを稼働させるには、日々の運用管理が重要です。Linux(Ubuntu)サーバーの運用管理に役立つ内容を紹介します。

第1回 パーティションを分割する(ディレクトリー構成)
第2回 パーティションを分割する(Ubuntu Serverで実施)
第3回 ストレージを柔軟に管理する(LVMの導入)
第4回 ストレージを柔軟に管理する(LVMの操作1)
第5回 ストレージを柔軟に管理する(LVMの操作2)
番外編1 長期サポート版のUbuntu Server 18.04 LTS
第6回 ストレージを柔軟に管理する(LVMの操作3)
第7回 ストレージの可用性を高める(RAIDの概要)
第8回 ストレージの可用性を高める(ソフトウエアRAIDの構築1)
第9回 ストレージの可用性を高める(ソフトウエアRAIDの構築2)
第10回 ストレージの可用性を高める(ソフトウエアRAIDの構築3)
第11回 ストレージの可用性を高める(RAIDの運用管理)
第12回 ストレージの可用性を高める(RAIDの復旧)
第13回 ストレージの使用量を制限する(クオータの設定1)
第14回 ストレージの使用量を制限する(クオータの設定2)
第15回 複数のユーザーを効率良く管理する(ユーザー登録)
第16回 複数のユーザーを効率良く管理する(有効期限の制御)
第17回 ネットワークの可用性を高める(チーミング)
第18回 ログを収集する(rsyslogの概要)
第19回 ログを収集する(rsyslogの設定)
第20回 ログを収集する(rsyslogのログメッセージ)
番外編2 Webブラウザーからサーバーへリモートアクセス
第21回 ログを収集する(rsyslogによる一元管理)
第22回 バックアップを取得する(tarコマンド)
第23回 バックアップを取得する(差分と増分)
第24回 定期的にジョブを実行する(cron)
第25回 アクセスを制限する(ACL)
第26回 アクセスを制限する(AppArmor)
第27回 電源障害からサーバーを守る(UPS)
最終回 大切なデータを守る(ディレクトリーの暗号化)

written by シェルスクリプトマガジン編集部

最終回 グループウエアサーバーを作る(Joruri Gwの導入)

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

約7カ月間、「UbuntuではじめるLinuxサーバー」を連載してきました。今回は、その最後としてグループウエアサーバーを構築します。無料で使えるグループウエアサーバーソフトはいくつか存在します。ただし、日本で使うなら国産のグループウエアサーバーソフトがお薦めです。そこで、徳島県のサンブリッジが開発するオープンソースの「Joruri Gw」を使用します(図1)。

図1 グループウエアサーバーソフト「Joruri Gw」の掲示板を表示

Joruri GWは、プログラミング言語「Ruby」とフレームワーク「Ruby on Rails」で開発されています。Webサーバーソフト「Apache HTTP Server」(以下、Apache)、データベース管理システム(DBMS)「MySQL」、分散型メモリーキャッシュシステム「Memcached」と組み合わせて動作します。対応OSはCentOSですが、Ubuntu Server(16.04 LTS)上でも動きます。

スズラボ通信 37 オープンソース・デザインBeagleboard

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

著者:すずきひろのぶ

今回はPocketBeagle を取り上げたいと思います。本連載だけではなくシェルスクリプトマガジンでもなんども取り上げているクレジットカードサイズのコンピュータRaspberry Pi は広く知られていますが、それ以外にもカードサイズの小さなコンピュータがあります。その中の1 つがBeagleBoard.orgFoundation が提供するBeagleBone ファミリです。
そのBeagleBone ファミリを、さらに小さくしたボードコンピュータがPocketBeagle です。

記事本文掲載のシェルスクリプトマガジンvol.53は以下のリンク先でご購入できます。


PokectBeagleのブートの様子
https://youtu.be/0dIX4gAv2ZI

ラズパイ入門ボードで学ぶ 電子回路の制御(vol.53掲載)

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

著者:米田 聡

シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)のプログラミングが楽しめる拡張ボード「ラズパイ入門ボード」を制作しました。本連載では、ラズパイ入門
ボードを使った電子回路制御を取り上げていきます。第1回はOLEDに日本語文字を表示します。
記事本文掲載のシェルスクリプトマガジンvol.53は以下のリンク先でご購入できます。


 

40歳から始める、オレとRubyプログラミング(vol.53掲載)

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

著者:しょっさん

自動的にホストが登録される部分までのプログラムは、これまでずいぶんとリファクタリングを繰り返しながら作ってきました。今回は、残りのサーバによる定期監視部分です。以前、「TaskControl」クラスを作って、将来の実装に備えました。そのTaskControlクラスの改修と、それを制御するためのメインとなる部分を準備します。
従って、今回のプログラミング作業は次の3点です。
1. 全体を制御するメインルーチンの改修
2. 死活を監視するためのTaskControlクラスの完成
3. サーバ側に合わせたエージェント側の改修
記事本文掲載のシェルスクリプトマガジンvol.53は以下のリンク先でご購入できます。


 

漢のUNIX XMLをJSONに変換するコードを書いてみよう(Vol.53掲載)

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

著者:後藤大地

今回は前回作ったサンプルコードをベースに、XMLデータをJSON(JavaScript Object Notation)形式に変換する例を紹介する。XMLデータをJSON形式に変換する、またはその逆を実施するのは需要の高い処理だ。今回紹介するのはサンプルレベルのコードだが、それなりに実用的なコードが書けることをわかってもらえるだろう。
記事本文掲載のシェルスクリプトマガジンvol.53は以下のリンク先でご購入できます。


 

機械学習のココロ(vol.53掲載)

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

著者:石井一夫(久留米大学)

今回は、機械学習においてよく耳にする正則化とスパースモデリングの話題を取り上げます。

記事本文掲載のシェルスクリプトマガジンvol.53は以下のリンク先でご購入できます。


 

訂正情報

以下の箇所に文章漏れがございました。謹んで訂正いたします。

p57 右下 下から7行目

誤り
「L2正則化の場合、パラメータの大きさをだけゼロに近づける操作を行っており、」
訂正
「L2正則化の場合、パラメータの大きさを分散の大きさだけゼロに近づける操作を行っており、」

 

参考リンク

scikit-learnオフィシャル サイト L1 ノルム正則化の解説とサンプルコード(英語・リンク先にpython用コード有り)

sklearn.linear_model.Lasso

 

MathWorks(MATLAB開発元)によるLasso 正則化の解説(日本語)

一般化線形モデルの Lasso 正則化

 

scikit-learnオフィシャル サイト L2ノルム正則化の解説とサンプルコード(英語・リンク先にpython用コード有り)

sklearn.linear_model.Ridge

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

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

著者:朝野有也

こんにちは、香川大学工学部の朝野です。普段からパソコンを使っている方ならJava というプログラミング言語の名前を一度は聞いたことがあると思います。プラットフォームに依存しないため、クライアント側、サーバ側問わず様々なシステムで使用されている言語です。さらに、Java のプログラムを実行するにあたって必要となるJava 仮想マシン(JVM) を利用したJVM 言語というものがあります。JVM 言語は、Java の資源を利用できるのに加えて、Java より後発であるため便利なライブラリや仕組みが揃っていることが多いです。

今回は、簡単な名簿アプリケーションの開発をとおして、JVM 言語の1つであるScala と、Java とScala のWeb アプリケーションフレームワークであるPlay Framework をご紹介します。

記事本文掲載のシェルスクリプトマガジンvol.53は以下リンク先でご購入できます。

 

sbt のインストール:
https://www.scala-sbt.org/1.x/docs/ja/Setup.html

 

登録:

@form(routes.HomeController.insertUser) { @inputText(userForm(“name”), ‘_label -> “名前”) @inputText(userForm(“age”), ‘_label -> “年齢”) }


@form(routes.HomeCon troller.showUser) { }

 

}

 

一覧:

 

@for(user <- users ) {     }

名前 年齢
@user.name @user.age @form(routes.HomeController.deleteUser(user.id)) { }

@form(routes.HomeController.index) { }

 

}

 

特集3 IBM Cloudで学ぶAI・機械学習・ディープラーニング(vol.53掲載)

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

著者:佐々木 敦守、古川 正宏、小薗井 康志

IBMの「Watson」が動くクラウドプラットフォーム「IBM Cloud」を使って、無料でAI、機械学習、ディープラーニングを試してみましょう。
記事本文掲載のシェルスクリプトマガジンvol.53は以下のリンク先でご購入できます。


 

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

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

シェルスクリプトマガジンvol.53のWeb掲載部分まとめです。

プレゼント&アンケートページはこちら!

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

008 特集1  9のステップでしっかりわかる Python入門/西川公一朗  コード掲載

024 特集2  このまま使える! ITエンジニアのための英文メール&チャット 20のポイント/甲斐荘秀生 監修 Paul McMahon  おまけ英文掲載

032 特集3  IBM Cloudで学ぶAI・機械学習・ディープラーニング/佐々木敦守、古川正宏、小薗井康志  コード掲載

049 姐のNOGYO

050 ラズパイ入門ボードで学ぶ電子回路の制御/米田聡  コード掲載

053 スズラボ通信「ネイキッドなGNU/Linuxマシン PocketBeagle」/すずきひろのぶ  リンク掲載

056 機械学習のココロ 「正則化とスパースモデリング」/石井一夫  訂正情報およびリンク掲載

060 バーティカルバーの極意/飯尾淳

066 それプロのエバンジェリストから愛をこめて/山本美穂

070 RESEARCHES FOR FUTURE 青山学院大学 社会情報学部 社会情報学科 伊藤研究室/伊藤一成

072 香川大学SLPからお届け! 「Play Frameworkでアプリケーション開発」/朝野有也 コード掲載

078 ITエンジニアのためのマーケティング入門/水間丈博

082 蛇/桑原滝弥・イケヤシロウ

084 法林浩之のFIGHTING TALKS/法林浩之

086 人間とコンピュータの可能性/大岩元

088 円滑コミュニケーションが世界を救う! /濱口誠一

090 中小企業手作りIT化奮戦記「使うと便利SQL」/菅雄一

095 漢のUNIX「XMLをJSONに変換するコードを書いてみよう」/後藤大地 コード掲載

104 アジャイル開発 Let’s Practice!「インセプションデッキ その1」/熊野憲辰

108 40歳から始める、オレとRubyプログラミング/しょっさん  コード掲載

118 コボラーによるコボラーのためのユニケージ入門「COBOLプログラムのマイグレーション」/野村祐三

126 Techパズル/gori.sh

128 コラム「自主的に考える力を持てるような教育を」/シェル魔人

英文メール・チャット 20のポイント おまけ

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

執筆:甲斐荘秀生  監修:Doorkeeper Paul McMahon

記事本文掲載のシェルスクリプトマガジンvol.53は以下のリンク先でご購入できます。


 

本誌掲載のチャットの前、クライアントとA君との間でつばぜり合いがありました。

翻訳サイトを駆使した英文

 

クライアント:The budget is decided, but can not you do this bu plugging in as well?(予算は決まってるけど、これも差し込みでお願いできません?)

 

A:We can not accept it.(できません。)

 

クライアント:I will put a color on the next month.(来月色を付けますから。)

 

A:This time only. (今回だけですよ。)

 

 

Paulさんによる訂正後の英文

 

クライアント:I know we’ve already fixed the budget, but can’t you fit this in as well?(予算が決まっていることはわかっていますが、追加でやってもらえませんか?)

“as well”には「おまけで」という意味もあります。

 

A:Sorry, we’re not able to budge on it.(申し訳ありませんが、これ以上は動けません)

“budge”は「身動きをとる」という意味です。今回のように否定形で使うと”微動だにしない”のような意味になります。

 

クライアント:How about if we add it to next month’s budget?(来月の予算にその分追加するのではどうでしょう?)

 

A:OK, just this once. (わかりました。今回だけですよ)

 

 

裏にこんなやりとりがあった後、本誌掲載のチャットの続きをご覧ください。

翻訳サイトを駆使した英文

 

A:At last only one. (さいごにひとつだけ。)

 

A:There was an additional request from the client. Can you please take action?(クライアントから追加の要望がありました。対応をお願いできますか?)

 

A:They would like to add a daytime contact to the inquiry form.(問い合わせフォームに日中の連絡先を追加したいとのことです。)

 

B:What a client. (なんてクライアントだ!)

 

Paulさんによる訂正後の英文

 

A:One more thing. (さいごにひとつだけ。)

 

A:There was a new request from the client. (クライアントから追加の要望がありました。)

 

A:They would like to add a new field for a phone number.(電話番号用のフィールドを新たに追加したいとのことです。)

「日中の連絡先」は文脈に依存した言い方なので、「電話番号」と直接伝えた方がよいでしょう。

 

B:I’m getting tired of these last minute requests. (追加要望のせいで嫌になってきた)

 

 

 

特集1 9のステップでしっかりわかる Python入門(vol.53掲載)

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

著者:西川 公一朗

機械学習やデータ解析、人工知能の需要が高まるにつれ、最近ではさまざまな分野でプログラミング言語「Python」を利用する機会が増えています。本特集では入門者や初心者を対象に、9のステップでPython の基本を分かりやすく説明します。
記事本文掲載のシェルスクリプトマガジンvol.53は以下のリンク先でご購入できます。


 

Vol.53

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

機械学習やデータ解析、人工知能、ラズパイ、IoT(モノのインターネット)などのプログラミングで欠かせなくなった言語「Python」(パイソン)。特集1では、九つのステップに分けて、初めての人でもしっかり理解できるようにPythonプログラミングの基礎を解説します。
特集2では、ITエンジニアに向けた、英語のメールやチャットに関する20のポイントを会話形式で紹介します。海外とのやり取りが当たり前になってきた時代にぴったりです。
特集3ではAI・機械学習・ディープラーニングを扱いました。IBM Cloudが用意するライト・アカウントを取得すれば、無料・期間無制限・クレジットカード登録不要でこれらの技術をすべて試せます。
このほか、新連載として「ラズパイ入門ボードで学ぶ電子回路の制御」が始まりました。前回の特集2に続く、シェルスクリプトマガジン特製の「ラズパイ入門ボード」の記事です。この連載から読み始めても十分楽しめます。

今月も読み応え十分のシェルスクリプトマガジン Vol.53。お見逃しなく!

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

第29回 バージョン管理システムを作る(GitBucketの使い方)

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

前回は、「GitBucket」を使ってソースコードやドキュメントのバージョンを管理できる共有サーバー(Gitサーバー)を構築しました。今回は、GitBucketの基本的な使い方を紹介します。

前回と同様に、次のコマンドを実行してGitBucketを起動します。

しばらく待ってから、リモートアクセス用パソコンのWebブラウザーで「http://Ubuntu ServerのIPアドレス:8080/」にアクセスし、GitBucketのトップページを開いてください(図1)。

図1 GitBucketのトップページ

第28回 バージョン管理システムを作る(GitBucketの導入)

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

ソフトウエア開発のための共有サービスとして「GitHub」を使っている人は多いでしょう。GitHubはソフトウエアのソースコードのみならず、各種文書のバージョン管理にも利用できます(図1)。そのため、会社やグループで自由に使えるGitHubを用意できればとても便利です。

図1 Gitサーバーによるバージョン管理システム

Linuxには、GitHubのようなサーバー(Gitサーバー)を構築できるソフトがいくつかあります。具体的には、GitHubと同様のサービス提供にも利用されている「GitLab」、日本人が開発者の「GitBucket」、Go言語で開発されている「Gogs」などです。今回は、これらの中からインストールが簡単なGitBucketをUbuntu Serverに導入します。

第27回 安全なFTPサーバーを作る(ProFTPDの設定)

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

前回構築した、ProFTPDによるFTPSサーバーをインターネットに公開します。インターネットへのサーバー公開については、連載第10回に2種類の方法を紹介しています。「DMZ」と「ポートフォワーディング」です。
DMZの場合、前回の設定のままFTPSサーバーをDMZに配置すれば、そのままインターネットに公開できます。ただし、セキュリティ上あまり好ましくありません。連載第21回で紹介したファイアウォールを自身のサーバー内に構築しましょう。なお、ファイアウォールを経由してFTPSサーバーをインターネットへ公開する場合、FTPSの通信を通過させるための設定が必要です。
ポートフォワーディングの場合も、ファイアウォールと同様にFTPSの通信を通過させる設定が設定が必要です。

アクティブとパッシブ

FTP/FTPSでは、二つのポートを利用して通信します。一つは「制御」用、もう一つは「データ転送」用です。どちらも通信を開始するときに、サーバーとクライアントの間で「コネクション」(接続)を確立します。
FTP/FTPSでは、このコネクション確立方法の違いで「アクティブ」と「パッシブ」という2種類のモードが用意されています。どちらもFTP/FTPSの通信を開始するのはクライアントからです。ただし、アクティブモードではFTPサーバーから、パッシブモードではFTPクライアントから、データ転送用のコネクションを確立しにいきます(図1)。

図1 アクティブとパッシブ

第26回 安全なFTPサーバーを作る(ProFTPDの導入)

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

今回は、インターネットからファイルをダウンロードしたり、アップロードしたりする「FTPサーバー」を構築します(図1)。LinuxでFTPサーバーを構築できるフリーソフトにはいくつかあります。ここでは、「ProFTPD」を用います。

図1 ファイルをダウンロード・アップロードできるFTPサーバー

なお、FTPサーバーの標準プロトコルである「FTP」(File Transfer Protocol)の場合、ユーザー名とパスワード、データがそのまま(平文で)ネットワークを流れます。インターネット上の通信で平文を使用するのはセキュリティ上好ましくありません。そこで、暗号化通信を用いたファイル転送プロトコルの「FTPS」(File Transfer Protocol over SSL/TLS)を利用します。

第25回 インターネットへのアクセスを制限する(Squidの設定)

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

前回は「Squid」を用いて、プロキシーサーバーを構築しました。今回は、インターネットへはプロキシーサーバー経由でしかアクセスできないように(ブロードバンド)ルーターを設定します。加えて、危険なサイトにアクセスできないようにしたりなど、アクセス制限の設定をSquidに追加します(図1)。

図1 プロキシーサーバーによるアクセス制限

なお、システム管理者などの別の人がルーターを管理している場合、ルーターの設定やプロキシーの設置はその人と相談してください。

第24回 インターネットへのアクセスを制限する(Squidの導入)

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

自宅や会社でインターネットへのアクセスを制限したい場合、「プロキシーサーバー」を構築するとよいでしょう。プロキシー(Proxy)とは、英語で「代理」の意味です。
LAN内のコンピュータやネットワーク機器がインターネットに直接アクセスできない環境では、インターネットにアクセスするためにプロキシーサーバーを設置します。プロキシーサーバーがそれらに代わってインターネットにアクセスし、その応答をアクセス元に返します(図1)。
通信がプロキシーサーバーを経由することで、通信内容を監視できます。それによって、アクセスを制限したりが可能です。

図1 プロキシーサーバー経由でアクセス

また、プロキシーサーバーは、アクセスしたデータを一時的に保持する「キャッシュ」機能を備えています。キャッシュ内にデータがあれば、インターネットへのアクセスが不要なるため、通信を高速化できます。
Linuxでプロキシーサーバーを構築できるソフトとして「Squid」があります。今回は、このSquidを導入して、LAN内のコンピュータやネットワーク機器がSquid経由でインターネットにアクセスできるように設定します。

第23回 フォトギャラリーを作る(Lychee)

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

Instagramなどの普及により、スマートフォンで撮影した写真がかなりたまっている人も多いでしょう。Linuxサーバーなら、そのような写真を整理して個人用のフォトアルバムを作成できます。
今回は、WebサーバーソフトのApache HTTP Server(以下、Apache)と、データベース管理システムのMariaDBを使って、写真管理ソフト「Lychee」を動作させ、自分だけのフォトギャラリーを作ります(図1)。

図1 フォトギャラリーのサーバーソフト「Lychee」(ライチ)

第22回 WebサーバーをHTTPSに対応させる(Let’s Encrypt)

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

Webサーバーのプロトコルとして「HTTP」(Hypertext Transfer Protocol)ではなく、「HTTPS」(Hypertext Transfer Protocol Secure)を利用するのが当たり前になりつつあります。HTTPSでは、SSL/TLS(Transport Layer Security/Transport Layer Security)による暗号化を施しています。
米Google社では、インターネット検索サービスのランキングでHTTPSに対応したWebサイトを優遇したり、Webブラウザー「Chrome」でHTTPSに対応したWebサイトをアクセスした場合に「保護された通信」や会社名を表示して安心感を与えたりするなど、HTTPS化を推進しています(図1)。

図1 HTTPSに対応しているWebサイトのアドレス表示例

Apache HTTP ServerNginxなどのWebサーバーソフトでHTTPSを有効にすることは、それほど難しいことではありません。ただし、HTTPSには「SSLサーバー証明書」が必要で、それが正式なものでないと、Webブラウザーに図2のようなメッセージが表示されます。そのサイトを例外などに加えないとアクセスできません。

図2 正式な証明書を持っていないWebサイトの閲覧例

そこで今回は、連載8回で構築したApache HTTP Server(以下、Apache)の通信のHTTPS化と、無料で正式なSSLサーバー証明書を入手・導入する方法を紹介します。

第21回 サーバーを守る(ファイアウォール)

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

不正なアクセスなどからサーバーやネットワークを守る仕組みとして「ファイアウォール」があります。ファイアウォールは、日本語で「防火壁」という意味です。ファイアウォールを通過する通信を監視し、サーバーやネットワーク内外への不適切な通信の遮断などに利用します(図1)。

図1 ファイアウォールによるアクセス制御

通常、インターネットの出入り口に配置される「ゲートウェイ」となるルーター(ブロードバンドルーター)がファイアウォールの機能を備えています。ただ、連載第10回で説明したDMZ(非武装地帯)に配置したサーバーの場合、内部にファイアウォールを設置して自らを守る必要があります。

Vol.52

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

普及期を向かえたコンテナー型仮想化ソフトウエア「Docker」。ITエンジニアとしては、知っておくべきものの一つです。特集1では、Dockerの概要や仕組みを説明し、CentOS上への導入方法や基本的使い方を紹介しています。
特集2では、シェルスクリプトマガジン編集とビット・トレード・ワンで共同制作したRaspberry Pi用拡張ボード「ラズパイ入門ボード」の使用方法を解説しています。LEDやスイッチ、圧電スピーカーなどの制御を学ぶにはビッタリです。本誌と同時にラズパイ入門ボードも発売しますので、一緒に購入してラズパイプログラミングを楽しんでみてください。
そのほか、大学研究室や農業体験を紹介する連載記事を開始しました。

今月も読み応え十分のシェルスクリプトマガジン Vol.52。お見逃しなく!

ラズパイ入門ボード購入に関してはこちら

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

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

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

シェルスクリプトマガジンvol.52のWeb掲載部分まとめです。

プレゼント&アンケートページはこちら!

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

4 レポート スマートスピーカーが相次いで登場

6 特集1 Dockerを使ってみよう/末安泰三

20 特集2 ラズパイ入門ボードの使い方/米田聡 コード掲載

30 RESEARCHES FOR FUTURE 千葉工業大学 先進工学部 未来ロボティクス学科 自律ロボット研究室/上田隆一

32 機械学習のココロ 丁半バクチで勝負する機械学習の世界(モンテカルロ法)/石井一夫 リンク掲載

39 姐のNOGYO 40 アジャイル開発 Let’s Practice! システム設計/熊野憲辰

44 中小企業手作りIT化奮戦記 第32回 眠れない地獄の夜/菅雄一

50 円滑コミュニケーションが世界を救う!/濱口誠一

52 縁の木、育てよう ゲスト エウレカ 森川託磨さん /白羽玲子

56 人と月/桑原滝弥・イケヤシロウ

58 コボラーによるコボラーのためのユニケージ入門 COBOLとユニケージの違い/野村祐三

64 漢のUNIX サードパーティ製ライブラリを使う/後藤大地 コード掲載

73 バーティカルバーの極意/飯尾淳

78 人間とコンピュータの可能性/大岩元

80 香川大学SLPからお届け!/花川直己、家平和輝、森田浩平

84 法林浩之のFIGHTING TALKS/法林浩之

86 40歳から始める、オレとRubyプログラミング/しょっさん コード掲載

96 ITエンジニアのためのマーケティング入門 第28回 デジタルマーケティング その4/水間丈博

100 Techパズル/gori.sh

102 1足す1は3にはならない/シェル魔人

機械学習のココロ(vol.52掲載)

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

著者:石井一夫(久留米大学)

世の中は機械学習や人工知能のブームです。これに相まって、統計学や数学の価値が再認識されています。数学と聞くと学生の頃のトラウマが甦り、ついつい敬遠しがちな人もいるかもしれませんが、ある種の必要性と割り切り、ワクワクするような新しいトレンドとして再認識できると、それなりに楽しいものです。

記事本文掲載のシェルスクリプトマガジンvol.52は以下のリンク先でご購入できます。


 

「1、 円周率の計算」の参考にしているサイトへのリンク(リンク先にコード有り)

pythonで円周率を求める (Remrinのpython攻略日記)

 

「2、積分計算と確率計算」の参考にしているサイトへのリンク(リンク先にコード有り)

モンテカルロ積分 (人工知能に関する断創録)

 

「3、機械学習モデルとしての最尤推定法、最小二乗法、回帰分析への応用」の参考リンク(説明のみ)

最小二乗法と最尤法の関係 (具体例で学ぶ数学)

「4、ベイズ予測モデルを作成するためのマルコフ連鎖モンテカルロ法」の参考リンク(リンク先にコード有り)

The Bayesian t-Test (henryhhammond.com)

 

ラズパイ入門ボードの購入について

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

動画による製品紹介はこちら

プログラミング例はこちら

シェルスクリプトマガジン(Vol.52)の特集2で紹介したラズパイ入門ボードの完成品20セット組み立てキット10セットを限定発売します(日本国内のみ)。お1人様どちらか1セットになります。

完成品が3980円(税別)、組み立てキットが2780円(税別)です。送料は650円(税込み)になります(シェルスクリプトマガジン Vo.52は完売しました)。PayPalまたは銀行振り込みでのお支払いになります。

以下の購入申し込みを記入の上、「raspi@usp-lab.com」宛てにメールしてください。2~3営業日以内にメールにて支払い方法などをお送りいたします。発送はVol.52発売日の2018年1月25日以降になります。なお、売り切れの場合もご連絡いたします。

売り切れの際は、ビット・トレード・ワンの公式オンラインショップAmazon.co.jp共立エレショップおよび、シリコンハウス各店、千石電商各店、デジット各店、マルツエレック各店からご購入ください(いずれも1月25日販売開始予定)。

++++++ラズパイ入門ボード購入申し込み++++++

■購入希望商品

○完成品:4948円
○組み立てキット:3652円
※購入を希望する商品の「○」を「●」に変更してください。

■代金お支払い方法

○PayPal

○銀行振り込み

※希望する方の「○」を「●」に変更してください。

お名前:
お名前のよみがな:
郵便番号:
ご住所:
お電話番号:
+++++++++++++++++++++++++++++++++

 

第20回 オンラインストレージを作る(アプリ導入)

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

前回は「Nextcloud」のユーザー作成と基本操作を解説しました。今回は、Netcloudの機能を拡張するアプリについて紹介します。Netcloudの本体には、オンラインストレージに必要な最低限の機能しか組み込まれていません。Netcloudに組み込むことができるアプリを有効化することによって、Googleカレンダーや、Googleドライブのようなオンラインオフィス機能などを追加できます(図1)。

図1 アプリを有効にすることでNextcloudの機能拡張ができる

それでは、前回と同様にリモートアクセス用パソコンでWebブラウザーを起動して「http://Ubuntu ServerのIPアドレス:8080/」にアクセスします。ログイン画面から管理者アカウントでログインします。

第19回 オンラインストレージを作る(基本操作)

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

前回は「Nextcloud」を使ってオンラインストレージを構築しました。今回は、Netcloudのユーザー作成と基本的な使い方を紹介します。
前回と同様にリモートアクセス用パソコンでWebブラウザーを起動して、「http://Ubuntu ServerのIPアドレス:8080/」にアクセスします。ログイン画面から管理者アカウントでログインします(図1)。

図1 Nextcloudのログイン画面

ラズパイ入門ボード向けソースコード集

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

40歳から始める、オレとRubyプログラミング(vol.52掲載)

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

著者:しょっさん

前回は、インフラ管理アプリ「Reins」の今後の方針について、「プログラムを俯瞰してリファクタリングしよう」「Reins Agentを監視できるようにしよう」「データフォーマットを標準化しよう」という三つのポイントに着目して定めました。
今回は、前回定めた方針に従って、プログラムを更新します。ただし、すべての変更点を載せるとプログラムだけでも相当な分量になりそうだったので、次の二つについてのみ、プログラムと変更点を説明します。
記事本文掲載のシェルスクリプトマガジンvol.52は以下のリンク先でご購入できます。


特集2 ラズパイ入門ボードの使い方(Vol.52掲載)

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

著者:米田聡

シェルスクリプトマガジンでは、小型コンピュータボード「Raspberry Pi」(ラズパイ)のプログラミングが楽しめる拡張ボード「ラズパイ入門ボード」を制作しました。本特集では、このラズパイ入門ボードに関する基本的な使い方の一部を紹介します。
記事本文掲載のシェルスクリプトマガジン vol.52は以下のリンク先でご購入できます。

 

漢のUNIX サードパーティ製ライブラリを使う(Vol.52掲載)

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

著者:後藤大地

これまでシステムに用意されている標準ライブラリだけを使ってソースコードを作成する例を取り上げてきたが、次のステップとしてサードパーティ製のライブラリを使う方法を紹介しよう。システムに標準で用意されているライブラリはすべての処理に対応しているわけではないので、特定の処理をしようと思ったらそれ向けに開発されたサードパーティ製ライブラリを利用することになる。
記事本文掲載のシェルスクリプトマガジンvol.52は以下のリンク先でご購入できます。


Open USP Tukubaiシンプルレシピ Part1 テキスト編 (後半・ルービックキューブをつくる など)

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

Tukubai、それはシェルスクリプトの使い易さを加速させるコマンド群。
前号では、そのオープン版“Open usp Tukubai”を紹介したが、やり残したことがあった。
豊富なレシピの紹介である。
そこで今号と次号の二回に渡り、Tukubaiの、特に実際のコーディングスタイルが分かり易いレシピを特集する。
「シェルスクリプトとは、僅かなコマンドの追加で、こんなにも応用の効く言語になるのか!」と、あなたはきっと驚くことだろう。

written by USPマガジン編集部

本記事は、USP MAGAZINE vol.5(2012年夏号)掲載記事のWEB再録記事(後半部分)です。

前半はこちら→シェルスクリプトに何でもおまかせ Open USP Tukubaiシンプルレシピ Part1 テキスト編 (前半)

本記事掲載のUSP MAGAZINE vol.5は以下リンク先でご購入できます。

 

レシピ2 ルービックキューブを作る。

問題

Tukubai はシェルスクリプトをデータベース言語化させるためだけのコマンドセットではないというが、それならもっと一般的な例は無いのか。

数理的な操作の様子が伺えるコードが見てみたい。例えば、何らかの科学技術計算を行っているプログラムであれば、それがわかりやすいと思うのだが。

解答

実際に科学技術計算にも利用しているのだが、そのような例は専門分野の知識から解説しなければならない。

そこでここでは専門分野知識の解説が不要なゲームのレシピを紹介しよう。数学パズル的要素が強いゲームであれば、数理的な操作も見え易いからだ。

■ サンプルプログラム
そこでルービックキューブ(3 × 3 のオーソドックスなもの)を作ってみた。

ルービックキューブは、立方体の一面が一つの行列に対応した6 つの行列であると見なせる。キューブを動かすと、その行列のうちの一つで± 90°回転が発生し、それに伴って隣接する4 つの面に相当する行列の一部要素が、別の行列に移動する。この動きを、シミュレートしようというものである。

UECでの解説はこちら。

リスト3.rubik-cube.func : ルービックキューブプログラム(ファイル2・関数定義)

第18回 オンラインストレージを作る(Nextcloud)

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

ファイルの保存ややり取りに、GoogleドライブDropboxOneDriveなどの「オンラインストレージ」サービスを利用している人も多いでしょう。オンラインストレージは、インターネット上に配置されたファイル共有サーバーです。インターネットに接続できる環境があれば、いつでもどこでもその上に保存したファイルにアクセスできます。
今回は、このオンラインストレージをUbuntu Server上に構築します。オープンソースのオンラインストレージソフトとしては「Nextcloud」が有名です。ユーザーインタフェースの見た目もよく、パソコンやスマホ向けにファイル同期用の専用クライアントソフトが用意されています。
Nextcloudはプログラミング言語「PHP」で書かれています。動かすには、WebサーバーソフトのApache HTTP Server(以下、Apache)、データベース管理システムのMySQLまたはMariaDBが必要です(図1)。

図1 Nextcloudの動作環境

Open USP Tukubaiシンプルレシピ Part1 テキスト編 (前半・帳簿を作る)

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

Tukubai、それはシェルスクリプトの使い易さを加速させるコマンド群。
前号では、そのオープン版“Open usp Tukubai”を紹介したが、やり残したことがあった。
豊富なレシピの紹介である。
そこで今号と次号の二回に渡り、Tukubaiの、特に実際のコーディングスタイルが分かり易いレシピを特集する。
「シェルスクリプトとは、僅かなコマンドの追加で、こんなにも応用の効く言語になるのか!」と、あなたはきっと驚くことだろう。

written by USPマガジン編集部

本記事は、USP MAGAZINE vol.5(2012年夏号)掲載記事のWEB再録記事(前半部分)です。

後半は2018年1月9日に公開予定です。

本記事掲載のUSP MAGAZINE vol.5は以下リンク先でご購入できます。

準備 Tukubaiを知り、そして始める。

Tukubai は、シェルスクリプトをプログラム開発言語として本気で使うべく作られたコマンド集だ。これを制作したUSP 研究所は実際に、Tukubai を用いて様々な業務システムの開発や開発支援を行っている。
2012 年2 月、このうち使用頻度が高いもの中心に選ばれ、オープンソースとして公開された。それがOpen usp Tukubai である。

シェルスクリプトで開発するのはなぜか

■ なぜシェルスクリプト?
意外に思うかもしれないが、シェルスクリプトは上手に使えば、C 言語並のハイパフォーマンスなプログラムを、C 言語より遥かにラクに作れる。
ヒミツは、Unix システムコールやライブラリーの殆ど素の能力を、Unix シェル自身やコマンド(cat, sed, awk, grep 等々……の馴染みのもの)から直接使える点にある。
Unix システムコールやライブラリーはカーネルに直結しており、コンピューターの本気の性能や堅牢性の恩恵に預かれるのだ。Unixシェルはいわばその上に被さる薄い皮。だから、使わない手はない。

■ なぜTukubai?
しかし、実際の業務アプリケーションやWeb アプリケーションを作ろうとすると、そこで頻出する処理を簡単にやってくれるコマンドがなかなか無い。一般的にシェルスクリプトが開発言語として利用されない理由もここにある。そこを補うべく作られたものがTukubai というわけだ。
本特集では、Tukubai を使うと、どんなことができて、それはどんなふうに書けるかということがわかるレシピを紹介しよう。

第17回 ブログサイトを作る(ユーザー追加と記事投稿)

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

今回は、WordPressで構築したブログサイトへのユーザー追加と記事投稿の方法を紹介します。ユーザーの種類(ロール、役割)は「購読者」「寄稿者」「投稿者」「編集者」「管理者」の5種類に分かれています(図1)。

図1 WordPressのユーザーロール

それぞれのユーザーは、自分専用の管理画面を持つことができ、それぞれの権限においてプロフィールの変更、記事の投稿、寄稿記事の査読や公開、システムの運用管理などが可能です。

第16回 ブログサイトを作る(メール配信)

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

前回は、オープンソースのブログソフト「WordPress」をインストールしてブログサイトを構築しました。このWordPressでは、メールを使って各種情報を通知します。そこで使い始める前に、Ubuntu ServerにSMTP(Simple Mail Transfer Protocol)サーバーをインストールして、米Google社のフリーメールサービス「Gmail」経由で通知メッセージを配信する環境を構築します(図1)。

図1 メール配信機能を追加する

第15回 ブログサイトを作る(WordPress)

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

今回は、今まで紹介したWebサーバーソフト「Apache HTTP Server」(以下、Apache)とデータベース管理システム(DBMS)「MariaDB」、フリーのブログソフト「WordPress」を組み合わせてブログサイトを構築します(図1)。

図1 WordPressでブログサイトを構築する

WordPressは人気が高い、フリーのブログソフトです。プログラミング言語の「PHP」で開発されています。サードパーティー製など、さまざまなプラグイン(アドオンソフト)が提供されていて、機能拡張が簡単にできます。実は、シェルスクリプトマガジンのサイトもWordPressを使っています。ここでは2017年11月21日に公開されたバージョン4.9ではなく旧版を利用していますが、バージョン4.9でも手順は同じです。

第14回 データベースを作る(権限)

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

前回は、データベース管理システム(DBMS)「MariaDB」のデータ操作方法を紹介しました。今回はユーザーを登録し、そのユーザーに対してデータベースやテーブルの各種操作権限を設定します。
MariaDBの初期状態では、管理者となる「root」しか登録されていません。このrootユーザーならMariaDBのすべての操作が可能ですが、rootだけでMariaDBを運用するのはセキュリティ上問題です。
MariaDBには、Ubuntu ServerなどのOSに関係ない専用のユーザーを複数登録できます。このユーザーごとに、データベースやテーブルへの各種操作に対する許可や禁止を設定できます(図1)。

図1 データベースやテーブルに対してユーザーごとに各種操作権限を設定できる

Vol.51

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

超小型パソコンや電子工作など、さまざまな用途に活用できるシングルボートのコンピュータ「Raspberry Pi」(ラズベリーパイ)。特集では、簡単な電子回路の作り方、ラズパイから電子回路をシェルスクリプトで制御する方法を初心者にも分かりやすく紹介しています。
ITトークイベント「TechLION」では、セキュリティエンジニアの雄、辻伸弘さん・根岸征史さん、そしてめったに人前に出ないpiyokangoさんが、セキュリティ業界のトレンドと情報発信について語ります。
マイコン「Arduino」で鉄道模型を動かしてみたり、連載「機械学習のココロ」ではベイズモデリングを紹介したりなど、盛りだくさんの内容になっています。

今月も読み応え十分のシェルスクリプトマガジン Vol.51。お見逃しなく!

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

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

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

 

シェルスクリプトマガジンvol.51のWeb掲載部分まとめです。
アンケートページはこちら!
06 特集 シェルスクリプトではじめるRaspberry Pi電子工作入門/麻生二郎  コード掲載
20 法林浩之のFIGHTING TALKS/法林浩之
22 TechLION再録「セキュリティエンジニアっておいしいの?」/ゲスト:辻伸弘、根岸征史、piyokango MC:法林浩之、馮富久
27 姐のBENTO
28 コボラーによるコボラーのためのユニケージ入門 COBOLからの移行/野村祐三
34 中小企業診断士が解説する、超実践的な会話術! 円滑コミュニケーションが世界を救う! /濱口誠一
36 香川大学SLPからお届け! マイコンボードArduinoで鉄道模型を動かしてみる/太田圭祐   コード掲載
40 人間とコンピュータの可能性/大岩元
42 アジャイル開発 Let’ Practice! スプリントビュー/熊野憲辰
46 中小企業手作りIT化奮戦記 TCP/IP通信の仕組み・ルーティング/菅雄一
54 バーティカルバーの極意 ハノイの塔をシェルスクリプトで解く/飯尾淳 コード掲載
58 ライブラリ/桑原滝弥・イケヤシロウ
60 機械学習のココロ ベイズモデリング入門/石井一夫
65 スズラボ通信 Raspberry Pi 3で湿温度計サーバを作ってみた/すずきひろのぶ コード掲載
70 ITエンジニアのためのマーケティング入門 デジタルマーケティング その3/水間丈博
74 それプロのエバンジェリストから愛をこめて/山本美穂
77 漢のUNIX テストフレームワークkyua その3/後藤大地  コード掲載
86 ユニケージ開発手法コードレビュー/鮎瀬伊矩磨  コード掲載
92 40歳から始める、オレとRubyプログラミング/しょっさん  コード掲載
100 Techパズル/gori.sh
102 IT業界の悪しき慣習/シェル魔人

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

第13回 データベースを作る(データの操作)

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

前回は、データベース管理システム(DBMS)「MariaDB」内にデータベースとテーブルを作成しました。今回は問い合わせ言語「SQL」を使って、テーブル内にデータを挿入し、検索、削除、更新をするデータ操作方法を紹介します(図1)。前回作成した「personal」データベースと「roster」テーブルを引き続き利用します。

図1 データベースの操作

スズラボ通信 36 湿温計サーバを作ってみた(2)(本誌vol.51掲載)

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

著者:すずきひろのぶ

前回は、温湿センサーモジュールAM2320 をRaspberryPi 3 ( 以下 RPi3)に接続しI2C ( アイ・スクエアード・シー)からデータを取得しデータベースに登録していくまでのプログラムを作成しました。今回は、データベースをアクセスし表示するWeb アプリケーションを作成します。

記事本文掲載のシェルスクリプトマガジンvol.51は以下リンク先でご購入できます。

Hello World

 

hello again

 

“,row[1],” “, temp/10.0, ” “,hum/10.0,”

\r\n”
end
db.close
print “\n

以下はvol.50掲載コードのおさらいです。

以下は本誌に公開されていないお楽しみコードです。どうぞご利用ください。

 


 

 

 

ユニケージ開発手法 コードレビュー vol.40(本誌vol.51掲載)

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

著者:鮎瀬伊矩磨

今回はユニケージ開発において、ウェブブラウザ上で住所などを選択する際に用いるドリルダウン機能のスクリプトを紹介します。

記事本文掲載のシェルスクリプトマガジンvol.51は以下リンク先でご購入できます。

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

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

著者:太田圭祐

イタリアで生まれたマイコンボードArduinoで鉄道模型を動かしてみる

こんにちは。香川大学工学部 学部3 年生の太田です。高校時代にArduino と出会い、L チカやモータの制御などをして遊んできました。今回、記事を書くにあたり、改めてArduinoと向き合ってみました。
Arduino では、ハードウェアの上で動作するソフトウェアの開発用にC/C++ 言語ベースのシンプルなArduino 言語を採用しています。そのためC 言語を使っている人にとって、とても馴染みやすい文法を持っています。更に、開発環境が無料で提供されていることから、ハードウェアプログラミングの学習を始めやすいこともArduino の特徴です。
今回はこのArduino を用いて、鉄道模型を実物同様に加減速制御するコントローラを作っていきましょう。

記事本文掲載のシェルスクリプトマガジンvol.51は以下リンク先でご購入できます。

第12回 データベースを作る(テーブル作成)

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

前回、Ubuntu Serverにデータベース管理システム(DBMS)「MariaDB」をインストールしました。今回は問い合わせ言語「SQL」などを使って、MariaDB内にデータベースやテーブルを作成する方法を紹介します。

データベースとテーブル

最初に「データベース」という器を用意します。その中に表形式でデータを格納する「テーブル」を作成します(図1)。これで、MariaDB内にデータを管理できる環境が整います。

図1 データベースとテーブル

データベースは目的やシステムごとに用意します。一つのMariaDB内に複数のデータベースを作成できます。テーブルは、Microsoft Excelで作った表のように管理するデータ単位で用意します。データベース内には複数のテーブルを配置できて、それらを関連付けることができます。
それでは、データベースとテーブルを作りましょう。例として、一つのテーブルで氏名、フリナガ、年齢のデータを管理する個人情報データベースを構築します。

40歳から始める、オレとRubyプログラミング(vol.51掲載)

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

著者:しょっさん

 急に寒くなりましたね。雨も降り続いていて、寒い寒いと思っていたら、台風まで来ました。まったく外へ出られるような天候ではありません。こうなったら仕方ありません。家に引きこもってプログラミングはいかがですか。それでは、今月もがんばっていきましょう。

記事本文掲載のシェルスクリプトマガジンvol.51は以下リンク先でご購入できます。

漢のUNIX テストフレームワームKyua その3(Vol.51掲載)

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

著者:後藤大地

 前回はコマンド開発目的で利用できるテストフレームワーク「Kyua」(https://github.com/jmmv/kyua(https://github.com/jmmv/kyua)で、実際にどのようにデプロイして開発に利用していけばよいのかを解説した。また、make(1) の仕組みを使い、どのディレクトリにいてもmake test でテストが実行されるようにして、テストと開発を同時に進める方法についても説明した。
 今回は具体的にどんな手段で実際のコーティングとテストを実施していくのかを紹介する。
記事本文掲載のシェルスクリプトマガジンvol.51は以下リンク先でご購入できます。

バーティカルバーの極意 第五回(vol.51掲載)

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

著者:中央大学 教授 飯尾淳

秋の夜長はパズルで頭のトレーニングなんていかがでしょう?今回のバーティカルバーは、3本の縦棒に登場してもらいます。3本の棒を備えた「ハノイの塔」というパズルです。皆さんも、名前くらいは聞いたことがあるのではないでしょうか。そのパズルをシェルスクリプトで解いていくことを考えます。

記事本文掲載のシェルスクリプトマガジンvol.51は以下リンク先でご購入できます。

特集 シェルスクリプトではじめる Raspberry Pi電子工作入門(Vol.51掲載)

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

著者:麻生 二郎

パソコン、IoT(モノのインターネット)など、さまざまな用途に活用できるシングルボートのコンピュータが「Raspberry Pi」(ラズベリーパイ)です。このRaspberry Piは、Linuxコマンドを組み合わせた「シェルスクリプト」を知っていればいろいろと楽しめます。発光ダイオード(LED)、押しボタンスイッチ、型液晶パネル(LCD)の電子パーツと、簡単なシェルスクリプトを利用してRaspberry Piの電子工作を始めましょう。
記事本文掲載のシェルスクリプトマガジンvol.51は以下リンク先でご購入できます。

第11回 データベースを作る(MariaDB)

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

コンピュータでデータを管理する仕組みとして「データベース」があります。サーバー内にデータベースを構築すれば、大量のデータを蓄積してその中から必要なデータだけを検索して容易に取り出すことができます(図1)。

図1 データを蓄積・管理できる「データベース」

今回は、このデータベースを管理するソフトウエア「データベース管理システム」(DataBase Management System、DBMS)をUbuntu Serverに導入します。

vol.50 掲載「中小企業手作りIT化奮戦記」訂正情報

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

本誌40ページの以下の写真に関して「10Base5規格のLAN」として紹介しましたが、正しくは「10Base2規格のLAN」でした。

この場にて訂正させていただくとともに、読者の皆様には謹んでお詫びいたします。

 

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

 

第10回 インターネットに公開する

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

Linuxで構築できるサーバーの多くは、インターネットに公開することを前提としています。ただ、通常の企業ではシステム管理者が社内のネットワークを管理していてセキュリティなどの理由から簡単にサーバーを公開させてくれません。自宅でもセキュリティは重要ですが、それさえ注意すればブロードバンドルーターの設定を変更して比較的簡単にサーバーをインターネットに公開できます。
そこで、今回は自宅のLAN環境でサーバーをインターネットに公開する方法を紹介します。

2種類のインターネット公開方法

自宅内に設置したサーバーをインターネットに公開する場合、外部からブロードバンドルーター(以下、ルーター)経由でサーバーにアクセスできるように設定します。その設定は、2種類存在します。「DMZ」と「ポートフォワーディング」を利用する方法です。

DMZとは

DMZは「DeMilitarized Zone」(非武装地帯)の略で、ルーターで守られていない領域です。通常インターネットからのアクセスは、ルーター内側のネットワーク機器への応答でない限り、ルーターの入り口で遮断されます。そのため、サーバーに届けることはできません。
DMZにサーバーを配置すると、それらのアクセスはすべてサーバーに届けられます(図1)。このようにしてサーバーをインターネットに公開します。

図1 DMZによるサーバー公開

なお、さまざまなアクセスがサーバーにそのまま届くので、サーバー自身でセキュリティ対策をしっかりとしておかないといけません。サーバーの運用管理としてはとても勉強になりますが、セキュリティ対策に詳しくないと危険です。最低限のセキュリティ対策だけ施してすぐにサーバーを公開したい場合は次のポートフォワーディングを利用するのがよいでしょう。

ポートフォワーディングとは

ポートフォワーディングは、インターネット側の特定ポートを、ルーター内側のネットワーク機器のポート(任意)に割り当てる機能です。そのポートへアクセスされた場合、ルーターがそれをサーバーに転送します(図2)。サーバーソフトごとに利用するポートが決まっていますので、公開前にあらかじめポート番号を調べておきます。

図2 ポートフォワーディングによるサーバー公開(80番ポートのみ)

ポートフォワーディングでは、サーバー自体はルーターが守りますから、セキュリティ対策はアクセスを許可しているサーバーソフトに対してだけで構いません。

第9回 Webサーバーを作る(アプリを動かす)

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

前回は、WebサーバーソフトのApache HTTP Server(以下、Apache)をインストールし、動作に重要なファイルやディレクトリーの役割を説明しました。今回は、簡単なWebアプリケーションを作成して、Apache上で動かしてみます。

Webアプリケーションについて

インターネットで動いているほとんどのWebサイトでは、動的にページを生成するためのWebアプリケーションが動作しています。このWebアプリケーションはさまざまな言語で作成できます。また、動かす方法もたくさん用意されています。
古くからある、Webアプリケーションを動かす仕組みとして「CGI」(Common Gateway Interface)があります。CGIなら、特別な仕組みを必要とせずにApacheでWebアプリケーションを動作できます(図1)。

図1 CGIプログラムならApacheだけでWebアプリが動く

ちなみに、CGIを利用するプログラムを「CGIプログラム」と呼んでいます。インターネット上ではPerlで記述したCGIプログラムをよく見かけますが、標準入出力や環境変数などを利用できるプログラミング言語ならどのようなものでも構いません。本連載では、シェルスクリプトでCGIプログラムを記述します。

会社の価値を生むのは、外注先ではなくて会社自身! 「システム内製化シンポジウム」 レポート

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

システム内製化を推進・検討している企業を対象にした「システム内製化シンポジウム」が、2017年10月18日にユニバーサル・シェル・プログラミング研究所主催で開催された。

システム内製化シンポジウムの講演風景

デジタル化時代を迎えた現在、ITシステムに求められるものは時代のニーズに俊敏に応え、ビジネスPDCAを回せるシステムである。この要請に応えられるITシステム開発のキーとなる「内製化」について、トレンド研究や事例を通して共に考えていくシンポジウムとなった。

 

最初の講演は、元日経コンピュータ編集長であり現日経BP総合研究所・主席研究員の谷島宣之氏による「なぜ今システム内製か ~損得と実現性をとことん考える~」。

IT関係者に広く読まれてきた連載「動かないコンピュータ」を長年担当し、動かないコンピュータ撲滅のための10カ条をまとめるなど、ITシステム開発に造詣の深い谷島氏は、システム内製の「得」として、

・企業優位につながり、状況に応じて業務とシステムを改善し続けられる高い価値

・業務を知っている人の参画による低コスト

・自分の業務が自分で改善できる楽しさ

を挙げた。

第8回 Webサーバーを作る(Apache)

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

今回はインターネットの定番といえるWebサーバーを構築します。Linuxで動作するWebサーバーソフトはいくつかあります。最もシェアが大きく多機能な「Apache HTTP Server」、低リソースでも高速に動作する「nginx」(エンジンエックス)、HTTP/2のプロトコルに標準対応した「H2O」などです。ここでは、これらの中からApache HTTP Server(以下、Apache)を扱います(図1

図1 Apache HTTP ServerによるWebサーバー

Vol.50

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

メインフレームやオフコンからUnix/Linuxシステムへの移行時に課題になるのが、事務処理用プログラミング言語「COBOL」(Common Business Oriented Language)で書かれたプログラム――。今号より開始した新連載「コボラーのためのユニケージ入門」では、Unix/Linuxシェルベースの開発手法「ユニケージ」によるスムーズな移行方法を紹介していきます。
また、連載「それプロのエバンジェリストから愛をこめて」では、この秋に登場する、Windows 10大型アップデート「Fall Creators Update」に含まれるLinux環境「Windows Subsyetem for Linux」(WSL)に注目。その概要を分かりやすく解説しています。
さらに、いつもユニークな実験を行う連載「スズラボ実験室」では、Raspberry Pi(ラズパイ)に温湿度センサーを接続し、Rubyプログラムを使って温度と湿度をデータベースに記録する方法を紹介しています。
このほか、scikit-learnの概要を紹介する連載「機械学習のココロ」など、盛りだくさんの内容になっています。

今月も読み応え十分のシェルスクリプトマガジンvol.50。お見逃しなく!

第7回 ファイルサーバーを作る(Samba)

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

今回からいくつかのサーバーを構築していきます。まずは、最も身近なファイルサーバーです。ファイルサーバーを構築するソフトとしては「Samba」があります(図1)。

図1 Sambaによるファイルサーバー

このSambaは、Windowsのファイルサーバーと互換性があり、NTドメインやActive Directoryにも対応しています。手早く使いたいなら、ワークグループのファイルサーバーとして動かすとよいでしょう。

第6回 リモートアクセス環境の構築(ホストベース認証)

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

前回はリモートアクセス環境でファイルを簡単にやり取りする方法を説明しました。今回は、リモートアクセス環境の最後として、特定のパソコンのみリモートアクセスを可能にする方法を紹介します。

ホストベース認証を利用する

ネットワークにつながったどのパソコンからでもユーザー名とパスワードだけでサーバーにリモートでアクセスできると便利です。しかし、多くのユーザーが接続されたネットワーク環境の場合はセキュリティ上不安です。特にインターネットからリモートアクセスを許可するには、第三者からの不正侵入などに備えなくてはいけません。
そこで「ホストベース認証」という方法を用います。連載第4回でSSHでは公開鍵暗号の方式を利用していると説明しました。サーバー側の公開鍵をリモートアクセス用パソコンが受け取り、その鍵と、ペアとなる鍵(秘密鍵)を使ってお互い暗号化することで通信できると解説しました。ホストベース認証では、パソコン側に秘密鍵、サーバー側にペアとなる公開鍵を配置します。パソコン側の鍵がサーバー側の公開鍵とペアでない限り、アクセスが許可されません(図1)。

図1 ホストベース認証によるアクセス許可/禁止

第5回 リモートアクセス環境の構築(ファイルの送受信)

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

前回はUbuntu Serverにリモートからアクセスする環境を構築しました。これでコマンドによる操作が可能になりました。今回は、Ubuntu Serverとリモートアクセス用パソコンとの間でファイルをやり取りする方法を紹介します。

SFTPやSCPでファイルを送受信する

Ubuntu Server内でSSHサーバーが稼働していれば、ファイル転送の「SFTP」(Ssh File Transfer Protocol)や、ファイルコピーの「SCP」(Secure CoPy)でファイルを送受信できます。ただし、リモートアクセス用のパソコン側にSCPやSFTPに対応したクライアントソフトが必要です。
Tera TermもSCPに対応しているため、SCPによるファイルの送受信ができますが使いやすいとはいえません。Windowsの場合、「WinSCP」という無料ソフトがあります。このソフトだと、ファイルやフォルダーをドラック&ドロップするだけで送受信が可能です。
WinSCPの公式サイトにあるダウンロードページの「Installation package」リンクをクリックし、WinSCPのインストーラーファイル(2017年9月28日時点の最新版は「WinSCP-5.9.6-Setup.exe」)を入手して導入してください(図1)。

図1 WinSCPのインストーラー画面

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

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

 

シェルスクリプトマガジンvol.50のWeb掲載部分まとめです。

04 コボラーによるコボラーのためのユニケージ入門「COBOL入門」/野村祐三
12 TechLION再録「愛されコミュニティの作り方」/ゲスト 小島英揮・牧大輔・星野邦敏・平井則輔 MC 法林浩之・馮富久
18 アジャイル開発 Let’ Practice! 「アジャイル開発の本質」/熊野憲辰
22 スズラボ通信「Raspberry Pi 3 で湿温度計サーバを作ってみた」/すずきひろのぶ コード掲載
28 法林浩之のFIGHTING TALKS/法林浩之
30 機械学習のココロ「Scikit-learnを使ってみよう」/石井一夫
35 中小企業手作りIT化奮戦記「MACアドレス、データリンク層とデフォルトゲートウェイ」/菅雄一 訂正情報
42 人間とコンピュータの可能性/大岩元
44 漢のUNIX「テストフレームワークkyua その2」/後藤大地 コード掲載
52 姐のBENTO
54 中小企業診断士が解説する、超実践的な会話術! 円滑コミュニケーションが世界を救う! /濱口誠一
56 それプロのエバンジェリストから愛をこめて「WSL秋の更新をチェック! 」/山本美穂
60 ITエンジニアのためのマーケッティング入門「デジタルマーケティング その2」/水間丈博
65 ユニケージ開発手法コードレビュー/湯本豊 コード掲載
70 バーティカルバーの極意/飯尾淳 コード掲載
78 詩「たっちすくりーん」/桑原滝弥・イケヤシロウ
80 香川大学SLPからお届け! 「フレームワークPhoenixを触ってみる 後編」/清水赳(香川大SLP) コード掲載
84 40歳から始める、オレとRubyプログラミング #20/しょっさん コード掲載
92 UNIXネイティブの電子工作塾/大野浩之 コード掲載
96 Techパズル/gori.sh
98 幼稚さと甘やかしからの脱却は可能か/シェル魔人

 

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

UNIXネイティブの電子工作塾 vol.50掲載

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

著者:金沢大学 教授 大野浩之

 さて、少し間があいてしまいましたが、UNIX ネイティブの電子工作塾 e-Badge 篇第3 回です。
 この記事で本連載を初めて目にした方もいらっしゃると思いますので、今回に至る経緯を振り返ってみましょう。

https://github.com/shmag/gc4unix 上のコードもご参照ください(編集部)

本記事掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

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

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

著者:清水赳(香川大学SLP)

Elixir製のWebアプリケーションフレームワーク Phoenixを触ってみる 後編

こんにちは。香川大学工学部 学部3 年の清水です。今回は、前回に引き続き、Elixir 製のWebアプリケーションフレームワーク Phoenix を紹介します。Elixir はRuby によく似た文法を持っています。更にPhoenix は、MVC
フレームワークを採用するなど、Ruby on Rails に大きく影響を受けています。その他にも影響を受けた点は多く、非常に近い感覚でコーディングが行えます。
前回はPhoenix の紹介として、モデルが1 つだけの簡単な掲示板アプリケーションを作成しました。今回はもう一歩踏み込んでみます。自分の蔵書を管理できるアプリケーションを作りながら、2 つ以上のモデルを関連付ける方法を紹介します。

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

<%= for book <- @books do %>   <% end %>

<%= book.title %> <%= link ” 削除”, to: book_path(@conn, :delete,book.id), method: :delete %>

蔵書の新規登録

<%= form_for @book, book_path(@conn, :create), fn f ->%>

タイトル <%= text_input f, :title, placeholder: ” タイトル”,class: “form-control” %>

 

ISBN <%= text_input f, :isbn, placeholder: “ISBN”, class:”form-control” %>

 

蔵書の場所 <%= text_input f, :store_loc, placeholder: ” 蔵書の場所”, class: “form-control” %>

 

<%= select f, :genre_id, @genre %>

 

<%= submit ” 登録” %>

<% end %>

<%= for genre <- @genres do %>   <% end %>

<%= genre.name %> <%= link ” 削除”, to: genre_path(@conn, :delete, genre.id), method: :delete %>

 

ジャンルの作成

<%= form_for @genre, genre_path(@conn, :create), fn f-> %>

<%= text_input f, :name, placeholder: ” ジャンル名”,class: “form-control” %>

 

<%= submit ” 作成” %>

<% end %>

ユニケージ開発手法 コードレビュー vol.39(本誌vol.50掲載)

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

著者:湯本豊

今回は、固定長ファイルの変換について説明します。

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

スズラボ通信 35 (本誌vol.50掲載)

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

著者:すずきひろのぶ

今回はRaspberry Pi 3 ( 以下 RPi3 ) で湿温度計サーバを作ってみました。製作目標は次の通りです。
1. 湿温センサーから湿度と温度の値を取り込む。
2. その値をデータベースに記録する。
3. Web インタフェースで過去の情報や変化などにアクセスできるようにする。
IoT 的な例題としてはちょうどいいサイズの内容です。

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

バーティカルバーの極意 第四回 (vol.50掲載)

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

著者:中央大学 教授 飯尾淳

今回のテーマは、前回に引き続き、自然言語処理を応用したデータ分析です。サンプルデータの距離 | x | を利用してクラスタリングを行います。近い距離にあるデータを樹形図でまとめ、デンドログラムに表します。
さて、前回の記事では、インターネットのコラム記事をまとめてダウンロードし、各記事のファイル名を扱いやすい形式に変更するところまで説明しました。
今回は、そのデータから必要な部分を切り出してテキストファイルに変換、変換したデータを形態素解析で分析します。形態素解析の結果から単語を抽出し、出現頻度ベクトルを求めてデータ間の距離を計算します。最終的な成果物はその距離に基づいたデンドログラムです。そのデンドログラム上で最後にスパッとバーティカルバーを引くことで、データのクラスタリングが完成します。
はてさて、適切に分類することはできたでしょうか。

前回記事掲載コードもご参照ください(編集部)

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

 

第4回 リモートアクセス環境の構築(SSHとターミナルマルチプレクサー)

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

前回サーバーの初期設定までを終えたので、今回は普段使っているパソコンからUbuntu Serverを操作するためのリモートアクセス環境を構築します。リモートアクセスの通信には「SSH」(Secure Shell)を利用します。このSSHではクライアントとサーバー間で通信内容を暗号化できます。そのため、盗聴などを防ぐことが可能です(図1)。

図1 SSHによる暗号化通信

SSHサーバーを導入・起動する

本連載でインストールしたUbuntu Serverには、SSHサーバーが導入されていません。Ubuntu Serverをインストールしたパソコンの電源を投入してログインしたら、次のコマンドを実行します。

最初の二つは前回も実行しましたが、英語表示に切り替えるコマンドと、パッケージ情報を更新するコマンドです。最後がSSHサーバーを含む関連パッケージをインストールするコマンドになります。
インストール完了後に、SSHサーバーが自動で起動します。これでリモートからの操作が可能になり、少し使いづらかったUbuntu Serverの(端末)画面を直接操作せずに済みます。

40歳から始める、オレとRubyプログラミング(vol.50掲載)

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

著者:しょっさん

 梅雨も明けて、さぁ夏本番、と思ったら雨がしとしと続く2017年夏です。梅雨が戻ってきたかのようですね。夏場は暑いから外出は控えてきたものですが、今年は、雨で外に出られない涼しい夏を過ごしています。こんな時は、部屋に引きこもってプログラミングですね。体調崩さないよう、今回も頑張ってプログラムを学んでいきましょう。
記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

漢のUNIX テストフレームワームKyua その2(Vol.50掲載)

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

著者:後藤大地

 前回はコマンド開発においてテストフレームワークを使うことの重要性を説明するとともに、そうした目的で利用できるフレームワークとして「Kyua」(https://github.com/jmmv/kyua)を紹介した。Kyuaは、特にコマンドの動作チェックに適したフレームワークなので、この連載で取り上げるには最適なものの一つといえる。
 こうしたテストフレームワークを活用してコマンドを開発していくには、最初に開発用の場所をちゃんと用意しておく方がよい。あとからフレームワークを導入しようとしても中途半端なものになったり、面倒くさくなって使わないままになったりするからだ。コーディングの初期段階からKyauを利用できる状況にしておくことで、シームレスにテストフレームワークを利用しながら開発を進めることができる。
 今回はそうしたテストフレームワークを活用した開発を実現できるように、どのようにディレクトリやファイルを配置し、初期段階からテストを取り込んだ開発をどのように実施していくのかを説明する。

記事本文掲載のシェルスクリプトマガジンvol.50は以下リンク先でご購入できます。

第3回 Ubuntuの導入(アップデートと初期設定)

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

パソコンの電源を投入して、前回インストールしたUbuntu Serverを起動します。インストール時に設定したユーザー名とパスワードを入力してログインします(図1)。ログインできたら、Ubuntu Serverのアップデートと初期設定を実施しましょう。

図1 ログインした画面

日本語の文字化けを直す

図1のログインした画面を見てみると、「◆」になっている箇所があります。これは日本語が正しく表示されていないのが原因です。次のコマンドを実行して、一時的に英語表示に変更します。一時的にした理由は、次回説明するリモートアクセス環境なら日本語を正しく表示できるからです。

上のコマンドでは「LANG」という言語の環境変数に、デフォルトのロケール(言語や地域を表すもの)である「C」を代入しています。デフォルトのロケールは英語圏なので英語表示に切り替わります。「export」はコマンドで、プロンプトから実行するすべてのコマンドに対してこの環境変数を適用します。

もっと見る

新しい記事一覧へ戻る

  • -->