BASH_VERSION

表題の通り、”bash“の”version“について。

■ 環境

  • Mac OSX El Capitan
  • Ubuntu 16.04

■ BASH_VERSION

`bash`のversionを得る為には変数として入っているらしい。

Macで実行。

$ echo ${BASH_VERSION}
3.2.57(1)-release
$

Ubuntu 14.04で実行。

$ echo ${BASH_VERSION}
4.3.48(1)-release
$

他にもショートカットキー(?)があるようだ。

control + X
control + V

Macで実行。

$
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
$

Ubuntu 16.04で実行。

$
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
$

以上。

VIPの数が一致しない

keepalived“を使っていて設定を変更した際に、表題を意味するような警告メッセージが出力されていた。

■ 環境

  • Keepalived 1.2.13
  • CentOS 6.9

■ keepalived.con

keepalived“で冗長構成を取っている2台で、Virtual IPを複数つけている。そのうちのひとつが不要になったので”BACKUP STATE“の”keepalived.conf“にある”virtual_ipaddresses“からIPを外し`service keepalived reload`たところ、”/var/log/messages“に下記のようなメッセージが出力されていた。

Oct 20 19:03:44 host002 Keepalived_vrrp[3379]: receive an invalid ip number count associated with VRID!
Oct 20 19:03:44 host002 Keepalived_vrrp[3379]: bogus VRRP packet received on eth0 !!!
Oct 20 19:03:44 host002 Keepalived_vrrp[3379]: VRRP_Instance(V_EXT) ignoring received advertisment...

どうやら”virtual_ipaddress“の個数が違うのが原因のようである。現状”MASTER STATE“となっているホスト側でも同じ処理をしたところメッセージ出力は止まった。次からは同時にやってしまうことにする。

以上。

readlink -f

表題を忘れやすいのでメモ。

■ 環境

  • Amazon Linux

■ readlink

ファイルやディレクトリの絶対パスが取得したい時がある。シンボリックリンクだったり、スクリプト中の実行ディレクトリの場所だったり。そんな時に使ってる。

$ readlink -f .
/home/ec2-user
$

上記の使い方であると`pwd`と一緒なので特に意味がない。下記のような場合に本領を発揮する。

$ pwd
/etc/rc5.d
$ ls -l S99local
lrwxrwxrwx 1 root root 11 Oct  1 08:54 S99local -> ../rc.local
$ readlink -f S99local
/etc/rc.d/rc.local
$

以上。

改行をスペースに置換

表題の通り。テキストファイルの改行をスペースに置換したい。

■ 環境

  • Mac OSX El Capitan

■ tr

`sed`でもいけるかな?と思ったが思い通りにはいかなかった。後々考えてみると”^M“でやらなければいけなかったかな、、と思い立ったのだが後の祭り。`tr`コマンドで実施した。

$ cat example.txt | tr '\n' ' ' 

単なるメモである。

以上。

■ 関連

sedで改行文字を削除

H2O install @CentOS6

表題の通り。とりあえず触ってみたかったのでインストールしてみることにした。

■ 環境

  • H2O 2.2.2
  • CentOS 6.9

■ RPM

Install – H2O – the optimized HTTP/2 server
https://h2o.examp1e.net/install.html

上記の「Installing a Binary Package > RPM (Fedora, RHEL/CentOS, OpenSUSE)」を参照すると「How to use prebuild RPM」とあったのでこれを使わせてもらうことにする。

h2o.repo“を用意した。編集はせずにそのまま利用する。

$ cat /etc/yum.repos.d/h2o.repo
#bintray-tatsushid-h2o-rpm - packages by tatsushid from Bintray
[bintray-tatsushid-h2o-rpm]
name=bintray-tatsushid-h2o-rpm
#If your system is CentOS
baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/centos/$releasever/$basearch/
#If your system is Fedora
#baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/fedora/$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1
$

あとは`yum`コマンドでインストールするだけである。

$ sudo yum update
$ sudo yum install h2o

起動。

$ sudo service h2o start
Starting h2o: start_server (pid:10794) starting now...
                                           [  OK  ]
$

プロセス、portも開いているので軽く確認。

$ curl localhost
<!DOCTYPE html>
<html>
  <head>
    <title>Welcome to H2O</title>
  </head>
  <body>
    <p>Welcome to H2O - an optimized HTTP server</p>
    <p>It works!</p>
  </body>
</html>
$

そもそもH2Oを使ってみたかったのはHTTP/2でのproxyをさせたかったから。ちょっといろいろ触ってみようかと思う。

以上。