タグ

ブックマーク / sfujiwara.hatenablog.com (11)

  • ついにやらかした rm -rf / - 酒日記 はてな支店

    UNIX の root なら誰もが必ず一度はやるという、rm -rf / をついにやった。root歴10年にして…… 社内の開発サーバだったのが不幸中の幸いではあったが。 vsftpd でホームディレクトリがない時の挙動を確認したくて、テスト用のユーザ fujiwara2 の home を mv しようと、 # mv /home/fujiwara2 /ここまで打ち込んで、やっぱ mv じゃなくて rm でいいや、と思い直して # rm -rf /home/fujiwara2 /最後の / を付けたままで実行してしまった…… なんか返ってこないな? と思って気が付いて、慌ててキャンセルはしたのだが、時既に遅し。 /dev /etc あたりがごっそり消えた。なんでか /bin /boot は残ってた。 これまた幸いというか、このホストは VMware のバーチャルマシンだったので、2007年7

    ついにやらかした rm -rf / - 酒日記 はてな支店
    umiyosh
    umiyosh 2022/09/02
  • API Gateway + Lambdaでcatch allした処理をApex + Goでnet/httpで扱える ridge を書いた - 酒日記 はてな支店

    タイトル長い。 LambdaGoが正式サポートされるのを首を長くして待ちつつ、Apex で Go を実行しています。 先日、API Gatewayで受けたすべてのリクエストをLambdaに丸投げすることができるようになりました。 Amazon API GatewayAPI 設定を簡素化する 3 つの新機能を追加 Amazon API Gatewayが非常に便利なHTTPプロキシとして進化したらしいので使ってみた - Qiita これまではAPI Gatewayでいちいちマッピング定義を作るのが面倒で、いまいち普通のWebAPI的なものをLambdaで作る気がしなかったわけですが、これで行けるのでは…? と思って、catch all されたリクエストとレスポンスを net/http.Request と net/http.ResponseWriter で扱えるようにする ridge と

    API Gateway + Lambdaでcatch allした処理をApex + Goでnet/httpで扱える ridge を書いた - 酒日記 はてな支店
  • GoでZabbixと通信する、もしくはオレオレZabbix Server/AgentをGoで実装する方法 - 酒日記 はてな支店

    全国一千万Zabbixユーザの皆様こんにちは。 複数のZabbix Agentから取得した値を集約する zabbix-aggregate-agent や zabbix_get コマンドの Go 実装版 go-zabbix-get を書いて遊んでいるうちに、Go で Zabbix と通信するライブラリが育ってきてしまったので一通りまとめておきます。 "github.com/fujiwara/go-zabbix-get/zabbix" を import して使います。 import "github.com/fujiwara/go-zabbix-get/zabbix" Zabbix Agentから値を取得する アイテムでいうところの「Zabbixエージェント」型、ServerやProxyからAgentに対してTCP接続をして値を取得するタイプです。 value, err := zabbix.Ge

    GoでZabbixと通信する、もしくはオレオレZabbix Server/AgentをGoで実装する方法 - 酒日記 はてな支店
  • MySQLで参照の負荷分散を行うslaveは3台から構成するのがよいのでは - 酒日記 はてな支店

    前回の記事 MySQLをmaster:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか の続きです。 master : slave = 1 : 1 で参照を slave に分散してもまったく美味しくないわけですが、では参照の負荷分散を行いたい場合の slave は何台で構成するとよいのか考察してみます。具体的には slave 2台の場合と 3台の場合でどちらがお得か。 台数を増やすということは、どこかに障害が発生する確率が高まる、ということです。1台の slave に障害が発生してダウンした場合のことを考えてみます。 slave * 2 → 残り 1台で処理継続 生き残った1台あたりの処理が 2倍になる slave * 3 → 残り 2台で処理継続 生き残った1台あたりの処理が 1.5倍になる たとえば 1台あたり最大 1000qps の処理能力があるとします。sla

    MySQLで参照の負荷分散を行うslaveは3台から構成するのがよいのでは - 酒日記 はてな支店
    umiyosh
    umiyosh 2014/06/29
  • MySQLをmaster:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか - 酒日記 はてな支店

    MySQLのmasterとslave 1:1にして参照をslave向けるのってやりたがる人多いみたいだけど、性能たいして上がらない割に可用性落ちるだけだからやめようキャンペーン 2011-06-19 00:16:30 via YoruFukurou MySQL はレプリケーションが簡単に構成できるのですが、時折 master 1台 に対して slave 1台、更新処理は master に、参照は slave に、という構成を目にします。 個人的にはこの構成はお勧めでないと思っているので、その理由を考察してみます。 1. 可用性が落ちる 当然ですが、master, slave のどちらが落ちても影響を受けるために可用性が低下します。 2. 全体の性能がほとんど上がらない master 1台ですべてのクエリを処理する場合と比べて、可用性が落ちる引き換えとして見合った性能向上が得られるか、という

  • chef-soloがcookbookから実行するscriptの無限ループで大量にメモリを食って死んだ件 - 酒日記 はてな支店

    とあるホストで初期設定をしようと思って chef-solo を実行していたところ、メモリを全部い尽くして chef-solo (11.4.4) が死亡するという事案が発生。 追ってみたところ、どうやら原因はこんなかんじ。 cookbook から shell script を実行していて、その中で perl Makefile.PL && make && make install していた CPAN.pm が初期設定を終えていない場合、対話モードに入る 対話モードで標準入力が閉じられていると途中まではデフォルトの入力で進むが、地域を選択するところはデフォルトがないためここでメッセージを表示しながら無限ループする 無限ループで大量に出力されたメッセージを、(詳細は確認していないですが) chef がメモリに乗せ続けて太る ということで、cookbook 内で実行する script には注意しま

    chef-soloがcookbookから実行するscriptの無限ループで大量にメモリを食って死んだ件 - 酒日記 はてな支店
    umiyosh
    umiyosh 2013/05/24
  • #isucon2 で優勝してきました - 酒日記 はてな支店

    なんでもありのいい感じにスピードアップコンテスト ISUCON が 2 になって帰ってきたので、参加して優勝を勝ち取ってきました。 まとめ的なものはこちらから livedoor Techブログ : ISUCON チームメンバーのblogも併せてご覧ください。 おそらくはそれさえも平凡な日々: #isucon2 で連覇させてもらってきました Redis布教活動報告 ISUCON 編 - unknownplace.org 今回は前回の ISUCON 優勝メンバーのひとり @sugyan が転職して出題側に回ってしまったので、@typester を招聘してチーム編成。@songmu と共に3人でチーム「fujiwara組」として再参戦です。 以下、作業用IRCのログからふりかえりますと…… 11:39:29 <typester> とりあえずrecent_soldはキャッシュってのはまずやることか

    #isucon2 で優勝してきました - 酒日記 はてな支店
    umiyosh
    umiyosh 2012/11/04
  • cron で > /dev/null して椅子を投げられないための3つの方法 - 酒日記 はてな支店

    (タイトルは釣りです) いい加減、>/dev/null 2>&1と書くのをやめたらどうか - DQNEO起業日記 この記事のタイトルが twitter で流れてきたのを見て、「そうだ!出力を /dev/null に捨てるなんてとんでもないよね!」と思ってよく読んだら /dev/null に間違いなく捨てる方法だったのでつい crontabに > /dev/null 書いたら椅子投げる 2012-06-13 00:01:17 via YoruFukurou とつぶやいてしまったのですが、では出力を捨てないためにはどうすればいいのか。現時点での個人的ベストプラクティスを書き留めておきます。 デフォルト : メールで送る (MAILTO) せっかく cron daemon がログを捨てないためにわざわざメールで送ってくれるのに、それを > /dev/null で踏みにじるとはひどい。 とはいえ、

    umiyosh
    umiyosh 2012/06/15
  • Parallel::Benchmark というモジュールを書きました - 酒日記 はてな支店

    プロセスを並列に立ち上げて負荷を掛けるようなベンチマークを実行することって、よくありますよね。(例 : クエリキャッシュを切ったほうがいイカ? ベンチマークしてみた - 酒日記 はてな支店) Perl で Parallel::ForkManager を使うとそういう処理も簡単に書けて便利なのですが、何度も同じようなコードを書くうちに、これもうちょっと抽象化したら使いやすいかも、と思って Parallel::Benchmark というモジュールを書いてみました。 リポジトリはこちらです。 https://github.com/fujiwara/p5-Parallel-Benchmark たとえばフィボナッチ数 fib(10) を求めるベンチマーク。 use Parallel::Benchmark; sub fib { my $n = shift; return $n if $n == 0 o

    Parallel::Benchmark というモジュールを書きました - 酒日記 はてな支店
    umiyosh
    umiyosh 2012/02/20
  • Perl から Fluentd にログ出力 - Fluent::Logger リリース - 酒日記 はてな支店

    皆さん、ログ書いてますか!?(挨拶) Fluentd meetup in Japan も開催間近、最近大変熱いイベントログ収集システム Fluentd なわけですが、Perl からログを出力する Fluent::Logger というモジュールを CPAN にリリースしたのでお知らせします。 (最初の版は id:hirose31 さんが書かれて、それに同僚の id:shin1rosei と手を加えたものです) インストールは cpanm などでどうぞ。使い方は POD にもあるように簡単です。 use Fluent::Logger; my $logger = Fluent::Logger->new( host => "127.0.0.1", port => 24224 ); $logger->post( "myapp.info" => { foo => "bar" } ); 上記の例で送信す

    Perl から Fluentd にログ出力 - Fluent::Logger リリース - 酒日記 はてな支店
  • Perl + Win32::OLE で Skype に発信 - 酒日記 はてな支店

    ほんのとっかかりだけ。 use strict; use warnings; use Win32::OLE; my $user_name = shift || die; my $skype = Win32::OLE->new('Skype4COM.Skype'); unless ( $skype->Client->IsRunning ) { $skype->Client->Start(); } my $user = $skype->User($user_name); my $call = $skype->PlaceCall($user->Handle); ユーザ名を +81***** と電話番号にすれば、Skype Out で普通の電話にも発信できた。 あとは音声を流し込めば (APIドキュメントによれば wav を流せるらしい)、サーバの障害通知に使えるなあ…… Linux版 Skype

    Perl + Win32::OLE で Skype に発信 - 酒日記 はてな支店
  • 1