ふり返る暇なんて無いね

日々のメモ書きをつらつらと

tech

Ubuntu16.04上のMySQL5.7でChange limitsとか言われる件

MySQLのエラーログを見てるとこんなこと言われるのですが、 2016-06-09T06:53:07.219882Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5010) 2016-06-09T06:53:07.219948Z 0 [Warning] Changed limits: max_connections: 214 (requested 1…

Ubuntu16.04のMySQL5.7の設定ファイル

Ubuntu16.04で入るMySQL5.7の設定ファイルがこんな感じになってるんですが、 どういう意図なんでしょうね? MySQL的には読み込むファイルは/etc/mysql/my.cnfだけど、Ubuntu開発チーム的には/etc/mysql/mysql.cnfがいじって欲しいファイルってことなんですか…

ps小技(ソートとかスレッド表示)

毎回忘れるのでメモを残す スレッドを表示したい -Lオプションを使うと良い ps -efL 特定のカラムでソートしたい --sortオプションを使うと良い。カラム名の前に-を付けると降順になるデフォルト昇順。 ps auxwwww --sort=-%mem | head

自分のipアドレスを知りたいとき(linux)

最初に結論 hostname -Iを使うと良い 某所で、自ホストのIPアドレスを取得するためにこんなことをしている箇所を見つけたのが発端です。 LANG=C /sbin/ifconfig | grep 'inet addr' | awk '{print $2;}' | cut -d: -f2 | grep -v 127.0.0.1 | tail -n 1 もう…

pythonでインスタンスをprintした時の文字列表現としてインスタンス変数をダンプしたい

こんなかんじすかね?

sudoersにはワイルドカードが使える

デーモン管理はUpstartでやっていて、Webアプリケーションサーバはwebapp-${project_name}、ジョブワーカーはjobworker-${project_nameみたいな感じの名前で定義しています。 serviceコマンドはrootじゃないと実行出来ないのですが、デプロイのときなど、大…

fabricで現在実行中のhostを取りたい

A. env.host を使うと良い。 hostによって配るcrontabが違っていて、レポジトリ的には ${HOSTNAME}.crontab みたいな感じでhost名を含むファイル名で置いてあるときに、どうしたらうまく配れるかなと考えた結果 env.host で実行中のhost名が取れるのでそいつ…

わざわざワークツリーに移動しなくてもgit操作したい

今まで、ワークツリーにいちいち移動してから、gitの操作してたんですが、 --git-dir で指定してあげればその必要も無いという知見を得ました。 今まではこうしてたのを、 cd /path/to/repos/ git log こうしてあげることで、ディレクトリの移動が必要無くgi…

GitHubはsvn対応していたらしい

そういうのを昔どっかで聞いて、ネタじゃないの?とか思って居たんですが、ふとさっき思い出して、試してみたら、普通にcheckoutできた。 % svn checkout https://github.com/masasuzu/resume A resume/branches A resume/trunk A resume/trunk/README.md Che…

CodeDeploy-Agent をUbuntu12.04でもインストールしたい

※そもそも、サポート対象外のディストリビューションのバージョンなので、ちゃんと動くかどうかはまったく保証出来ません。 ※前提として、awsコマンドインストール済みで、CodeDeployなどの各種設定済みであること Ubuntu12.04でaws deploy installしようと…

AWS CodeDeployをオンプレミスで使うにあたっての料金に関してざっくり計算

https://aws.amazon.com/jp/codedeploy/pricing/ 1台に対して1回デプロイする毎に$0.02かかる ざっくりの計算だと、1日あたり20回くらいデプロイがあるとし、各プロジェクトの平均台数が30台とする。 これを計算すると1日当たり$12。 (20回) * (30台) * ($0.…

pyenvでpythonをビルドしたときにいくつかライブラリが足りないと怒られた

Ubuntu12.04な環境です。 2.7.10をビルドしようとすると、いくつかライブラリがないと怒られたのでした。 % pyenv install 2.7.10 Downloading Python-2.7.10.tgz... -> https://yyuu.github.io/pythons/eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d…

pyenvで入れたpythonでUnicodeEncodeErrorと怒られる

easy_installだとちゃんとインストールできる。なんで? Ubuntu 12.04の環境です。 % pip install fabric Collecting fabric Exception: Traceback (most recent call last): File "/home/masasuzu/.anyenv/envs/pyenv/versions/2.7.10/lib/python2.7/site-pa…

雑にfabricを使う

fabricをちょっと試してみたメモ。 久しぶりにpythonの環境使うので、どれが正しいのかよく分かってない。 とりあえず anyenv+pyenv+python2.7.10+pyenv-virtualenvの環境で作ってみる。 pyenv インストール pyenv install 2.7.10 git clone https://github.…

コマンドラインでElasticsearchのindexの存在確認をしたい

超雑に。 % curl -i -XHEAD $(date --utc +"http://elasticsearch.myhost/${index_name}-%Y.%m.%d") HTTP/1.1 200 OK Server: nginx Date: Wed, 04 Nov 2015 07:22:06 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 0 Connection: keep-alive…

MySQLのエラーコードの意味を知りたい

MySQLのエラーログにこんなエラーが出ていたとします。 150819 10:05:09 [ERROR] Slave I/O: The slave I/O thread stops because a fatal error is encountered when it try to get the value of SERVER_ID variable from master. Error: , Error_code: 115…

複数のremoteにgit pushしたい

git remote set-url --add ${remote} して上げれば良い。 # git clone git@github.com:masasuzu/p5-Acme-LoveLive.git cd p5-Acme-LoveLive git remote set-url --add origin git@bitbucket.org:masasuzu/p5-acme-lovelive.git # git push この例だとgithub…

Fluentdのfilter_grepの設定で少しはまった。

fluentd 0.12.15 の話です。 結論から言うとFluentdのfilter_grepが、keyの後にスペース1個しか許容してくれません。 なので、下記のようにそろえるために、スペースを余分に入れると、意図しない正規表現になってしまいます。 <filter fluent.info> type grep exclude1 message </filter>…

Fluentdのmonitor_agentを動かしたい

設定ファイルにこう書いて再起動するだけ。 <source> type monitor_agent bind 0.0.0.0 port 24220 </source> 拡張子jsonを付けるとJSONで結果が返ってくるので、jqと組み合わせるとか、プログラムで処理しても良い。何も付けないとLTSVで結果が返ってくる。 curl --silent lo…

FluentdのBufferedOutputの挙動を知るためのリソース メモ

Fluentdのforward回りで少しはまってたときに役に立ったリソースメモ。 解決しつつあるので、その件についても後で書く Fluentd out_forward における最適化パラメータいくつかの話 - たごもりすメモtagomoris.hatenablog.com td-agentでqueue size exceeds …

Acme::LoveLiveがサンシャインに対応した

なんとなく某所から圧力がかかったので、雑に対応しました。 % perl -Ilib -MAcme::LoveLive -E 'binmode STDOUT => "utf8";say join(":", $_->fullname_ja, $_->cv) for Acme::LoveLive->unit("Aqours")->members' 小原鞠莉:鈴木愛奈 津島善子:小林愛香 黒…

crystal langことはじめ

crystalをちょっと触ってみたくなったので、hello worldするまで。 基本ドキュメントに書いてあります。 Crystal crenv(anyenv)で実行環境をインストール anyenvは入ってる前提です。plenvやrbenvと同じノリで、開発したいのでcrenvを使います。 riywo/anyen…

hiki2mdを書いてる

masasuzu/p5-App-hiki2mdgithub.com 前回書いた記事で撤去したhikiサーバにあったドキュメントを再利用しやすいようにmarkdown形式にしておきたいなと思い、ちょっと書いてます。 ソース見ると分かるんですが、正規表現でごりっとしてます。これだとテーブル…

Ubuntu12.04でPerlのコアモジュールのdebian packageを作りたかった。。。

Ubuntu12.04環境で、Test::Harnessのdebian packageが作りたかったんですが、うまくいかなかったメモです。 deb作成 % dh-make-perl --build --cpan Test::Harness Test::Harness is a standard module. Will not build without --core-ok. む。`--core-ok`…

Perlモジュールのバージョン比較したい

某所でこんなコードがあって、Argument "1.20_01" isn't numeric in numeric le (<=) とか言われてイラッとしたわけですが。 if ($Time::Piece::VERSION <= 1.16) { .... } この場合、Perlモジュールのバージョンが数値がとは限らないので比較するにはversio…

MySQLのLINEAR KEY パーティションでPKで検索しても遅い場合

プライマリーキー(id)でSELECTしてるのにSlowlogに出てくる不思議なクエリがあるからなんでだろうなと調べてみると、なんと全パーティションを検索していて遅かったという現象がありました。ちょっとテスト環境で再現してみます。 環境 Ubuntu 12.04のdebで…

Elasticsearchを1.4以上に上げたらkibana3がElasticsearchにConnection Failedする際の対処

Elasticsearchを1.4以降からセキュリティの関係でクロスドメイン通信が無効にされています。 この関係で、Elasticsearch1.3系から1.5系に上げたらkibana3がElasticsearchに接続できなくなったので、対処をメモ。というか、エラーメッセージに書いてある通り…

サーバ起動時に/etc/init.d/ に設定があるデーモンを自動起動したい

最近のUbuntuだとupstartがちゃんと設定されてれば、そっちで制御できるんだけど、サードパーティーのパッケージとかで、入れるとたまにサーバ起動時に自動で立ち上がらないようになっていたりするやつもあったりします。 そういうときに自動起動するように…

ポートが空いてるか調べたいとき

サーバを立ち上げたけど、サービスになぜか繋がらないというのはよくある話。 プロセスが立ち上がってるのは確かだけど、繋がらない。そんなとき次見る場所としてはポートが空いてるかどうかです。いくつかポートが空いてるかどうか調べる方法のメモを残して…

縮退運用という考え方

※ 社内の日記に書いたのの転載 ※ アプリっていってるのはwebアプリ/webサービスのことをいってる アクセス集中などで異常な高負荷になると1アプリ全体が使用不可能になってしまうことが多いです こういうときは、だいたいにおいて、負荷が下がるのを天に祈り…