送信先IPアドレスをiptablesで変える方法
あるホストから別のホストへ通信する際の通信先のホストのIPをiptablesで変換する方法を記載する。 送信先IPアドレスをiptablesで変えたい時 iptablesでの実現の仕方を書く前に、送信先IPアドレスをiptablesで変えたいのはどのような時か。例を2つあげたい。 グローバル経由でRedis Sentinelに接続する プライベートLAN内でReplication +...
View Articlebash固有機能を使うときはshebangをbashにするだけでは安全とは言えない
プロセス置換等、/bin/shでは利用できず/bin/bashを使う必要がある場合、シェルスクリプトを書くときに、shebangを気にする必要がある。しかし、shebangで/bin/bashを指定しても、シェルスクリプト実行時にsh script.shとしてしまうと問題が発生する。 /bin/shと/bin/bashとプロセス置換の問題 shebangが/bin/shの問題点...
View ArticleMuninの間隔を1分間隔に変更する
Muninの更新間隔をデフォルトの5分から1分間隔に変更する方法を記載する。(Munin version 2.0) Muninはcron(/etc/cron.d/munin)から起動されているのでcronの変更を行う必要があるが、cronの時間を変えるだけではダメ。変更作業中にMuninが動いて欲しくないため、一番はじめの作業としてcronのコメントアウトだけしておく。 #*/5 * * * *...
View ArticleMuninで各サーバのeth0をまとめる
Munin(2.0系)で/etc/munin/munin-conf.d/に配置しているconfigに書いてある各サーバのeth0をまとめたグラフを出力する方法。 元々以下のように3台のサーバが定義されていたとする。 [product;server0001] address server0001 use_node_name yes [product;server0002] address...
View Article安易に使わないほうがいいMySQLClientコマンド"edit"
前回、安易に使わないほうがいいLinuxコマンド”fc”を書いた。コマンドライン上で編集するときはEmacsキーバインドになるが、ヒアドキュメントなど長いコマンドを書くときにfcを使うとVimで効率よく書ける。しかしコマンド実行をキャンセルしようとした時の挙動が直感と異なるので、安易に使わない方がいいという主張だ。 全く同じようなことがMySQLクライアントコマンドでも言える。...
View ArticleGitLabにpushするときコミットメッセージをチェックする
RedmineのチケットとGitのコミットを紐づけるために、コミットメッセージにrefs #チケット番号を入れることをルール化したい。 クライアントサイドフックであるpre-commit...
View ArticleON DUPLICATE KEY UPDATEをAUTO_INCREMENTのテーブルには発行しない方がいい
AUTO_INCREMENTはINSERTするたびにカウントアップして発番してくれるが、ON DUPLICATE KEY UPDATEを使用してINSERTではなく既存行のUPDATEになった場合もカウントアップされてしまう。実際にINSERTしている行数はたいしたことがないのに、ON DUPLICATE KEY...
View Articlewc -lでは文末に改行がないファイルの行数を正しく数えられない
最後に改行がある場合は以下の通り問題ない。 $ printf 'test\ntest\n' test test $ printf 'test\ntest\n' | wc -l 2 wc -lは改行の数を数えるため、最後に改行がないと本当の行数より1少ない数を返してしまう。 $ printf 'test\ntest' test test$ $ printf 'test\ntest' | wc -l 1...
View Article各OSでのデフォルトI/Oスケジューラの違い
CentOS6とCentOS7とAmazon LinuxではデフォルトのI/Oスケジューラに違いがあるため、ioniceコマンドを実行するときやパフォーマンスチューニングをするときに注意が必要だ。 各OSでのデフォルトI/Oスケジューラ...
View Article