2019年 3月 の投稿一覧

[PHP] 7.1から7.3へアップグレードする

AmazonLinux上でPHP7.1を利用していたのですが、今年の12月でセキュリティアップデートの提供が終了するため、サポート期間が2021年12月までのPHP7.3へアップグレードしました。

パフォーマンスも20%程度アップするみたいですね。こちらも目的だったりもしますw

続きを読む

[Linux] ログイン中ユーザーの一覧を表示 – who, w

who

whoコマンドを利用します。

$ who
katsube  pts/0        2019-03-29 18:27 (210.160.37.89)
katsube  pts/1        2019-03-29 18:29 (210.160.37.89)
katsube  pts/2        2019-03-29 18:30 (210.160.37.90)

w

wコマンドではユーザー一覧に加えて、ユーザーが実行しているプロセス名なども表示してくれます。

$ w
 18:30:03 up  9:14,  3 users,  load average: 0.22, 0.16, 0.10
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
katsube  pts/0    210.160.37.89    18:27    2:18   0.00s  0.00s -bash
katsube  pts/1    210.160.37.89    18:29   14.00s  0.01s  0.01s top
katsube  pts/2    210.160.37.90    18:30    2.00s  0.00s  0.00s w

続きを読む

[Linux] ポートスキャンを行う – nmap

不必要にポートを開放していると、そこからアタックを仕掛けられることがあります。
またSSHを22番などデフォルトのポートで開放している場合もターゲットにされやすいため、別のポート番号にしておくのも定石だったりもします(諸説ありますが個人的にはピンポンダッシュを防げるのでいつも変更しています)。

不特定多数がアクセスできる状態にあるサーバや端末は、少なともリリース前にはポートスキャンをかけておくのがおすすめです。

nmapのインストール

macOSの場合はbrewで一発です。

$ brew install nmap

続きを読む

[Linux] 改行コードを変換する

改行コードの種類

まず大前提としてOSや利用している環境によって、最近では大きく2つの改行を表す文字コードが存在します。

OS改行コード
LFLinux, macOSなど
CR+LFWindowsなど

以前のMacOSではCRが採用されていましたが、MacOSX以降はUnix系OSと同じLFとなっています。

変換の必要が出てくるシチュエーションとしては、Windows環境からLinuxなどへファイルを移した時などですね(もちろんWindowsでも環境を整えればLFで作成はできますが)
続きを読む

[Linux] 文字コードを変換する

Linux上で文字コードを変換するコマンドといえば、nkficonvの2つ。よく忘れるので備忘録がてらオプションと使い方をメモしておきます。

nkf

実行例1 – 出力する文字コードを指定

入力側の文字コードは自動で判定してくれますので、出力側の文字コードをオプションで指定します。

$ nkf -s foo.txt > foo_sjis.txt
$ cat foo.txt | nkf -s > foo_sjis.txt

続きを読む

[Linux] 文字コードを調べる

指定したテキストファイルの文字コードをLinuxではnkfコマンド、またはfileコマンドで確認することができます。

$ nkf --guess foo.txt
UTF-8 (LF)
$ file foo.txt 
foo.txt: UTF-8 Unicode text

よく忘れるのでメモ。
iconvは変換だけで表示はしてくれないみたいですね。

続きを読む

[Linux] スワップ領域を作成する

AWS EC2でインスタンスを新規に作成すると、もれなくスワップ領域が存在しません。
まぁ…スワップ使い始めると劇的にパフォーマンスが落ちるので、足りなくなったらメモリ増やすなり、AutoScalingなりでインスタンス数を増やせってことなんだと思いますが、例えばmakeコマンドなどでビルド中に微妙にメモリが足りなくなった場合は普通にスワップ使ってもらった方が面倒事が少なくて助かる場合もあります。

というわけで今回はLinuxにスワップ領域を作成しマウントするところまでをメモしておきます。
続きを読む

[Linux] ntpからchronyに移行する

サーバやLinux端末、ネットワーク機器などの時刻合わせとしてこれまでNTPが広く利用されてきましたが、最近ではより高速で正確なChronyが普及しつつあります。CentOSなどディストリビューションによっては最初からインストールされているようです。NTPから移植されていない機能もあるようですが、サーバ自身の時刻を合わせるだけであればChronyで必要十分です。

今回はAmazonLinuxの1系を利用しているサーバをNTPからChronyへ移管したいと思います。
続きを読む

[Linux] OSのタイムゾーンを日本時間に変更する

現在のタイムゾーンを確認

UTC(太平洋標準時)になっているようです。

$ date
2019年  3月 27日 水曜日 07:07:46 UTC

日本標準時へ変更

タイムゾーンの設定ファイルの雛形が/usr/share/zoneinfoにずらっとありますので、これを所定の場所にコピーします。シンボリックリンクでも良いようです。

$ sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime

次に/etc/sysconfig/clockを編集します。

$ cat /etc/sysconfig/clock
ZONE="UTC"
UTC=true

$ sudo vi /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=false

変わった!

特にOSの再起動は必要なく、Terminal上ですぐに確認することができます。

$ date
2019年  3月 27日 水曜日 16:12:12 JST

注意点

サーバ(インスタンス)をセットアップする際に行っていれば良いのですが、運用途中で行う場合、例えばcronなどの設定を変更する必要がありますのでご注意を。

続きを読む

[Linux] どのプロセスが暴走しているか突き止める – pidstat編

時折りサーバ内で暴力的なI/Oが発生してまして、その度にMackerelからのアラートで人力再起動させられる生活に疲れたので原因を究明することにしました。

もうこうなってしまうとTerminalからログインすることも出来ず、AWSのWebコンソールから再起動をしています。調査方法は色々あると思うのですが今回は数分で設定できるpidstatを仕掛けることにしました。

取り戻せ平穏な日常。

続きを読む

[バイク] ウィンドスクリーンをぱぱっと延長 #Ninja250SL 🏍

今年のゴールデンウィークはバイクで2000kmほど旅という名の帰省をしようと思ってまして、ちょっとずつ遠征のための準備をしてます。今回はウィンドスクリーンを延長する汎用パーツを付けてみました。

Ninja250SLのスクリーンは非常に小さくてネイキッドかよってくらい風が体に当たります。普段の日帰りツーリング程度ならそれほど苦にはならないのですがさすがに距離が距離なだけになにか対策を…というわけで以下のパーツを装着することに。

実際にAmazonで注文、翌日には届きました。

続きを読む

コストから考えるGoogleのクラウドゲーミング「Stadia」

GDC2019でGoogleから新たなクラウドゲーミングサービス「Stadia」が発表されました。概要についてはGIZMODEの記事がわかりやすいので詳しくはこちらをどーぞ。

Stadiaを耳にした際にに真っ先に頭に浮かんだのはスクエニが子会社を設立してまで立ち向かった「シンラテクノロジー」でした。

シンラテクノロジーは2014年に設立され、思わずニヤリとしてしまうネーミングからも話題になりましたが、残念ながら実際にサービスインすることなく2016年には20億円の特損を出し会社ごと清算する運命をたどりました。また同じく2016年にはG-clusterを当初提供していた「Gクラスタ・グローバル」社も債務超過に陥り倒産しています。現在はブロードメディアの子会社が事業を引き継いでいます。具体的に何にどれくらい資金を注ぎ込んだのかは公表されていませんが、クラウドゲーミングはとにかくお金がかかると認識させられたのをよく覚えています。

Google先生の膨大な資金力があれば会社毎逝くことはないでしょうが、事業単体では巨額の赤字を抱えて死ぬのではという未来が頭をよぎって仕方ありません。
続きを読む

[Firebase] AuthenticationでSMS認証 (Web編)

これまでFirebaseへ様々な認証をお試してしてきました。

今回は電話番号を使ったSMS認証です。

AuthenticationでSMSログイン

メールアドレスやSMSは匿名性の高い物が一人で量産できてしまいますが、電話番号であれば何かしらの契約が必要になりますのでハードルを高くすることが可能です。

この認証方法ではユーザーが入力した電話番号宛にFirebaseからSMS(昔でいうショートメール)が送信されます。SMS内にある暗証番号をログインページで入力してもらうことで本人確認が行えるというわけです。
続きを読む