2016年1月26日火曜日

daemon系プロセスでのファイルディスクリプタを一律で設定する

fluentdを入れる際にファイルディスクリプタの値を増やしたほうがいいと書いてあったので、
/etc/security/limits.confに書いたのですが、daemonとして立ち上げたときに
設定が効いてなかったので調べました。

検証環境
Amazon Linux AMI 2015.09

まずは現在のファイルディスクリプタの値とdaemonでの状態を確認
$ ulimit -n
1024

$ sudo service httpd start
Starting httpd:                                            [  OK  ]

$ chkconfig --list httpd
httpd           0:off 1:off 2:on  3:on  4:on  5:on  6:off

$ cat /proc/`pgrep httpd | head -1`/limits | grep 'open files'
Max open files            1024                 4096                 files

ulimitでファイルディスクリプタを設定して、手動で起動するとその設定値になります。
$ ulimit -n 4048
$ ulimit -n
4048

$ cat /proc/`pgrep httpd | head -1`/limits | grep 'open files'
Max open files            4048                 4048                 files

rebootすると戻ります。
$ cat /proc/`pgrep httpd | head -1`/limits | grep 'open files'
Max open files            1024                 4096                 files

調べたところ、/etc/sysconfig/initがdaemonでのプロセス起動時に実行されるようなので、
ここでulimitを実行するように追記しました。
$ sudo vim /etc/sysconfig/init 
$ tail -1 /etc/sysconfig/init 
ulimit -n 4048

rebootしても元に戻らないようになりました。
$ cat /proc/`pgrep httpd | head -1`/limits | grep 'open files'
Max open files            4048                 4048                 files


参考URL
http://staffblog.yumemi.jp/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%82%BF%E6%95%B0%E3%81%AE%E4%B8%8A%E9%99%90%E5%A4%89%E6%9B%B4%E3%81%A8limits-conf%E3%81%AE%E7%BD%A0-2/
http://d.hatena.ne.jp/akishin999/20130213/1360711554

2016年1月23日土曜日

RPM入れるときに使うGPG鍵を削除したい

RPMを入れる際にサードパーティのリポジトリを使うことがありますが、
そのときに入れたGPG鍵を削除する必要があったので調べました。

まず現在入れてあるGPG鍵を確認
$rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
gpg-pubkey-21c0f39f-4e41dbdc --> gpg(Amazon Linux AMI (GA) )
gpg-pubkey-79ea5ed4-508d25a6 --> gpg(Zabbix SIA )
gpg-pubkey-a12e206f-52aecba3 --> gpg(Treasure Data, Inc (Treasure Agent Official Signing key) )

GPG鍵を削除
rpm -e gpg-pubkey-a12e206f-52aecba3

$rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
gpg-pubkey-21c0f39f-4e41dbdc --> gpg(Amazon Linux AMI (GA) )
gpg-pubkey-79ea5ed4-508d25a6 --> gpg(Zabbix SIA )


参考URL
https://www.pochio.net/docs/linux/rpmrepo_gpgsign.html

2016年1月12日火曜日

gitで初回コミットを取り消す

コミットの粒度を考えずにサーバー上で勢いで大量にコミットしてしまったので、
ちゃんと細かく分けようとしてそのコミットを取り消そうとしたら、
最初のコミットだったのでgit resetで取り消せなくて困ったので調べました

消したいのはこのコミットです
$ git log
commit 9b5b12136372fe28ed73fec13df1268b58370d6c
Author: EC2 Default User 
Date:   Thu Dec 10 03:03:39 2015 +0000

    ssh経由でのテスト挙動確認

パッと思いつく限りの直前のコミットを取り消すコマンドを実行したのですが、
すべてエラーになったり消せなかったりしました。
$ git reset 9b5b12136372fe28ed73fec13df1268b58370d6c
$ git log
commit 9b5b12136372fe28ed73fec13df1268b58370d6c
Author: EC2 Default User 
Date:   Thu Dec 10 03:03:39 2015 +0000

$ git reset HEAD^
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git  [...] -- [...]'

$ git reset --soft
$ git log
commit 9b5b12136372fe28ed73fec13df1268b58370d6c
Author: EC2 Default User 
Date:   Thu Dec 10 03:03:39 2015 +0000

$ git reset --soft HEAD^
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git  [...] -- [...]'

調べたところ、このコマンドで初回コミットでもちゃんと消せるようです。
$ git update-ref -d HEAD

$ git log
fatal: bad default revision 'HEAD'


参考URL
http://suzuken.hatenablog.jp/entry/2014/03/28/100311