ふり返る暇なんて無いね

日々のメモ書きをつらつらと。メインブログに書くほどでもないことを流してます

tech

とあるプロジェクトのコードのあんちぱたーん

コンテキスト依存、歴史的経緯があるので、一概には言えないのですが、こんなプロジェクトは良くないですね。 あとで、細かく書くかも。書かないかも。 不明なセットアップ手順 DBスキーマ定義ファイルが本番と違う ドキュメントが間違ってる/更新されてない…

Perl 5.18からsmart matchはexperimentalなので使わないで

The smartmatch family of features are now experimentalSmart match, added in v5.10.0 and significantly revised in v5.10.1, has been a regular point of complaint. Although there are a number of ways in which it is useful, it has also proven …

perl5.16から overloadが"overload arg '"' is invalid "みたいなwarningを吐き出した

間違い探し use strict; use warnings; use 5.14.2; package Foo { use overload '"' => sub { 'This is Foo class' }; sub new { bless +{} => shift } }; package main { # Fooクラスのインスタンスの文字列表現をとりたい my $foo = Foo->new; say $foo; …

tmuxでwindow番号を変更したい

すぐ忘れるのでメモ。 [Prefix key] + .同時に作業したいときはwindowが隣り合っていた方が個人的にはらくですが、windowが歯抜けになると新しいwindowが隣同士にならないので、番号指定してやるとだいぶ捗る。

H2データベースのダンプ、リストアをする

某所でH2データベースを使ってるんですが、webコンソールからSQL叩くのはだるいので、どうにかならないのかなとドキュメントを眺めてたら、やり方があったので、メモ。 当方Javaの開発環境がないので、コードを書かずに済んで助かった。http://www.h2databas…

sudo -Hと環境変数($PATH)ではまった話

当たり前の話ではありますが、何を勘違いしてたか、今までsudo -Hすれば、$PATHをはじめとした環境変数がスイッチ後のユーザの物が使われると思っていました。 sudo -H してるのに$PATHが実行ユーザのもの引き継いだままで何故だーとはまっていました。実際…

connectがhomebrewで入らなくなったので自前でビルドする

sshで踏み台するときにconectコマンドを使うのですが、いつからかhomebrewで入らなくなったので、環境作り直しの時に調べるの面倒なので入れ方メモ。 wget ftp://ftp.st.ryukoku.ac.jp/pub/security/tool/openssh-supports/connect.c gcc connect.c -o conne…

不思議な時間にlogrotateしているその理由は。

社内チャットで、"UTCでmysqlのslowlogがローテートしていてはまった"という発言を見たのですが、だいぶ昔だったので今更違うよそれ違うよと指摘するのはアレなので、ここに独り言のように書き残す。 logrotateが不思議な時間に動いてるって?それはcron.dail…

fluentdでltsvのログを出力したい

メモ 普通のパターン 各エージェントから送られてきたログを単純に集約してコレクター側でファイルに吐くのであればコレで十分なはずです。 エージェント側 <source> type tail tag http.access path /var/log/nginx/access.log pos_file /var/log/td-agent/nginx.ac</source>…

carton install時にPERL_CARTON_MIRRORで指定したミラーが見つからなくてもwarn吐いてくれない

httpだからって80ポートとは限らないんだぞ!! 自分で設定して自分ではまってた。— masasuzu? (@masasuz) November 17, 2014 carton installのときPERL_CARTON_MIRROR で指定したミラーに繋がらなくても、デフォルトだとwarn吐いてくれなくて、毎モジュール毎…

out_fileとout_file_alternativeのデフォルトのタイムゾーンは違う

微妙にはまったのですが、現状のバージョンでは、 file => localtime file_alternative => utc がデフォルトのタイムゾーンです。fluent-plugin-file_alternativeというより、中で使っているfluent-mixin-plaintextformatterの中でutcを指定していますはまら…

boot2dockerでexposeされるportはlocalhostのportじゃないよ

そのまま。 curl localhost:9200 boot2dockerでexposeしたelasticsearchにアクセスしようとしたら、疎通が無くて、netstatでLISTENポートを確認しても9200空いてないなんでだー。ってなっていたんですが。 The latest version of boot2docker sets up a host…

Ubuntu 12.04でGitBucketを使うメモ

GitBucketというのはGitHub cloneです。GitLabと比べて、動かすのが楽そうなので、ちょっとお試ししてます。 takezoe/gitbucket · GitHub 依存するミドルウェアはjreくらいしかないので、簡単に動かせます。まー、GitHubを素直に使えばいいんですが、そうい…

-で始まるファイルを消す方法

忘れるので、覚え書きよくありますよね。-で始まるファイルを作ってしまって消せなくなるパターン。一応bashでも出来るハズだけど、zshでやってます。 % zsh --version zsh 4.3.17 (x86_64-unknown-linux-gnu) エスケープしても、クオートしても、消えてくれ…

マニュアルオペレーションするとき気を付けたいこといくつか

少し思うところがあったのでメモ。 ほぼ自己流なので、もっと良いのがあれば教えて欲しいところ。 そもそもマニュアルオペレーション(手作業)するな ごもっとも。でもやらないといけない深淵な事情があるんです。 事前条件と事後条件を明確にしておく どうい…

fluentdもうちょい真面目にいじる

サーバ/インフラエンジニア養成読本 ログ収集~可視化編 [現場主導のデータ分析環境を構築!] (Software Design plus)作者: 鈴木健太,吉田健太郎,大谷純,道井俊介出版社/メーカー: 技術評論社発売日: 2014/08/08メディア: 大型本この商品を含むブログを見る 諸…

DB理論ちゃんと勉強したい。

と思ったので、『データベース実践講義』のPDF版を買って読み始めてる。この週末である程度読み進めたい。 リレーショナルデータベースというかリレーショナルモデルを学ぶのに良い本があったら知りたいところ。 データベース実践講義 ―エンジニアのためのリ…

定時以降は基本的に居ないと思っていただきたい

このエントリは、何かに対する批判ではない。他の人が絡む質問事項や要件、依頼に関しては定時内に行うべきだ。定時以降にそれを行うということは、他人に残業を強制しているということだ。もちろん緊急要件があるときは別である。 それらの依頼は本当に定時…

コマンドの出力結果の一時ファイルを作りたくなったら、プロセス置換を思い出すと良いかも知れない

たとえば、こんなことしたいとき、 # 待避させたテーブルと現行テーブルの差分を取りたい mysqldump_cmd="mysqldump -u root --default-character-set=utf8 --skip-extended-insert --no-create-info" ${mysqldump_cmd} some_database user > /tmp/user_sql.…

innodb_log_file_sizeを気軽に変えると死ぬよ

mysqlデータディレクトリを丸っとコピーしてレプリカのコピーを作ってmysqlを再起動したら、エラーログに吐かれた内容。 InnoDB: Error: log file ./ib_logfile0 is of different size 0 1073741824 bytes InnoDB: than specified in the .cnf file 0 134217…

carton installするたびにcpanfile.snapshotが更新されるのがうざったい

--deploymentオプションを使いましょう。 carton install --deployment cpanfile.snapshotの中身を見てモジュールをインストールしてくれるので、cpanfile.snapshot自体は当たり前ですが更新されないです。デザイナさんの環境作る時とかデプロイ時(これが本…

Ubuntu12.04のapproxはinetd経由で立ち上がる件

普通にインストールして設定ファイルを編集して、普通に再起動しようと思ったんですよ。 aptitude install approx # service approx restart approx: unrecognized service はい? # ls /etc/init.d/approx ls: cannot access /etc/init.d/approx: No such fi…

プロセスがオープン可能なファイルディスクリプタを知りたい

OS全体での上限 % cat /proc/sys/fs/file-max 816171 今まで開いたディスクリプタ、現在開いているディスクリプタ、上限ディスクリプタの順番 % cat /proc/sys/fs/file-nr 1120 0 816171 シェルから実行したプロセスの上限はuname -nを見れば良い % ulimit -…

プロセスが開いているファイルディスクリプタ数を知りたい

lsofを使うと良い lsof -p $PID | wc -l もしくはprocディレクトリを数える。 ls /proc/$PID/fd/ | wc -l なんか、微妙に数が違うのはなんでだろう。lsofはheaderがあるからとはいえ少し多すぎる気が。 もうちょい調べる。 蛇足ポートを使用している。プロセ…

fluent-plugin-forestを使いつつ、tag_partsが複数あるときにpathにtag_partsを含めたときに、same buffer_pathを使っていると怒られる。

要件としては、 ファイル名としては、remove_suffix後、最後のtag_partsを無視して欲しい ログにはtagを残して欲しい どうやら${tag_parts[1]}が異なっていることが原因でtemplateから別の設定が作られるがbuffer_pathが同一の箇所を示しているため、怒られ…

hostnameコマンドメモ

自ホスト名が取れるコマンドhostnameコマンドのメモ。いろいろ使える。 ちょっと挙動がなぞいところがあるのでもう少し調べる # 単純にホスト名 hostname hostname -s # ipアドレス知りたい(ただし、名前解決できるときだけ) hostname -i hostname --ip-addr…

PERL_CARTON_MIRRORをOrePAN2::Serverに向けてcarton installすると怒られる

タイトルの通りですが、gzipとtarに怒られる。どこが悪いのかしら。後で調べる。 % PERL_CARTON_MIRROR="http://localhost:9999/orepan/" carton install Installing modules using /*****/****/cpanfile # snip... Successfully installed Plack-1.0029 Suc…

nginxで、でかいファイルをアップロードすると怒られる

nginxででかいファイルをアップロードしようとすると"client intended to send too large body"みたいな感じで怒られる。クライアントのPOSTのbodyサイズがデフォルトで1Mに制限されているからの模様。そんなときはclient_max_body_sizeを引き上げてあげるか…

Ubuntu12.04で最新の安定版nginxをインストールする

ubuntuの公式で入るnginxはバージョンが若干古いのでnginxの公式レポジトリを使うの巻。 こんな環境 % lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.3 LTS Release: 12.04 Codename: precise 若干古い %…

nginxのmax connectionのメモ

worker_connection * worker_processesがnginxのmax connectionだが、実際のところOSによって1024個のファイルディスクリプタしか開けないように制限されている。つまり1024コネクション以上コネクションを張ることができない。worker_rlimit_nofileでmax fi…