dstatは知ってると役に立つ

このエントリーをはてなブックマークに追加

だいぶ前に、dstat -tlaf 1は良さげ
と言ってたのですが、ちゃんとオプションとか知らずに言っててすいませんでした。

すごく良いので、ちゃんとオプションについて書いてみます。

オプションなしで動かすと、デフォルトの-cdngyが渡される。

-c:cpu stats (system, user, idle, wait, hardware interrupt, software interrupt)
-d:disk stats (read, write)
-n:network stats (receive, send)
-g:page stats (page in, page out)
-y:system stats (interrupts, context switches)

次は、dstat -tla 1

-t:time/date output
-l:load average stats (1 min, 5 mins, 15mins)
-a:equals -cdngy (default)
1 は1秒ごとに更新ですね。

ヨサゲと言ってたdstat -tlaf 1

-fは
CPUや、DISK、NETWORKを詳細に表示してくれるんですね。

ページングはあるけどメモリが出てないですね、man見れば書いてますが-mですね。
メモリは-f渡してもこれ以上の詳細表示は無いですね。

ここまで欲張るとターミナルからはみ出る。

vmstatに時刻出すときどうやってたっけ?って悩むことなく-tvで

manはボリューム満点なので
まずは–helpから見ていくと良いと思います。

ヴィジュアルモードスゲー

このエントリーをはてなブックマークに追加

vim使っていて、がさっと1ブロック消したいときに
指折り何行あるか数えて8ddとか、
結構行数ある時は10ddとかで刻んで消したりとか、
なんかイケてないオペレーションしてたんですが
ヴィジュアルモードで範囲指定してdするだけで良いんですね!!

知らなくてごめんなさい。

どうしてもSSHしたいから踏み台を作ったはなし

このエントリーをはてなブックマークに追加

ちょっとした研修施設でMicrosoftAzureの研修のようなものに参加させていただいたのですが
インスタンスの構築はwebブラウザからサクサクと進めればいいのですが
立ったインスタンスにsshでアクセスしようとしたものの、アクセスできないorz
どうやらその研修施設のネットワークがガチガチすぎて、22番ポートに出ていけない。
というか、80番と443番にしか出ていけないw

困ったので、443番でssh待ち受けるサーバを作った
AmazonEC2上に立てたので、標準だと公開鍵認証認証なのですが
公開鍵を持ち歩くことないので、踏み台アカウントを作成して、踏み台アカウントはパスワード認証にした。
#さすがにec2-userとかパスワード認証にする勇気はないです。(ユーザー名知れ渡ってるし、総当たりされそう)

ちなみに、上記な環境です。

やったことはシンプル
* /etc/ssh/sshd_config の編集
* sshdの再起動
の2つだけです。

リッスンポートを22から443に変更

踏み台アカウントはパスワード認証

変更後にsshdの再起動。
めでたくして、443ポートで待ち受ける踏み台サーバができました。

インターネットすることを許可する/しない

このエントリーをはてなブックマークに追加

秋の夜長の意味もよくわかってないですが
夏至をすぎれば冬至まで夜は長くなる一方なので、夜は長くなるでしょう。

そんな戯言はどうでもいいのですが、夜にインターネットすると時間泥棒がやってくる。
ということで、インターネットを許可しない。

squidを使って、夜の間だけインターネットを許可しないってことをやったのでめも。
バージョンは 以下のバージョンです。

まずは、時間泥棒たちのURIを正規表現っぽい感じで、以下に記載

次に、squidの設定ファイルを編集

こんな感じでよろしく追記した。

上記でDAYTIME を 08:00-22:00で設定
※曜日が設定したければ 時刻の前に曜日設定ができる。(acl DAYTIME time MTWHF 08:00-22:00)
 S(日曜日)、M(月曜日)、T(火曜日)、W(水曜日)、H(木曜日)、F(金曜日)、A(土曜日)

上記で許可したい時間帯は時間泥棒の閲覧を許可する。

上記で時間泥棒の閲覧を許可しない。

こうすることで、許可する時間だけ許可することが出来る。

注意しないといけないのは、squidのaclは上から順番に評価していくので
http_access deny する前に http_access allow すると、意図せず許可してしまうということ。

オリジナルのsquid.confだと

こんな感じで、localnetからのアクセス許可してるので、気をつけないといけないです。

ということで、自制心のない僕でもなんとかなりそうです。
あぁ、ブラウザのプロキシ設定は忘れずに。

aws cliをタブ補完したい

このエントリーをはてなブックマークに追加

タイトルの通り。
aws cli コマンドというかオプションというか長すぎて覚えられない。
タブ補完できたら良いな。と思ったらできた!

たった3行!
超快適!

ドンピシャ検索

このエントリーをはてなブックマークに追加

ELBのアクセスログで5xxエラーを拾いたい。
こんな感じでログ出るはずなので

grepすると、違うところも引っかかる

フィールドは決まってるので
8番目の(elb_status_code)をgrepできればいい。
スペース区切りで出力されるので、確実に8番目にステータスコードが来るはず。
awkならスペース区切りの8番目とかできるでしょ。

うん、8番目取れたけど…8番目が5xxの行全体が欲しいんだよね。

8番目が5で始まるにマッチする行全体を表示すると、欲しいの取れそう。

ドンピシャ取れた!

chromebookにgit入れる

このエントリーをはてなブックマークに追加

chromebrewっていう便利なものがあるらしい。
パッケージマネージャー的なものみたい。
* 導入

* 入った!

CentOS7のAMI使った時のメモ

このエントリーをはてなブックマークに追加

EC2でCentos7のAMI使ってインスタンス立てた時のメモ。
無料枠のt2microで立ててます。

* SELINUXの確認→無効化

* epelリポジトリ追加する

使う。

I/O性能の監視

このエントリーをはてなブックマークに追加

I/O性能見たい!

フィールドの説明があった!
https://www.kernel.org/doc/Documentation/iostats.txt

Field4 の読み込み(ミリ秒)とField8 の書き込み(ミリ秒)があったら良いのかな。

Field 1 — # of reads completed
This is the total number of reads completed successfully.

Field 2 — # of reads merged, field 6 — # of writes merged
Reads and writes which are adjacent to each other may be merged for
efficiency. Thus two 4K reads may become one 8K read before it is
ultimately handed to the disk, and so it will be counted (and queued)
as only one I/O. This field lets you know how often this was done.

Field 3 — # of sectors read
This is the total number of sectors read successfully.

Field 4 — # of milliseconds spent reading
This is the total number of milliseconds spent by all reads (as
measured from __make_request() to end_that_request_last()).

Field 5 — # of writes completed
This is the total number of writes completed successfully.

Field 6 — # of writes merged
See the description of field 2.

Field 7 — # of sectors written
This is the total number of sectors written successfully.

Field 8 — # of milliseconds spent writing
This is the total number of milliseconds spent by all writes (as
measured from __make_request() to end_that_request_last()).

Field 9 — # of I/Os currently in progress
The only field that should go to zero. Incremented as requests are
given to appropriate struct request_queue and decremented as they finish.

Field 10 — # of milliseconds spent doing I/Os
This field increases so long as field 9 is nonzero.

Field 11 — weighted # of milliseconds spent doing I/Os
This field is incremented at each I/O start, I/O completion, I/O
merge, or read of these stats by the number of I/Os in progress
(field 9) times the number of milliseconds spent doing I/O since the
last update of this field. This can provide an easy measure of both
I/O completion time and the backlog that may be accumulating.