curl multiple urls

表題の件について。`curl`の`man`を見ていて初めて知ったのでメモ。

■ 環境

  • Linux
  • Mac OSX El Capitan

■ curl

`man`に下記のような記載がある。

You can specify multiple URLs or parts of URLs by writing part sets within braces as in:

    http://site.{one,two,three}.com

        or you can get sequences of alphanumeric series by using [] as in:

    ftp://ftp.numericals.com/file[1-100].txt
  :

こういった書き方もできるのか、というのを初めて知ったので試してみた。対象はDockerでApacheを起動した。

$ docker run -dti --rm --name httpd -p 10080:80 httpd

アクセスログを見る。

$ docker logs -f httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Thu Aug 24 05:37:15.553779 2017] [mpm_event:notice] [pid 1:tid 139880451094400] AH00489: Apache/2.4.27 (Unix) configured -- resuming normal operations
[Thu Aug 24 05:37:15.553906 2017] [core:notice] [pid 1:tid 139880451094400] AH00094: Command line: 'httpd -D FOREGROUND'

では実際に`curl`でアクセスしてみる。

まずは何も指定しない。

$ curl localhost:10080

この時のアクセスログは下記の通り。

172.17.0.1 - - [24/Aug/2017:10:07:30 +0000] "GET / HTTP/1.1" 200 45

1つ目の”{}“を使った方法を試してみる。

$ curl localhost:10080/{a,b,c}.html

アクセスログは下記の通りになった。

172.17.0.1 - - [24/Aug/2017:10:08:05 +0000] "GET /a.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:05 +0000] "GET /b.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:05 +0000] "GET /c.html HTTP/1.1" 404 204

また、”[]“で数値の範囲指定も可能である。

$ curl localhost:10080/[1-15].html

アクセスログは下記の通り。

172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /1.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /2.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /3.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /4.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /5.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /6.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /7.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /8.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /9.html HTTP/1.1" 404 204
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /10.html HTTP/1.1" 404 205
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /11.html HTTP/1.1" 404 205
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /12.html HTTP/1.1" 404 205
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /13.html HTTP/1.1" 404 205
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /14.html HTTP/1.1" 404 205
172.17.0.1 - - [24/Aug/2017:10:08:58 +0000] "GET /15.html HTTP/1.1" 404 205

知らなかったので便利に使えそうである。

以上。

dig +answer

表題のコマンドに関して。

■ 環境

  • Linux
  • Mac OSX El Capitan

■ dig

`dig`の”ANSWER SECTION“のみ取得したい。以前の`dig +short`では、”Aレコード“ではIPアドレス、”CNAME“ではFQDNとそのIPアドレスが得られるが、それだけではなくTTL等も取得したいのが理由である。

$ dig +answer example.com

上記を実行してみたところ、通常の出力と同じ結果しか得られなかった。よって下記のようにオプションを追加した。

$ dig +noall +answer example.com
example.com.        83338    IN    A    93.184.216.34
$

これで欲しい結果が得られた。ちなみにFQDNは複数指定することができることを知った。まぁそれが今回のことをやりたいきっかけになったのだが。

$ dig +noall +answer example.com example.net
example.com.        83204    IN    A    93.184.216.34
example.net.        83654    IN    A    93.184.216.34

以上。

■ 関連

dig +short

dig mx

DNS逆引き1行版

httpd@Dockerの起動方法

表題の件について。過去2回ほど同じネタをあげているのだが、その時のメモを見て同じ方法で起動しようとしたが、起動できなかったのでメモしておく。

■ 環境

  • httpd 2.4.27
  • Docker for Mac
  • Mac OSX El Capitan

■ httpd

コンテナは下記で取得した。

$ docker pull httpd

以前のエントリの通り下記で起動しようとしたのだが、起動できずに落ちてしまう。

$ docker run -ti --rm --name httpd -p 10080:80 httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Tue Aug 22 10:14:51.095259 2017] [mpm_event:notice] [pid 1:tid 139888904910720] AH00489: Apache/2.4.27 (Unix) configured -- resuming normal operations
[Tue Aug 22 10:14:51.095353 2017] [core:notice] [pid 1:tid 139888904910720] AH00094: Command line: 'httpd -D FOREGROUND'
[Tue Aug 22 10:14:51.221791 2017] [mpm_event:notice] [pid 1:tid 139888904910720] AH00492: caught SIGWINCH, shutting down gracefully
$

さてどうしたものかと探してみると、過去のISSUEがあったので参考にしてみた。

とりあえず”-d“を付けて起動してみることにした。

$ docker run -dti --rm --name httpd -p 10080:80 httpd
be3eaf245ecb080b3d3ed30fe5b61f582c6d693b82bfd31d4051f24210a06e08
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                   NAMES
be3eaf245ecb        httpd               "httpd-foreground"   4 seconds ago       Up 2 seconds        0.0.0.0:10080->80/tcp   httpd
$

起動してくれた。ログも確認してみる。

$ docker logs httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Tue Aug 22 10:26:58.420633 2017] [mpm_event:notice] [pid 1:tid 139631637636992] AH00489: Apache/2.4.27 (Unix) configured -- resuming normal operations
[Tue Aug 22 10:26:58.420751 2017] [core:notice] [pid 1:tid 139631637636992] AH00094: Command line: 'httpd -D FOREGROUND'
$

さて、しばらく触っていない間にどんな変更があったのであろう。とりあえず検証環境として使いたいだけだったので詳細はまた別途調べてみることにする。

-d“の時に”–rm“も以前は使えなかったような気がするのだが、それも気になるし。

以上。

■ 関連

ApacheHttpd@Docker

httpd@Docker

推測候補表示

Macにおける表題の機能をオフにした。

■ 環境

  • Mac OSX El Capitan

■ 推測候補表示

もともと”ライブ変換“はオフにしていたのだが、最近とってもうざいと思うようになったこの機能。日本語入力している際に頻繁に表示され、かつその瞬間に一瞬ではあるが固まってしまう…。この一瞬固まるのが非常にストレスに感じるようになった。当初は”ライブ変換“をオフにしていた記憶があったので違う機能かと思い、設定を確認することを放置してしまっていた。

Appleマーク > システム環境設定 > キーボード > 入力ソース > 日本語 > 推測候補表示

上記のチェックを外す。これで快適になった。

以上。

Posted in: Mac | Tagged:

PrintLastLog

SSHの設定で表題の件について。

■ 環境

  • Amazon Linux

■ sshd_config

/etc/ssh/sshd_config“を見ていて、これって何だっけ?となった。

PrintLastLog yes

デフォルト値も”yes“であるが、しっかり書かれてもいる。`man`では下記のように記載があった。

PrintLastLog
  Specifies whether sshd(8) should print the date and time of the last user login when a user logs in interactively.
  The default is “yes”.

最後にログインした日時とIPが出る。IPでなければFQDNもある。接続元のIPが名前解決できるかできないか、であるか。

$ ssh example
Last login: Fri Aug 18 19:08:47 2017 from XXX.XXX.XXX.XXX
[withsin@example ~]$

下記のように”/etc/ssh/sshd_config“を編集した。

# PrintLastLog yes
PrintLastLog no

`sshd`を再起動する。

[withsin@example ~]$ sudo service sshd restart

ログインしても出なくなった。

$ ssh example
[withsin@example ~]$

自分以外がログインした形跡はないよな?といつも何となく見ている箇所であるので、”yes“にしておこう。

以上。