Linux

LAMP環境をAWS Lightsailで新規に構築する

今回はAWSで気軽にVPSサーバを立てることができるLightsailで、LAMP環境を構築してみます。1台のサーバにWebとDBが同居する形の非常にシンプルな物です。

もともとAnsibleで自動化しようと思ってタスクを洗い出していたのですが、せっかくなのでブログにも残しておきます。
続きを読む

[Linux] メモリ上に高速なディスクを作成する – tmpfs

Linuxでいわゆる「RAMディスク」を作成してみます。
HDDは情報の読み込みでも書き込みでも物理的な速度でメモリにはかないません。で、あるならばメインメモリの一部をHDDに見せかけることができれ5ば超高速なストレージとして使えるのでは!という発想ですね。Linuxではtmpfsと呼ばれる仕組みを利用することで手軽に利用できます。

もちろん、メモリ上にデータを置きますので電源を落とした瞬間にすべてが失われます。主にキャッシュなど一時的な利用が中心になると思われます。

続きを読む

[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] 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を仕掛けることにしました。

取り戻せ平穏な日常。

続きを読む