とりあえずの記録

実質的に同学科の人向けのナレッジまとめになりつつあります

Linuxに触れる上で,個人的に参考になるサイト・書籍のまとめ

(注) 本ページの内容は,私が学内の某組織向けに執筆した内容を転記したものです.
一部,学内者にしか通じない表現があったり,伏せ字にしている箇所があったりします.ご了承ください.

About

このページは,初めてLinuxに触れる人〜ガチャガチャやるのが好きな人まで,ぜひ共有しておきたいなというサイトや書籍をリストアップするものです.

Linux

Server World

https://www.server-world.info/

各OSにおいて,初期設定やパッケージインストール時のセットアップ方法などがまとまっており非常に便利です.

The Missing Semester of Your CS Education

日版 https://missing-semester-jp.github.io/
原版 https://missing.csail.mit.edu/

シェルやvimなどの便利な使い方を教えてくれます.
実際にMITでコンピュータサイエンスの授業の準備講座として開講されているものです.

本気で学ぶ Linux実践入門

https://amzn.to/3eZKsbX

CentOSUbuntuの両方に対応している,Linuxの入門書です.
一通り目を通したら,あとはリファレンス的に使えます.

ゼロからのOS自作入門

https://amzn.to/2RwMhFu

たのしいよ

Network

マスタリングTCP/IP

https://amzn.to/33mHDN0

ネットワークといえば...!!という気がしますね.

パケットキャプチャの教科書

https://amzn.to/3utt1qM

まずネットワークの基礎についてやさしく書かれています.
その次に,Wiresharkというパケットキャプチャソフトについて,操作方法に限らず,運用者としてどのような使い方をしてその結果をどう捉えるべきかなどの解説があります.

3分間NetWorking

http://www5e.biglobe.ne.jp/aji/3min/

ネットワークというものについて,比較的系統立てて学ぶことができます.
初心者には難しい話も無いこともないので,初めのうちはある程度飛ばし読みでもよいと思います.

Cisco Packet Tracer (パケットトレーサー) を使いこなそう!

https://hetare-nw.net/archives/244

なんとなくネットワークを理解してきたら,PC上で仮想的にネットワークを構築してみてはいかがでしょうか.中上級者向けと言えるかもしれません.

CCNA実機で学ぶ

http://atnetwork.info/ccna/

CCNAという資格が取りたくなったら,ここが便利そうです. 

Security

Cisco Cybersecurity Essentials

https://www.cisco.com/c/m/ja_jp/about/security-scholarship/security-scholarship-business.html

サイバーセキュリティについてe-learning形式で詳しく学べるサイトです.
シスコサイバーセキュリティスカラシッププログラムの修了要件として設定されており,当該プログラムの申込後に受講すると,シスコ関連企業へのインターンに招待されるとか.

安全なWebアプリケーションの作り方

https://amzn.to/33mSwOA

Webと関係する分野のセキュリティについてよくまとめられています.
まぁフロントエンド寄り.

Others

nginx 実践入門

https://amzn.to/3h2ZkZW

Webサーバソフトウェア「Nginx」についての入門書です.

Docker/Kubernetes 実践コンテナ開発入門

https://amzn.to/3b90Sh9

Docker, k8s(Kubernetes, くばーねーてす の略)に関する入門書です.

DNSがよくわかる教科書

https://amzn.to/3b6Lm5y

DNSがよくわかる教科書.jpドメインを管理している日本レジストリサービスの人が書いてるよ.

TOEIC L&R TEST 出る単特急 金のフレーズ

https://amzn.to/3eWoXsB

持ってて絶対に損はない.スマホで使えるabceed版もおすすめ.

はじめてsudoする人へ(仮)

(注) 本ページの内容は,私が学内の某組織向けに執筆した内容を転記したものです.
一部,学内者にしか通じない表現があったり,伏せ字にしている箇所があったりします.ご了承ください.

はじめに

このページは,初めてLinuxサーバーの管理側に立つ人に向けて作成したものです.
授業で習うような ls / cat / vim あたりに関する説明は省きつつ,初めて扱うであろう箇所については極力丁寧な解説を心がけています.

分からないところがあれば,まずはインターネットで調べてみてください.検索する力はとても重要です.調べてもよくわからない,調べ方がわからないときには,遠慮なく先輩に聞いてみてください.きっと優しく教えてくれるはずです.(だって先輩だって数年前まで触ったことなかったんだもの)

そして,後輩のために残しておいたほうが良さそうな情報があれば,ぜひ追記/更新をお願いします.仕様変更や運用方法の変更は頻繁に起こります.遠慮なく書き換えちゃってくださいね!

それから,

この文のようにインデントされている部分は補足説明です.簡潔な表現にするために省かれた部分であったり,プラスアルファの要素が含まれています.気になったら読んでみてください.初めてでよくわかんないよ!!という方は読み飛ばしてもらって全く問題のない部分です.

このページを読んでくださっている方が,Linuxをツールとして使いこなせるエンジニアになることを願っています.

それではやってみよう!

演習用の環境をつくろう

いきなり本番環境(実際にサービスを提供しているサーバー)でいろいろ触ってしまうと,取り返しのつかないことに繋がるかもしれません.
そのため,いくらでも自由に吹っ飛ばせる演習用の環境を構築してみましょう.

以下のような方法があります.

  1. 専用のPCを確保して,LinuxOSをインストールする
  2. 手元のPCの中に,仮想的にLinuxOSをインストールする
  3. AWSGCPといったクラウドサービスを使用して,インターネット越しに仮想的にLinuxOSをインストールする

1や2は,手元の環境が使用できることから高性能な環境が構築しやすいです.
しかし,いざ実際に吹っ飛ばしてしまって1からやり直したいとき,クラウドサービスであれば使用できる便利な機能が使えず毎回時間を食われます.

また,サーバーとして動作させてみたいとき,1や2だとサーバー本体だけでなく,自宅のネットワーク機器(ルーターなど)の設定を変更する必要があります.
このとき,設定が不適切であったり脆弱性を外部から突かれたりした時に自宅のネットワークに繋がっている他の機器にまで影響を及ぼす可能性があったり,そもそもプロバイダの方針で運用が難しかったりすることがあります.

グローバルIPアドレスが頻繁に変わり固定できない,グローバルIPアドレスを近隣と共有していてそもそもポート開放ができない,家庭の方針でネットワーク機器の設定を触らせてくれないなど

というわけで,今回は 3. の方法で構築してみることにします.
方法は自分で調べてみましょう.参考ページのURLを1つ置いておきます.

qiita.com
好き好みですが,OSには Ubuntu 20.04LTS を使ってみることにしましょう.

サーバーOSとして,Ubuntuは世界的シェアNo.1のOSです.
しかし日本では,これまでCentOSというOSのシェアが高い状況でした.理由として無償で10年単位でサポートされており予算面で運用しやすいということが考えられます.これからもその状況が続くかと思いきや,2020年に急に長期サポートを取り止めると発表されました.
結果として,無償で5年単位でサポートされるUbuntuのシェアは日本においても今後上昇するのではないかと推測します.ただ,しっかりと予算を確保できるような大企業では,有償(数十万〜数百万/年)で長期サポートを得られるRHEL(レル,RedHat Enterprise LinuxCentOSととても似ている)を使うようになるのかもしれません.

1つ注意として,本来は有償のものを,スペックを「無料枠」に収めることで無料で使用することができるという状況です.
設定を誤ると数円〜数千万円の請求が来ますので十分注意する必要があります.
(頻繁に仕様や方針を変えてきます.よく分からない設定項目があれば,ぜひ徹底的に調べてみましょう.)

手元のPCからSSH接続ができるようなるところまで,やってみましょう.
このとき,ブラウザ上ではなくTeraTermやRlogin,Termiusやターミナルなどから「公開鍵暗号方式」で接続できるとなおよいですね.

sudoとは

通常,システム的に一般ユーザーから見られたり触られたりするとまずい部分は管理者(root)からしか触れることができないようにされています(します).

そのため,管理者は重要な操作を実行するときには
 sudo su
と実行することでしばらくrootユーザーに成り代わる(exitで元のユーザに戻れます),
または
 sudo (コマンド)
とすることでそのコマンドについてだけroot権限で実行する必要があります.

以降,
 Permission denied.
と表示されたときには頭に sudo をつけて実行してみてくださいね.

パッケージマネージャーを使ってみよう

スマートフォンでアプリをインストールしたいときにAppStoreやGooglePlayを使うのと同じように,Linuxにはパッケージマネージャーという仕組みがあります.(厳密にはちょっと違いますが今はそういうものという認識で大丈夫です)

今回GCPでセットアップしてもらったUbuntuでは,apt という種類のパッケージマネージャーを使います.

CentOS8/RHEL8ではdnf,それ以前のCentOS/RHELではyumを使います.
ほか,snapdだとかdpkgだとか,類するものもありますが違いが気になる人は調べてみてください.
もちろん,こういったものを使わずに,手動でソースコードをDLしてビルド(コンパイル+α)して使う方法もあります.
ただ,依存関係の管理やアップデートが面倒なので基本的にはパッケージマネージャーを使いますね.

以降,ソフトウェアをパッケージと呼びますね.
とりあえず,nyancatという最高に癒やされるスクリーンセーバーをインストールしたいときの方法をたどってみましょう.(一緒にやってみよう)
aptをさわるときは,ほとんどの場合で管理者権限が必要です.上の節を参考に管理者権限で実行してくださいね.

まずは,パッケージのリスト(一覧)をアップデート(更新)します.
パッケージをインストールするときには,忘れずに行います.
 apt update

次に,実際にパッケージをインストールしてみます.

......何のパッケージをインストールしたかったのか忘れてしまいました.ただし,nyanから始まっていたことは覚えています.
そんなときは,
 apt search nyan
で検索してみます!

root@whale:~# apt search nyan
Sorting... Done
Full Text Search... Done
nyancat/focal 1.5.1-1+build1 amd64
 Animated terminal Nyancat
nyancat-server/focal 1.5.1-1+build1 all
 Animated terminal Nyancat server configurations
plasma-wallpapers-addons/focal 4:5.18.4.1-0ubuntu2 amd64
 additional wallpaper plugins for Plasma 5

ありました,nyancatです!

でも名前が似ているnyancat-serverというものもありますね.今回インストールするべきはどちらでしょうか...
パッケージ名の下に書いてある1行解説には気づかなかったことにして,今回は以下の方法で調べてみることにします.
 apt info nyancat
出てきましたか?それでは,同じようにしてもう1つの方も調べてみます.
 apt info nyancat-server
いろいろ出てきましたね.
今後パッケージをインストールするときは,求めているものは本当にそれなのか,こうやって確認できるとよいですね.
見てもらって分かったかと思いますが,まぁ英語で書かれていることが多いです.といっても技術系の用語がほとんどですので,さっさと慣れちゃいましょう.嫌でも慣れざるを得ない(というか自然と慣れる)ので,ぜひ早いうちにインターネットも活用しながら自分の力にしていきましょう.

では,本命のnyancatをインストールしてみることにします.
 apt install nyancat
もし,
 E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
 E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
と怒られたら,それは管理者権限を持たない状態で実行している状況です.1つ上の節をもう一度読んでみてください.
ズラズラっとテキストが流れて,コマンドが打てる状態に戻ったとしたら,それはおそらく成功です.
 nyancat
とだけ打って実行してみて,成功の余韻に浸ってください.飽きたらCtrl+Cで抜けることができます.

かんたんにまとめると,
 apt update
 apt install nyancat
です.わかりやすいですね.

それでは,各パッケージのバージョンをアップデートしたいときはどうしましょう.
実は,一斉に更新をチェックしてアップデートすることができるコマンドがあります.
 apt update
で一覧を更新した上で,
 apt upgrade
で実際に更新します.update(アップデート)とupgrade(アップグレード),少し似ているので注意しましょう.

新機能が追加されたとき以外に,脆弱性が見つかったときなどにも新しいバージョンが公開されます.極力常に最新のバージョンを使うようにしましょう.
しかし,最新のバージョンにバグが混入しており/仕様が変更されておりシステムが止まってしまう,データが吹き飛んでしまうこともあります.
ですので,本番環境ではあえてしばらく待ってみて,トラブルが起きたら即復元できる体制を整えた上で実行することも少なくありません.サーバのバックアップ状況や,運用システムの重要度,脆弱性の深刻さなどを考慮した上で,いつ誰がどのように更新するかを決定する必要があります.

ちなみに,アンインストールしたいときは
 apt remove nyancat
です.

諸々まとめると,
 apt update
 apt search
 apt info
 apt install
 apt upgrade
 apt remove
ですね.いずれもとても重要なものですので,怪しいものがあれば振り返って調べてみてください.
これからどんどん使っていきます.

(まだまだ作成を始めたばかりです)

随時,内容の追加/修正などを行います.

おわりに

おつかれさまでした!このページはここでおしまいです.

いかがでしたか?少し難しかった?簡単すぎた?
なにか1つでも得られた知識があったとしたら,このページを作成した人はとても嬉しいです.

さて,これでいよいよサーバー管理者としての第1歩を踏み出す準備ができている...! と言いたいところですが,実はもうちょっとだけ続きます.

私たちがさわることになる○○○○のような公的機関のサーバーは,毎日様々な国の様々な人/組織から攻撃を受けています.
ことと次第によっては数十億円単位の損害賠償を支払わねばならない事態になることだって十分考えられるほど,恐ろしい世界です.

しかし,せっかく目の前にあるのに恐ろしいからと遠ざかってゆくのは,それはそれで本当にもったいないことです.
そこで私たちがやるべきことは, "遊べる環境を何度もぶっ壊しながら遊び方を理解する" ことだと思っています.

(注:この "遊べる環境" というのは本校の本番環境ではないということにだけ,注意してください)

遊べる環境で何度も失敗して,何度もOSをインストールし直して,遊んでみてください.次第に知識や感覚が育ってゆくのではないかと思います.

失敗して自分だけではどうしようもなくなってしまったときには,近くの人を頼ってみてください.ここは高専です.変な人が身の回りにたくさんいることと思います.
友人や先輩,先生方は,きっと解決のための手助けをしてくれるはずです.

最後に1つだけお願いです.
 本番環境でsudoするときは,原則事前に連絡しましょう.
 ここでいう #○○○○ あたりを使ってもらえたらと思います.

  • こういうことがしたくて
  • この情報源によるとこういう手順を踏めばできそうで
  • こんな流れでやってみたいと思っている

      くらいの情報があると良いですね!

参考になるサイト,書籍情報

を,別のページにまとめています.

tamasan238.hatenablog.com

ぜひ,たくさんの情報をインプットしながら,実際に試して自分のものにしていきましょう!

Felicaを使える端末/カードがない

Felicaを使用した出席確認システムを作ったのですが,利用者が100人を超えると利用者側のカードの手配が大変です.

学生証にチップでも入れてくれていればよいのですが,そんなこともない状況で,どのようにして全員分のカード/デバイスを用意したのか残しておきます.

  1. 交通系ICカード
  2. モバイルSuica / Pasmo
  3. QuicPay / iD系のApplePay / GooglePay
    (クレジットカードや,メルペイなどのプリペイドカード)
  4. JAL JMB WAONカード

交通系ICカード

SuicaPasmoなど.
登校する際にいつも使っており忘れてくる心配がないことと,認証も必要なくタッチするだけでよいことから,最も楽・便利な手段です.

モバイルSuica / Pasmo

普段常用している人にとってはとても楽です.
(もっていない人は発行に1,000円のチャージが必要ですが,後述のメルペイを使えば無料で発行できます.)

Androidの人は,かざすだけで使えます.
iPhoneの人は,Face IDやTouch IDによる認証が必要です.
AppleWatchだとIDmが動的に変更されるとどこかで聞いたため,推奨はしませんでした.(未検証)

QuicPay / iD系のApplePay / GooglePay

モバイルSuica / Pasmoに準じます.
ApplePayに楽天カードなどを登録している人などです.
何もない場合は,メルカリアプリをインストールしてメルペイのiD決済を登録すると無料で発行できます.

JAL JMB WAONカード

Felica対応のカードもスマホも持っていないという方には,JALマイレージカードを発行するよう伝えました.
要はWAON(←Felicaベース)が使えればよいのです.
JMB WAONカード は,実質ただの電子マネーつきポイントカードですぐ届くのでおすすめです.
無料で発行できます.

とあるSlackチャンネルのメンバーを,まとめて別のチャンネルに追加する方法

#ch_alpha というチャンネルに300人が参加している状況で, #ch_beta にも同じメンバーを参加させたいときってありますよね.
5,6人くらいであれば手動でやるところですが,こうも多いと地獄です.

Spreadsheetなどで名簿のデータがあればそこからコピペすると楽ですが,そうでないこともあると思います.
Slackのエクスポートツールを利用して,簡単に登録する方法を見つけましたので紹介します.

フリープランでもできますが,その場合,出力元はパブリックチャンネルである必要があります.

#general からコピーすることで全員を追加することもできますね!

特定Ch.のメンバーをエクスポート

  1. エクスポートしたいチャンネルが存在するワークスペースの,"設定と権限" 画面を開きます.
    URLはこんな感じ.https://(文字列).slack.com/admin/settings
  2. 右上のほうにある,"データのインポート/エクスポート"を開きます.

    f:id:tamasan238:20210620124238p:plain

  3. "エクスポート"タブをクリック

    f:id:tamasan238:20210620124348p:plain

  4. 日付範囲をエクスポートする にて, "全履歴" を選択し,"エクスポート開始" をクリック

    f:id:tamasan238:20210620124719p:plain

  5. 準備ができ次第,Slackに通知が飛びます.
    指示に従って,.zipの出力ファイルをダウンロードしてください.

出力ファイルから,メンバー一覧を抽出

  1. 出力ファイルを解凍の上,任意のテキストエディタchannels.json を開きます.
    WindowsならVSCodeやメモ帳,MacならCotEditorあたりがおすすめです.
  2. WindowsならCtrl+F,Macなら⌘+Fで,コピー元のチャンネル名を検索します.
    表示位置に飛んだら,そのちょっと下にある
    "members": [
    の行と,それより上の行を全て消します.
  3. ちょっと下にスクロールすると,
    ],
    の行が出てくると思います.
    この行と,それより下の行を全て消します.
  4. 使っているエディタの置換機能を使い,
    " を無に置換することで " を消します.
  5. これでユーザーIDの一覧を得ることができました.
    Ctrl+A (⌘+A) で全選択,Ctrl+C (⌘+C) でクリップボードにコピーしておきます.

チャンネルにメンバーを追加

  1. メンバーを追加したいチャンネルのメンバー追加画面を開きます.
  2. 先ほどクリップボードにコピーしておいたものを,Ctrl+V (⌘+V) で貼り付けます.
    自動で参加させたいメンバーが表示されるはずです!
  3. "追加" を押せば完了です!

おわりに

プログラムを組んでAPIをごにょごにょして...という方法もありますが,1回だけでいいからそこまでするのは面倒,ということでどうにかできないか試行錯誤してみた結果です.

もしデータのエクスポート画面にたどり着けない方は,Slackワークスペースの管理者さんにお願いしてみてくださいね.

SlackAdminのみなさんの助けになれば嬉しいです.

私が感じた,高専のよいところと悪いところ.

いよいよ私も高専を出てゆく年になりました.比較的高専生活を満喫した方かなと思っているのですが,私の経験をもとに,高専生活の良し悪しを軽くまとめてみたいと思います.

(というのも,私の弟が「高専に行こうと思っている」なんてことを言い出したもので,「ちょっとお話しようか」とまとめてみたのがきっかけです.)

高専を選択肢として考えている生徒さんや,保護者さんの参考になれば嬉しいです.

繰り返しになりますが,あくまで私個人の経験を元にした発言・記載です.これが高専学生全てに通ずるものかというと,決してそうではありません.
年によって,学科によって,周囲の人によって,大きく変動しますのでご留意ください.

"偏差値合うし,高専に行ってみようかな?"

「偏差値がそこそこ高い」「自由な校風」「公立高校+公立大学よりも学費が安い」「就職率100%で大企業が多い」「センター試験・共通テストを受けずに大学に入れる」

これだけの理由では絶対に来てはいけないところであることを認識してほしいと思います.
以下につらつらと書きますが,そのどれよりも重要なことです.

上記のようなことを目当てに高専に来ると,間違いなく苦しむことになるでしょう.
高専は特殊な学校です.中高の成績はほとんどの場合関係ありません.専門に興味が持てず気力が続かなければ容赦なく留年です.2回続けば退学です.そのとき,最終学歴は中卒です.

高専とは,実践的な技術者を育成するための教育機関です.高校は中等教育機関ですが,高専は大学と同じ高等教育機関に当てはまります.
数ⅠⅡⅢABの殆どを1,2年で修め,3年次から大学数学(線形代数,解析)に入ります.1年次からプログラミングや電気回路などの専門科目を学び初め,次第にその比率は高くなります.ですから,多くの場合大卒者よりも専門性は高くなります.(実際に企業さんからよく聞く声で,これが就職率が高い所以だと思っています.)

裏を返せば,専門外のことはうっすらとしか学びません.化学・地学は基礎止まり,古文・漢文はほぼオマケ程度です.やっぱり違うことを勉強したい...と思ったとき,自分が持っている力の偏りに苦しむことになるでしょう.

各学科で学べることを理解した上で,その分野を学びたい・極めたい人にとっては,とても優れた環境ですが.

これは私の主観ですが,分野こそ違えど,高校にある看護科と近いのではないかと感じています.その"工学"版に,通いたいと思っていますか.

以下のサイトで,各学年でどのような授業があり,どのようなことを学び,どのような観点から評価されるのかを見ることができます.ぜひ,参照されてみてください.

https://syllabus.kosen-k.go.jp/Pages/PublicSchools

"高専は自由"

授業の自由度

誤解を恐れずに言うなれば,何をどれほど学ぶかは各学生に委ねられています.
その上で,得られたものが学校(ひいては文科省)の示す基準を上回っていれば,科目毎に単位が出て,進級,卒業することができます.
もちろん,必修 / 選択必修 / 選択などの区分があり,時間割が組まれてはいますが.

中学校や多くの高校のように「ここはこうしなさい」「締切超えてるけど課題出てないよ」などと教えてくれることはまずありません.
その代わり,朝課外も夕課外も土曜課外もありません.平日朝8:50に登校して,14:40か16:20には帰宅できます.

自己管理ができる人にとっては,自由に時間の使い方をコントロールできる最高の環境でしょう.逆の場合は,友達と一緒に卒業することは難しいかもしれません.

すべて自分の責任で取り組む必要があります.基準を満たさなければ,容赦なく留年です.留年が続けば,学校に残ることはできません.
毎年,クラスから数人は進級せず,もう一度同じ学年で勉強する,もしくは別の道を歩む人がいます.

課外活動の自由度

高専にも,文化系・体育系の部や同好会があります.いくつ参加するのか,そもそも参加するのか,これも自由です.
そしてそれらは,中高の"部"と,大学の"サークル"を足して2で割ったような活動方針のところがほとんどです.

顧問に怒鳴られる,ハードな練習を強制されるなどといった話は聞いたことがありません.やりたい人たちが,やりたいことをするために集まっています.
一方,高校生の年代の学生が属している以上,安全のために担当顧問はついています.基本的に活動に干渉してくることはありませんが,夜遅くまで活動したり,毎日のように続けて活動したりといったことはできません.遠征や合宿などには,必ず付き添ってくださいます.

大学のような自由さと,中高のような安全のための決まりが兼ね合わさった,そんな形態です.

部員から徴収する部費と,学生会予算からのクラブ活動費,状況によってはさらに校長裁量経費や後援会からのバックアップが加わるため予算が少なくないというのも特徴かもしれません.私が所属していたところには,放送局と同等のスタジオや機材,中規模のライブハウスと同等の音響,映像,照明演出機材を操るクラブがありました.

日常生活の自由度

先に述べたように,授業終了後はすべてを自由に決められます.帰ってもよし,教室で友人と話していてもよし,クラブ活動に行ってもよし,図書館で勉強してもよし,もっと自由な生活をしていた友人もいます.
要は各科目が定める合格条件を満たしさえすれば,何をしてもよいのです.赤点基準の60点ギリギリを攻める学生もいれば,全科目100点を狙う学生ももちろんいます.高得点を狙う学生がほとんどでしたが.

ただ,学年が上がるにつれレポート課題はどんどん増えます.求められるレベルも上がります.放課後や休日にきちんと時間配分ができるならば,問題なくこなせる場合がほとんどですが,決して楽なものではないということは記しておきたいと思います.
情報系の学科ならば,ノートPCや外部モニターはケチっちゃ駄目です.紙とペンの代わりに,いやそれ以上に使うようになります.起きてから寝るまでずっと向かい合います.

ちなみに,「大学生活は人生の夏休み」なんて声を耳にしたことがありますが,少なくとも高専における大学生と同じ期間については,決してそんなことはありません.小学校から中学校に登って求められるレベルが上がったように,どんどん高度なことを求められます.ただ,理系の学部に属する大学生も同様な気はしますけどね.だいたいレポート地獄で,常にレポートに追われるのが当たり前,という感覚です.

卒業後の進路

就職

就職率高いですよね.そしてその内訳を見て,「こんなところに行けるのか!」とびっくりされた方もいらっしゃるかもしれません.カラクリと言うと聞こえは悪いかもしれませんが,私が体験したことを元に,私が思う考えを述べます.

一般に,大学を卒業すると「学士」という学位がもらえます.その後大学院博士前期課程を修了すると「修士」,そのまま大学院博士後期課程まで修了すると,「博士」です.
では,高専はどうでしょう.実は,学位はもらえません.卒業式で受け取るのは,学位記ではなく卒業証書です.ただし,学位の代わりに「準学士」という”称号”が得られます.学位というのは称号のなかの1つの区分なので,どちらも称号ではあるのですが,「準学士」は学位ではありません.海外では通用しません.

少し余談ですが,同一の年数を過ごすはずの高校+短期大学という経路だと,「短期大学士」という学位がもらえるそうです.謎ですね.高専でも卒論書くのに.

話を戻します.端的には,先に述べたように大卒より専門性の高いことを学ぶにも関わらず,一般には高専卒は大卒よりも下に見られます.学術機関への所属年数が短いという点では頷けますが,より業務で使用できる知識や技術力をもっている点が評価されてこの就職率ということを踏まえると,なんなんだろうなぁと感じることもあります.

さてこれの何がイヤかというところですが,多くの場合,大卒者とは違うレールに載せられるのが現状です.例えば,

  • 現場職にしか携われない
  • 昇進,昇給のスピードが違う
  • そもそも一定のレベル以上に昇進できない
  • 同じ仕事をしているのに,大卒者と給与が明らかに違う
  • 自分より詳しくない人の元で働かされる

といったことが,実際に存在しています.

また一定以上の企業や職では,そもそも高専生は取らない,もしくは修士以上しか取らないというところも当たり前に存在します.

ただし,すべての企業がそうという訳ではない点を併せて述べておきます.
大企業でも,大卒と高専卒の壁を作らず入社さえすればあとは同等とみなし,入社後の年数や社内試験などによって公平に対応してくれる会社もあります.それでいて大学生よりも高専生のほうを積極的に採用してくださる企業もあります.(多くの高専生はそれをインターンシップで見極めます.)

そうでない企業に入ってしまっただとか,別の事情でその会社を辞めることにしたなどの理由で次の企業を探すとき,自分が持つ学歴カードに大学という文字はないということも,事実ですが.

ただ,大卒と比べ高専生は母数(学生数)が少ないため就活しやすいという声はあります.大企業への推薦も多いですし.良し悪しですね.まぁ運要素がなかなか大きく一概には言えませんので,これくらいにしておきたいと思います.

進学

就職せず,進学する道もあります.高専卒業後,大学の3年次に編入したり,高専にある"専攻科"に進んだり,ということです.高専にもよりますが,私のところでは概ね就職:進学=5:5くらいでした.
非常に稀ですが,高専3年修了時に高校生と同じように入試を受けて大学生になることもできます.入試に必要な科目が高専で学べない場合,独学する必要がありますが.

専攻科では,高専の5年間(専攻科に対し,本科と呼びます.)で学んできた内容のより高度なことを,同じ高専の先生方から,同じ敷地内で学びます.
2年間の課程を終了すると,大学(学部)卒と同じ「学士」の学位を得ることができます.大学に編入するよりも学費が安く済むのもよいところです.
さらに専攻科修了後,他大学の大学院の入学試験を受けて歩んでゆく人も少なくありません.

一方,専攻科では自分の興味のある分野を究めることができない,新しい環境に進みたいといった場合には,編入試験を受けて大学の3年次に編入することもできます.
ほとんどの場合,試験科目は数学と専門科目だけです.所によって,物理や化学,面接などが加わりますが,センター試験や共通テストなどと比べると競争率が低く科目数も少ないためこれを「裏ルート」などと称されることもあるようです.実際,地元の国公立大学のほか,東工大電通大旧帝大などに進む人も少なくありません.この辺りは,自分が何を勉強したいのか,どこの大学のどの先生の研究室に所属したいのか,そういったところが重要になってきます.
詳しくは,以下のようなサイトで生の声を見ることができますので参照されてみてください.

www.zenpen-kosen.com

最後に

合っている人にはとても素晴らしい環境であると同時に,合わない人には地獄のような環境とも言える高専について散々述べてきましたが,いかがでしたでしょうか.
「自分にぴったりだ!」と感じた方も,「うっかりやばい学校に出願するところだった」という方もいらっしゃると思います.ただ,このページに記載していることはすべて私の周りでの事例に過ぎないことは忘れないでくださいね.オープンキャンパスなどで,自分が身を置きたいと思っている高専の学生や教員との会話を通じて,より深く理解されることをおすすめします.高専生の多くはTwitterに生息していますので,そちらで探してみてDMを送ってみるというのも良いかもしれません.

このページに記載したことが,たとえ1人でも望む進路を決める助けとなれば幸いです.

LiveShell XでWi-Fiを使って配信中に,アクセスポイントが死んだら

先日某施設にてライブ配信を行っていた際,実際に発生したインシデントです.

 

構成

スイッチャー → SDI to HDMICerevo LiveShell X
→ LiveShell X付属のWi-Fiドングル → (Wi-Fi)
→ モバイルWi-Fiルーター → (4G回線)
→インターネット → YouTube Live

なお,このとき使用していたモバイルWi-FiルーターはPandaStudio様よりレンタルしていた以下の製品です.

rental.pandastudio.tv

 

状況

配信を開始して数時間,まれにモバイルWi-Fiルーターがプチフリを起こすように.

画面をタップすると電波の送出を再開してくれるため,なんとかあと1時間持ちこたえてくれと神頼み.

祈りは届かず,突然フリーズ.
再起動するも電波が送出されないという最悪の自体に.

結果,YouTube Liveへの映像送出が停止,
急遽バックアッププランへ切り替え.

 

長時間の動作に耐えられるかテストするため,前日に3時間以上の事前配信を行っていたのですが....

 

復旧方法

  1. iPhoneモバイルルーターが発射していたSSID/Passwordと同一のWi-Fiを発射.(インターネット共有,テザリング)

    SSID:設定 → 一般 → 情報 → 名前 を変更することで設定可能
    Pass:設定 → インターネット共有 → "Wi-Fi"のパスワード にて設定

  2. LiveShell X背面のWi-Fiドングルを一度抜いて再度挿入(強制再接続)

 

なぜこのような方法をとったのか

YouTube Liveは,基本的には一度送出が完全に停止するとライブ配信の枠自体を終了してしまいます.
(一部の状況においては,自動停止をOFFにすることができる場合もあります)

そのため,LiveShell Xを操作して配信を停止,Wi-Fiの接続先を変更するなどして改めて配信を開始しようとすると新たな配信URLを使用せざるをえなくなってしまい,今回の場合それはなんとしてでも避けなければならない事態でした.

このことから,同一の配信ページを維持したまま配信を再開するためにはLiveShell Xを生かしたまま,何事もなかったかのようにインターネット回線を復旧させ,再接続させなければなりません.

結果として,上記の対応をとり,復旧させることができました.

 

今後の対策

今回は会場のネットワーク規則の関係で固定回線を用意することができず,加えて予算の兼ね合いにより複数の4G回線を使用することも難しい状況でした.

結果として,1台の機材の不具合により配信が停止,視聴されていたお客様には別の配信プラットフォームへと移っていただくことになってしまいました.

今後配信を行う際には,今回の事例を踏まえて早期に固定回線の手配や予算の増額を依頼し,安定した配信が行えるよう運営チームと協力,連携して運用に携わって参ります.

サーバAからサーバBに自動でバックアップをとる

某科には2つの演習サーバがありますが,そのうち一方はそろそろ寿命を迎えます.

新しい方に乗り換えたいところですが,独自の提出用コマンドが旧サーバでしか効かない,Web系の演習は片方のサーバでしかできないなどの事情があり,未だ難しいのが現状です.

ただ,現状のサーバでは過去に何度かデータが吹き飛びかけていますので,このまま何もせず使い続けるのは怖いです.
今回は,自動で新サーバに定期的にバックアップをとるように設定する方法をまとめてみることにします.

SSH設定

まず,同期や自動実行に必要となる準備を行います.

サーバA(古い方)からサーバB(新しい方)に,キーペアを用いた公開鍵暗号方式SSH接続できるようにしておきましょう.

 

詳しくは以下の記事で解説しています.

"手元のMac""サーバA(古い方)"
"サーバ""サーバB(新しい方)" と読み替えて,実行してください.

tamasan238.hatenablog.com

コマンド生成

できたら,実際にバックアップに使用するコマンドを準備します.

方法はいろいろありますが,今回は rsync というものを使ってみることにしましょう.

 

まず,バックアップしたい場所のパスを確認しましょう.

サーバA(古い方)に接続して,

pwd

と実行し,その出力をメモしておきます.

今回は, /home/tamasan238 と出力されたことにしておきます.

 

次に,バックアップ先として使用するディレクトリ名を決めておきましょう.

今回は, apr_backup とすることにします.

 

ここまでできたら,実際にバックアップを行うコマンドにまとめてみます.

rsync -a バックアップしたいディレクトリ/ サーバBの,自分で決めた短い名前:~/バックアップ先として使用するディレクトリ名

 

わかりにくいので,これまでの例を用いて示してみます.
(サーバBの,自分で決めた短い名前を garden としておきます.これはサーバAの~/.ssh/configで設定したものです.)

rsync -a /home/df20hoge/ garden:~/apr_backup

 

こんな感じです.

スラッシュやスペースの有無,位置に十分注意してください.
1つズレているだけで,大きく結果が変わります.

 

ここまでできたら,試しにサーバA(古い方)で実行してみてください.

終わったら,サーバB(新しい方)にSSH接続して,lsしてみると,apr_backupというディレクトリの中にサーバA(古い方)のデータがコピーされているはずです.

定期実行設定

うまくいったら,このコマンドが自動的に定期実行されるようにします.

これには,Linuxに備わっているcronという仕組みを利用します.

 

設定を手書きしてもよいのですが,初めて触る人にとってはなかなかとっつきにくい書き方をしなければなりません.
そこで,設定内容を入力することで自動的に適切な設定文を書き出してくれる Crontab Generator というものを使います.

crontab-generator.org

 

デフォルトだと,毎分実行するという恐ろしいものになってしまいますので,適切な間隔に調整していきます.

今回は,毎日早朝の時間に1回実行されるようにしてみます.

 

あまり回数が頻繁だと,サーバやネットワークに不必要な負荷をかけてしまいます.
多くとも1日数回に留めておきましょう.

 

Weekday, Months, DaysEvery〜 のまま

Hours自分があまりアクセスしない時間帯を1つ選ぶ (例:5am, 6am)

Minutes1~59の中から,適当に1つ選ぶ (例:3, 7, 13)

 

Minutesについて補足しておきます.
0のままでも良さそうに思えるところですが,これは望ましくありません.
多くの人が同時に実行すると,サーバやネットワークに負荷がかかるためです.
きっかり0分に実行されなければ困る...!というものでなければ,今回のように若干ズラすことで,負荷を分散させるというわけです.

ここまで入力できたら,次は Command To Execute に先ほど生成した rsync〜のコマンドを貼り付けます.

 

終えたら,Generate Crontab Line をクリックして設定文を生成します.

例えば,毎日5:03に上述のサンプルコマンドを実行するという設定をした場合,出力結果は以下のようになります.

3 5 * * * rsync -a /home/df20hoge/ garden:~/apr_backup >/dev/null 2>&1

 

それでは,実際にcronに上記設定文を登録してみましょう.

サーバA(古い方)にログインして,

crontab -e

と実行します.

注:ここで誤って crontab -r と実行してしまうと,設定されている項目が全て吹っ飛びます.
自分のアカウントであれば特に問題は無いかと思いますが,業務で使用しているようなもの,複数人で共有しているアカウントなどであればこの方法は厳禁とされることも...
気になった人は,以下の記事をぜひ.

qiita.com

 

vimが起動しますので,今生成したcron用の設定文をコピペします.

終わったら,:wqで保存して終了しましょう.

crontab: installing new crontab

と出力されていれば,問題なく設定できています.

 

これで,自動的にサーバAのデータがサーバBにバックアップされるようになりました.
2回目からは,変更があったファイルのみ転送されるようになります.

 

【追記】

cronはこんな使い方もできます.(こっちはCrontab Generatorのスクショなんかも載せてます.)

tamasan238.hatenablog.com