キモブロ

Please spy check please, Fucking retard

Unix

新VPS「ConoHa」使ってみた

↑これです。お名前.comやってるところの新しいVPSサービスって感じかな。違いは知らない。 http://www.conoha.jp/早速使ってみた。cpuinfoはこんな感じ processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 45 model name : Intel(R) Xeon(R) CP…

趣味サーバー を ruby 1.9.3-p448 にアップデートして再構築した

最新のRubyが出てたので再構築しなおした。ついこないだ同じようなアップデートしたばっかだけど。こないだの記事 → 趣味サーバーで使ってるWEB系ソフトウェアをいろいろアップデートした - キモブロ 特に意味なし。趣味です。以下手順。 最新のRubyを入れる…

さくらVPS SSDプランが、7/3から無料でメモリ2倍になるそうなのでやってみた。

なんか無料でメモリ2倍になるらしいのでやってみた! すでに契約済みの人は再起動する必要があるらしい。再起動するだけでメモリが2倍になる!! 以下公式サイトから引用 弊社では、さくらのVPS「SSD 1G」「SSD 2G」プランにおいてメモリ容量を増量する スペッ…

趣味サーバーで使ってるWEB系ソフトウェアをいろいろアップデートした

まずrbenv + rubyの更新から。 rbenvの更新 $ cd ~/.rbenv/plugins/ruby-build/ $ git pull rubyの更新 今の1.9系の最新は1.9.3-p429らしいのでこれ入れる。そろそろ2.0系に対応させるかなー。互換性あるとか書いてあった気がするけどたしかiconvなくなって…

zsh で git コマンドのタブ補完してくれるやつの git 公式のやつのインストール方法

zshでバリバリgitの補完したいときのやつのインスコ方法。てかもうみんなやってますよね感高いし、今更感高いけど、整備されてるかとおもいきや結構入れるのめんどかったのでメモ。 なんかgitのgithubリポジトリ(わかりにくい)のcontribからいろいろダウンロ…

sshの秘密鍵から公開鍵を作る方法とフィンガープリント見る方法

.ssh/id_rsa だけあるときに id_rsa.pub 生成する方法 $ ssh-keygen -y -f .ssh/id_rsa > .ssh/id_rsa.pub フィンガープリントを確認する方法 $ ssh-keygen -l -f .ssh/id_rsa.pub 2048 d9:33:2e:c0:15:e2:fc:d7:55:f9:00:5c:60:11:72:d7 (RSA)

作業用の一時ディレクトリをサクッと作って勝手に移動してくれるやつ

.bashrc か .zshrcに以下を追加 function temp(){ cd `mktemp -d --tmpdir="$HOME/tmp/" \`date +'%Y%m%d'.$1${1:+.}\`XXXXXX` } 使い方 tempって入力してEnterキー押すと勝手に一時ディレクトリが生成されてそこに移動するので、そこでwgetしたりとかいろん…

OOM Killerの対象外にするプロセスって指定出来たんだ。

Linuxキーワード - OOM Killer:ITproこれ使えば危機的な状況になりにくい気がする

cp -rするときに指定したフォルダを除外する方法

rsync -avz --delete --exclude "path/to/dir" ./from_dir/ to_dir/

0バイトのzipファイルをMacの解凍ソフトで展開すると200Bのcpgzファイルが生まれる

手順 $ touch ./nothing.zipこのnothing.zipをUnArchiverとかで展開するとnothing.zip.cpgzが生まれるこれを表示してみると $ xxd ./nothing.zip.cpgz 0000000: 1f8b 0800 0000 0000 0003 3330 3700 4164 ..........307.Ad 0000010: 6002 e59b 9b99 8228 231…

仕事: HDDサイズの警告メールが割と頻繁にとんでくるようになったので対策した

過去30日以前に作成されたバックアップファイルをcrontabで削除する感じにした。こんなかんじで 25 1 * * * /usr/bin/find /path/to/backup/dir -ctime +30 | xargs -r rm xargs -0のイディオムはあえて使ってない。どうせそんなファイル名にならないことが…

さくらVPSでループバックインターフェースに対してUDPパケット送信しまくるとロスしまくる件のつづき

sysctlで net.ipv4.udp_mem のバッファサイズを増やしてみたが駄目だった。 まぁ前の記事の通り、ループバックインターフェースだけでなくて外部からやっても似たような感じだったので、根本的な何か別の問題がありそうなんだけど。引き続き要調査

再開したさくらクラウドを使ってみた & 性能検証してみた

11/1日から再開したらしいので試しに使ってみた。とりあえず一番安そうなプランを選ぶ。1コア + メモリ2GB + HDD20GBで月2500円くらい。だいぶ安い。さっそく/proc/cpuinfoをみてみたところXEONの3.0Ghzらしい。俺の利用用途であるゲームのサーバーだと1コア…

Content-Dispositionで-iってファイル名指定すると

wget --content-dispositionしたときに-iって名前でファイルが保存されてしまったりするのでシェルスクリプトで自動化するときは注意が必要っぽいrm ./* とかね

wgetの--content-dispositionが脆弱じゃないことを確認した

これ実は脆弱で任意のファイル上書きできちゃうんじゃねって思って調べたけど大丈夫だった。 たとえば以下みたいな感じで./tmp/hogehoge.txtってpathのContent-Dispositionに設定しても、hogehoge.txtってのがカレントディレクトリに生成されるだけ。 #!/bin…

wgetでContent-Dispositionに書いてあるファイル名でダウンロードする方法

自分も知らなかったけど、--content-dispositionってのをオプションに付加するとそうなるらしいですね。 Content-Disposition - オレの劣化が止まらない $ wget http://github.com/mikecrittenden/bluetrip/tarball/master # masterって名前でファイルが保存…

gzip --fast ./path/to/your/file

圧縮率低いけどその分高速なモードの--fastか-1

せっかくだしメモリにキャッシュされてるか確認するやつRubyで実装してみたが駄目っぽい

何が駄目なのかわらかないけど諦めた。vecのあたりが駄目な気がする。というかもうInline::Cを使ったほうがよさげ。 #!/bin/env ruby # encoding: utf-8 # Author: kimoto path = "test.txt" size = File.size(path) fd = File.sysopen(path) printf("size: …

ファイルがメモリにキャッシュされるってのは、mmapするときに第一引数でNULLを指定することによって、カーネルにおまかせすることによって、よしなにキャッシュすることが出来てるってことかな

メモリ上にキャッシュされてるかどうか調べるやつ

これまじ面白いなー ファイルがページキャッシュに乗っているかどうかを調べる - ablog指定したファイルがメモリ上でキャッシュされてるか調べられるというもの。しかし、どうやってんだろってことでソースを読んでみた。 結論から言うとmmapとmincoreで調べ…

MySQLでデッドロックしてやり直すパターン

会社で書き忘れたけど、表題のもテストしたら800req/secぐらいだった #!/bin/env ruby # encoding: utf-8 # Author: kimoto require 'mysql2' require 'digest/md5' client1 = Mysql2::Client.new(:host => "localhost", :username => "root", :password => …

nginx

$ ab -n 10000 -c 10 http://localhost/ (前略) Requests per second: 20486.39 [#/sec] (mean) (後略)

MySQLのテーブルをENGINE=MEMORYにして再度実行してみる

ENGINEをMEMORYにするとOn Memoryになるっぽい。ただし再起動でデータ消える。 あとENGINEがMEMORYだとTEXT/BLOBが使えないみたいなのでschemaをVARCHARに修正 create table tinyurl( id INT(11) NOT NULL AUTO_INCREMENT, shorturl VARCHAR(64) NOT NULL, u…

MySQLのBenchmark

結果 >>> mysql insert speed 0.388512 seconds 2573.923070587266 req/sec >>> mysql select speed 0.106831 seconds 9360.578858196592 req/sec >>> mysql not found select speed 0.089786 seconds 11137.593834228053 req/secinsertが重いupdateやるの忘…

MemcachedのBenchmark

結果 >>> memcached Set Speed 0.058632 seconds 17055.532814845137 req/sec >>> memcached Get Speed 0.070763 seconds 14131.678984780181 req/sec >>> memcached Not found Get Speed 0.046901 seconds 21321.50700411505 req/secローカルのMacBookでヤ…

プロセスを指定のCPUに割り当てる方法

tasksetコマンドを使うらしい。 https://access.redhat.com/knowledge/docs/ja-JP/Red_Hat_Enterprise_MRG/2/html/Realtime_Reference_Guide/chap-Realtime_Reference_Guide-Affinity.html $ taskset -p -c PID pid PID's current affinity list: 0,1 ってや…

前やってた案件の開発系のHDDが圧迫されてたんだけどgem cleanしたら解決した

過去のバージョンのgemがトータルで5GBぐらいあったっぽい

grepの--excludeはディレクトリにマッチしないので--exclude-dirを使ったほうがいいらしい

12:39 tokuhirom: ふと 12:39 tokuhirom: http://kimoto.hatenablog.com/entry/2012/08/15/154624 12:39 tokuhirom: これためしてみたんですが 12:40 tokuhirom: --exclude=".git" っていう指定、きいてない気がする 12:40 tokuhirom: ./.git/rr-cache/26345…

SSD使ってたらある時を堺にmd5sumコマンドの返却値がランダムになったギョエー

なんかサーバーサーバープロセスが突然死するしどうなってんだと調査してみたところ、ゲームのデータファイル(80MB)のmd5sumを測定するたびに毎回異なる値が帰ってきた。何を言ってるかわからねぇと思うが実際にそういうことが起きていた。ちなみに再起動し…

curlが$?にちゃんとエラーコードを設定してくれない件の解決策

常に$?が0になるのに困っていたんだけど、failオプションつけるとちゃんとエラーコード設定されるようになった。 ~$ curl --fail -I http://kymt.me/not_found_path curl: (22) The requested URL returned error: 404 ~$ echo $? 22

shell scriptって、$RANDOM を参照すれば乱数が入ってるのか、便利

アクセスするたびに値変わる kimoto ~$ echo $RANDOM 26691 kimoto ~$ echo $RANDOM 11648 kimoto ~$ echo $RANDOM 18764シェル起動時にseedが初期化されてるかとかそういうのまでは詳しく調べてない

screen memo

screen -S セッション名 で指定した名前のセッションのscreenを起動して screen -x セッション名 で指定した名前のセッションにjoin

Re: 複数ホストに ssh しながら tail -F するときにはこうしたらどう?

http://blog.64p.org/entry/2012/08/24/165701 foremanを使えばカラフルにProcfile host1: ssh kymt.me tail -F /var/log/nginx/access.log host2: ssh kymt.me tail -F /var/log/nginx/error.log

yumで開発系パッケージ一発で全部入れる

$ sudo yum -y groupinstall "Development Tools"

ack使わないでもこれでよくね

Perlの拡張正規表現も使えるぞ (いわゆるPCRE) ack(){ grep -n -P -r --color=always --exclude=".svn" --exclude=".git" "$*" ./ } 使用例 $ ack '[0-9]+$' ## 数値で終わる行のあるファイルを探す

今更zawとzaw-cdr入れた

こんなかんじで # cdrを有効化 if is-at-least 4.3.11; then autoload -Uz chpwd_recent_dirs cdr add-zsh-hook add-zsh-hook chpwd chpwd_recent_dirs zstyle ':chpwd:*' recent-dirs-max 5000 zstyle ':chpwd:*' recent-dirs-default yes zstyle ':complet…

今更ながらzshのREPORTTIME便利

実行時間がREPORTTIMEで指定した値よりも長かったら、終了した時にtimeコマンド実行時みたいな処理時間を表示してくれるやつ $ REPORTTIME=1 $ perl ./leak.pl ... 4952 4980 5012 5044 5076 5108 ^C perl leak.pl 0.66s user 1.33s system 107% cpu 1.854 t…

ワンライナーでawk/sed/perl使っちゃうのはちょっと残念だなぁというか、あらあらそれ使っちゃう感じだァ〜とか思ってしまうし、悲しみに包まれる。

mysql入れるとついてくるreplaceコマンドが便利

標準入力の文字列を from から to に変換できるやつ。もちろん第3引数以降でファイルを指定することも出来る。 $ replace from to ... これあれば完全にsed要らない

シェル操作課題 (cut, sort, uniq などで集計を行う) 解答編

これ腕試しにやってみた。 シェル操作課題 (cut, sort, uniq などで集計を行う) 設問編 - Yamashiro0217の日記この手のワンライナー問題でsed/awk/perlとか使うのは邪道だと思ってるので一切使ってない。 まずデータ作る $ cat > ./test.csv server1,1343363…

HTTPクライアントのhttpieを使ってみる

curlよりも直感的なhttpclientとのことで、早速これを試しに使ってみる。 https://github.com/jkbr/httpie インストール まずpipというpythonのパッケージ管理ツールが必要らしい。ということでpipを入れます sudo yum install python-pip sudo easy_install…

Linuxでqstat(quakestat)を動かすまでの手順

まず、qstat (quakestate) をyumで入れます。いつのまにかパッケージ化されていた! ので簡単。 $ sudo yum install qstat ただyumでいれると/usr/binに、quakenetって名前でインストールされてしまう (おそらくqstatっていうjob-queue関係の他のシステムとyu…

ファイルの作成と削除は、そのファイルが存在するディレクトリの権限によって制限される

そしてファイルの編集はファイル自体の権限、と

sshのポート番号が違うときでもrsyncを使う方法

rsync -acvz -e 'ssh -p10022' kimoto@kymt.me:./ ./kymt.me/"-e"のところに "ssh -p ポート番号" とする感じでやっておけばいいっぽい。ちなみにrsyncにも --port というオプションはあるけどこれはなんか別の意味っぽかった。