AmazonLinux@Dockerにawscli

表題の通り。`awscli`は最初から入っているのかと思ったが入っていなかった。

■ 環境

  • awscli 1.11.17
  • AmazonLinux 2016.09
  • Docker for Mac 1.12.3
  • Mac OSX El Capitan

■ Docker

AmazonLinuxのコンテナを起動する。

$ docker run -ti --rm --name amazon amazonlinux /bin/bash
bash-4.2# which aws
bash: which: command not found
bash-4.2#
bash-4.2# aws
bash: aws: command not found
bash-4.2# 

`which`コマンドも入っていなかったので`aws`コマンドを実行してみたが入っていなかった。

■ awscli

`awscli`というパッケージ名ではなかったようなので検索。

bash-4.2# yum search aws
Loaded plugins: priorities
=============== N/S matched: aws ================================================
  :
aws-cli.noarch : Provides a unified command line interface to Amazon Web Services
:
bash-4.2#
bash-4.2# yum install -y aws-cli
:
bash-4.2# aws --version
aws-cli/1.11.17 Python/2.7.12 Linux/4.4.27-moby botocore/1.4.74
bash-4.2#

インストールができた。あとは`configure`しておしまい。

以上。

■ 関連

Macでの使用メモリ量を調べる

表題の通り。メモリを食い過ぎているものがあるようで固まってしまったので使用量を見てみたくなった。`free`コマンドがあるかと思いきやなかったのでメモ。

■ 環境

  • Mac OSX El Capitan

■ vm_stat

Linuxでの`vmstat`と字面が似ていて覚えづらい。

$ vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                              113751.
Pages active:                           1522005.
Pages inactive:                          708694.
Pages speculative:                        89665.
Pages throttled:                              0.
Pages wired down:                        817682.
Pages purgeable:                         207191.
"Translation faults":                1742117126.
Pages copy-on-write:                   39853323.
Pages zero filled:                   1155059089.
Pages reactivated:                    180557361.
Pages purged:                         101200840.
File-backed pages:                       155411.
Anonymous pages:                        2164953.
Pages stored in compressor:             3956707.
Pages occupied by compressor:            940616.
Decompressions:                       175925241.
Compressions:                         244335604.
Pageins:                               20324317.
Pageouts:                                656477.
Swapins:                              254409392.
Swapouts:                             260952771.
$

パッと見で分かりづらい。

■ top

`top`の中から確認する。

$ top -l 1 | grep Mem
PhysMem: 16G used (3114M wired), 180M unused.
$

使い過ぎである。何が使っているのかを見てみると、GoogleChromeのようである。まぁタブを開きまくってしまっているのが原因だろうが。試しに解放してみる。

$ sudo purge
Password: **********
$
$ top -l 1 | grep Mem
PhysMem: 15G used (3113M wired), 1243M unused.
$

ほんの少しだけ解放された。

以上。

Posted in: Mac | Tagged:

httpdでのServerSignature

表題の件について。先日のエントリの続きみたいな感じ。

■ 環境

  • httpd 2.4.23
  • Docker for Mac 1.12.3
  • Mac OSX El Capitan

■ ServerSignature

core – Apache HTTP サーバ バージョン 2.4
http://httpd.apache.org/docs/2.4/mod/core.html#serversignature

これが消せるのはどこになるのか、を確認する。

デフォルトは”off“のようである。

$ curl -s --dump-header - localhost:8000/test 
HTTP/1.1 404 Not Found 
Date: Thu, 24 Nov 2016 13:58:16 GMT 
Server: Apache 
Content-Length: 263 
Content-Type: text/html; charset=iso-8859-1 

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /test was not found on this server.</p>
$

続いて設定ファイルを変更する。

ServerSignature on

この設定ファイルにて下記のようにコンテナを起動する。

$ docker run -ti --rm --name httpd -p 8000:80 -v `pwd`/httpd.conf:/usr/local/apache2/conf/httpd.conf httpd

アクセスする。

$ curl -s --dump-header - localhost:8000/test
HTTP/1.1 404 Not Found
Date: Thu, 24 Nov 2016 13:58:16 GMT
Server: Apache
Content-Length: 263
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /test was not found on this server.</p>
<hr>
<address>Apache Server at localhost Port 8000</address>
</body></html>
$

下部に情報が表示された。

以上。

■ 関連

httpdでServerTokensを表示させない

表題の通り。Apache httpdで情報を隠す。

■ 環境

  • Apache Httpd 2.4.23
  • Docker for Mac 1.12.3
  • Mac OSX El Capitan

■ httpd

先日の下記エントリで起動したhttpd@Dockerで試す。

httpd@Docker

設定ファイルがどこにあるかを探してみると下記にあるようであった。

/usr/local/apache2/conf/httpd.conf

これを取得して編集を行う。

$ docker cp httpd:/usr/local/apache2/conf/httpd.conf .

編集した後に起動するコンテナは下記の通り。

$ docker run -ti --rm --name httpd -p 8000:80 -v `pwd`/httpd.conf:/usr/local/apache2/conf/httpd.conf httpd

■ ServerTokens

デフォルトではディレクティブが記載されていなかった。この状態で確認してみる。

$ curl -s --dump-header - localhost:8000 | grep Server
Server: Apache/2.4.23 (Unix)
$

では設定を変更してみる。

core – Apache HTTP サーバ バージョン 2.4
https://httpd.apache.org/docs/2.4/ja/mod/core.html#servertokens

マニュアルによると設定できる値は下記があるようである。

  • Prod
  • Major
  • Minor
  • Min
  • OS
  • Full

それぞれ取得できる値は下記のようであった。

  • Prod: Server: Apache
  • Major: Server: Apache/2
  • Minor: Server: Apache/2.4
  • Min: Server: Apache/2.4.23
  • OS: Server: Apache/2.4.23 (Unix)
  • Full: Server: Apache/2.4.23 (Unix)

WEBサーバの種類(nginx or apache)はやはり消せないのか。。

以上。

■ 関連

paste

表題のコマンドについてメモ。知らなかった使い方だった。

■ 環境

  • Linux
  • Mac OSX El Capitan

■ paste

`paste`コマンドといえば、複数のファイルを行単位で結合するコマンドである。例えば下記のような実行結果となる。

$ cat test1
1
2
3
$ cat test2
a
b
c
$ paste test1 test2
1     a
2     b
3     c
$ cat test3
x
y
z
$ paste test1 test2 test3
1     a     x
2     b     y
3     c     z
$ paste -d , test1 test2 test3
1,a,x
2,b,y
3,c,z
$

今回はこれを応用(?)して、1つのファイルから行列(?)を作成する。元ファイルは下記のようなものである。

$ cat list
063
187
223
236
238
  :
$

これを2列に並べ替えるには下記のように実行する。

$ cat list | paste - -
063     187
223     236
238     239
  :
$

3列に並べ替えるのであれば下記のように実行する。

$ cat list | paste - - -
063     187     223
236     238     239
240     241     242
  :
$

“-“の数で列数を指定できる。CSVのようにするには下記である。

$ cat list | paste -d , - - -
063,187,223
236,238,239
240,241,242
  :
$

使い方によっては便利だ。

以上。