2016年3月11日金曜日

Node.js を動かし続けるため、Forever を使ってみてダメだったので、nohup node にしてみた!

cron に1分おきでサイトを確認して落ちたらForeverで再起動してみたが、大量のNodeプロセスが残されたため、メモリ足りなくなってサーバ自体が落ちた><
だから、下記のように変えてみた。

sudo crontab -e で下記の一行を追加

0-59/1 * * * *   /bin/bash /home/username/site_3000_alive.sh

site_3000_alive.sh 
--------------------------
#!/bin/bash

#================================================================
# check web server
#
# wget option
# -nv : no verbose 
# -S  : print server response
# -t  : tries number 
# -T  : timeout seconds
# --spider             : don't download anything.
# --http-user=USER     : set http user to USER.
# --http-password=PASS : set http password to PASS.
#
# grep option
# -c : only print a count of matching lines per FILE
#================================================================

# parameter
URL="http://win.site.net:3000"
TRY=1
TIMEOUT=60

# check
check=`/usr/bin/wget -nv -S --spider -t $TRY -T $TIMEOUT $URL 2>&1| /bin/grep -c "200 OK"`

if [ $check -lt 1 ]
then
/usr/bin/nohup /usr/local/bin/node /home/username/node/node-memo-demo/app.js > nodememo.log &
fi

脆弱性スキャナーも文句いわない Postfix の SSL 設定

2016年3月10日時点で、
sudo vi /etc/postfix/main.cf を実行して、下記の数行を追加して、

#20160310 時点
smtpd_tls_eecdh_grade = strong
tls_preempt_cipherlist = yes
smtpd_tls_loglevel = 1
smtp_tls_loglevel = 1
smtpd_use_tls = yes
smtp_use_tls = yes
smtpd_tls_security_level = may
lmtp_tls_mandatory_ciphers = high
smtp_tls_mandatory_ciphers = high
smtpd_tls_mandatory_ciphers = high
smtp_tls_security_level = may
smtpd_tls_mandatory_exclude_ciphers = MD5, DES, ADH, RC4, PSD, SRP, 3DES, AECDH, eNULL
smtpd_tls_exclude_ciphers = MD5, DES, ADH, RC4, PSD, SRP, 3DES, AECDH, eNULL
smtp_tls_mandatory_exclude_ciphers = MD5, DES, ADH, RC4, PSD, SRP, 3DES, AECDH, eNULL
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3

sudo /etc/init.d/postfix restart で再起動すれば、OKです。

2016年3月7日月曜日

いろなOSに最新の Node.js をインストルする


  • Mac OSX(10.9.5)
Node.js の本家のページからインストール用のパッケージをダウンロードし、実行するのみです。
https://nodejs.org/en/
https://nodejs.org/dist/v5.7.1/node-v5.7.1.pkg
  • ラズベリーパイ(B)
まずは、本家の「https://nodejs.org/dist/」に配布されているバージョンのうち、最新のものへ飛びます。
例えば、現時点の最新は、「https://nodejs.org/dist/v5.7.1/」 なので、armv6l のファイルを wget します。
wget https://nodejs.org/dist/v5.7.1/node-v5.7.1-linux-armv6l.tar.gz 
tar zxvf node-v5.7.1-linux-armv6l.tar.gz
cd node-v5.7.1-linux-armv6l/ 
sudo cp -r * /usr/local/
node -v 
v5.7.1がでれば、OKです。 
  • ラズベリーパイ2(B)
まずは、本家の「https://nodejs.org/dist/」に配布されているバージョンのうち、最新のものへ飛びます。
例えば、現時点の最新は、「https://nodejs.org/dist/v5.7.1/」 なので、armv7l のファイルを wget します。
wget https://nodejs.org/dist/v5.7.1/node-v5.7.1-linux-armv7l.tar.gz 
tar zxvf node-v5.7.1-linux-armv7l.tar.gz
cd node-v5.7.1-linux-armv7l/ 
sudo cp -r * /usr/local/
node -v 
v5.7.1がでれば、OKです。 
  • Debian wheezy
■/etc/apt/sources.list.d/backports.list あたりに、下記を追記しておく。 
deb http://ftp.jp.debian.org/debian/ wheezy-backports main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ wheezy-backports main contrib non-free
 上記を追記し保存してから、下記のコメントを実行してください。
$ sudo apt-get update
$ sudo apt-get install nodejs nodejs-legacy
nodeパッケージにはnpmは含まれていないので、下記コマンドでインストールしておく。
# curl -L https://npmjs.org/install.sh | sh  
【参考サイト】
http://kotak.hatenablog.com/entry/2014/06/18/190500 

2016年3月6日日曜日

Debian wheezy に MongoDB 3.2.3 をインストールする

本家のサイトの方法でインストールするとき、下記のエラーが発生しますので、

[FAIL] Starting database: mongod failed!
invoke-rc.d: initscript mongod, action "start" failed.
dpkg: error processing mongodb-org-server (--configure):

このページの情報でうまくインストールできましたが、


sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt-get update
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo export LANGUAGE=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
sudo locale-gen en_US.UTF-8
dpkg-reconfigure locales
sudo dpkg-reconfigure locales
sudo apt-get install mongodb-org-server
sudo apt-get install mongodb-org


下記のワーニングが mongo を実行した後に出てしまいました。


Server has startup warnings: 
2016-03-06T19:47:24.176+0900 I CONTROL  [initandlisten] 
2016-03-06T19:47:24.176+0900 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-03-06T19:47:24.176+0900 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

2016-03-06T19:47:24.176+0900 I CONTROL  [initandlisten] 

このサイトで解決方法がありました。

しかし、最終的に /etc/init.d/mongod の先頭に下記を追記したことで当分解決しました。

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

それから、~/.profile の先頭にも下記を追加します。
しないと、mongo コマンドがエラーになります。

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

2016年3月5日土曜日

時空ノ水晶 不死鳥の花III グランエイビス


反撃が多いので、雑魚を退治する段階で、ストンガブロウIIIでダメ軽減を最大の9にします。グランエイビスが沸いたら、デスベルIIIで、ひたすらかけてもいいし、敵のリジェネは一回当たり9万弱のHPを回復してしまうからです。
それから、万が一ミスした時、戦闘不能から回復できるようにドラゴンソールIIIも装備します。スロウガIIIの対策で、スピード注視の幻石と短剣を装備します。瀕死の対策は仮装アクセサリーを装備します。

アタッカーはクリティカル、命中、攻撃を注視します。もちろん、暗闇の対策は幻石で、武器は特効の弓で、瀕死の対策も仮装装備で対応します。

アッシュはキャップチャーしていなかったが、瀕死は最初が仮装装備だったが、 エルフレーヌをLV7にしてからこの幻石にしました。戦闘不能の回復の保険にもなります。基本的に雑魚の段階は回復してやろうのみ、HPとMPをキャップに維持します。最後のボスから、無敵の歌IIIを始めます。スロウガIIIの対策としてホーリーブレスIIIを装備しました。


エルフレーヌは必ず落とします。
現時点は、ランク7が2つ、ランク6が2つ、ランク4が1つをゲットしました。