タグ

ブックマーク / hirose31.hatenablog.jp (30)

  • MySQL 5.1→5.6のmy.cnfの差分とか - (ひ)メモ

    MySQL 5.1で使ってたmy.cnfを試しに5.6で動くようにしたときの差分す。網羅的には調べてないんで他にも廃止になったパラメータはあるかもです。あくまで参考までに。 # log-binにパラメータ指定しないと怒られます -log-bin +log-bin = mysqld-bin # old-passwordsはオン、オフだけじゃなくて引数(0, 1, 2)が必須になって、引数の値によって挙動がかわります。 -old-passwords +old-passwords = 1 # これ指定しないと、リモートからのpre-4.1な認証方法で接続できないです +skip-secure-auth # これ指定しないと、pre-4.1な認証方法で接続できないです★下に追記あり +default-authentication-plugin = mysql_old_password # パラメー

    MySQL 5.1→5.6のmy.cnfの差分とか - (ひ)メモ
    sunaoka
    sunaoka 2012/10/04
  • Amazon VPCで浮動IPアドレス的なことができないかのメモ - (ひ)メモ

    フェイルオーバーを実現する手法のひとつにVIP(Virtual IP、浮動IPアドレス)というものがあります。 Amazon VPCにてVIPができないか、ちょっと考えてみたのでそのメモです。 環境としては、10.0.0.0/16のVPCの中に、 10.0.0.0/17のpublic subnet (AZはa) 10.0.128.0/17のpublic subnet (AZはb) というそれぞれ別のAvailability Zoneに属する2つのsubnetを作り、これらsubnetをまたいでVIP的なことができないか、という考察です。 思いついた方法としては以下の3つです。 ENIを移動する - NICを移動する secondary private addressを移動する - IP Aliasする Routerの力を借りる ほかにもいい方法があったら教えてください>< ENIを移動する

    Amazon VPCで浮動IPアドレス的なことができないかのメモ - (ひ)メモ
    sunaoka
    sunaoka 2012/08/23
  • 同じサブネットへのNIC 2枚指し、またはソースルーティングのおはなし - (ひ)メモ

    「NIC 2枚刺し」というと「IP masqueradeを使ってLinuxルーターを作ろう!」的な話を思い出す老害です。こんにちは。 NICを2枚生やしたサーバーから同じサブネットに両方の足をのばす機会があったのですが、じゃっかん躓いたのでそのメモです。 具体的にいうと、eth0の方は問題ないのですが、eth1についているIPアドレスへの疎通ができない、というものでした。 以下、 eth0についているIPアドレスが10.0.0.10 eth1についているIPアドレスが10.0.0.11 対向の別サーバーが10.0.0.100 という体で読んでください。 さて、 別サーバーからpingしつつ、eth1でtcpdumpしてみると、echo requestは届いているのが観測できました。が、echo replyを返していません。 # tcpdump -i eth1 -nl icmp liste

    同じサブネットへのNIC 2枚指し、またはソースルーティングのおはなし - (ひ)メモ
    sunaoka
    sunaoka 2012/08/23
  • Re: 若者がパッケージ管理について思うこと - (ひ)メモ

    若者がパッケージ管理について思うこと - As a Futurist... 「パッケージ」を あまり入れ替えしないし、入れ替えたくもないもの 好きに入れ替えしたいもの の2つに分類して、ここ数年自分がどう管理してきたかを書いてみたいと思います。主に構成管理の切り口の話になります。 あまり入れ替えしないし、入れ替えたくもないもの 具体的には、 基的なソフトウエア coreutilsとかtarとかそういった類のもの です。 これらは最初の最初にサーバーをセットアップするときに、ディストリのバイナリパッケージを入れて基的にはそれでおしまいです。 バージョン管理、依存関係の管理はディストリのパッケージシステムにお任せです。 セットアップ後はよっぽどのことがない限り、アンインストール、ダウングレードは基的にしません。アップグレードも当に当に影響のあるセキュリティ修正のみ。追加インストールは

    Re: 若者がパッケージ管理について思うこと - (ひ)メモ
    sunaoka
    sunaoka 2012/03/30
  • dstatの万能感がハンパない - (ひ)メモ

    サーバーのリソースを見るにはグラフ化は重要ですが、推移ではなくリアルタイムな状況、例えば秒単位のスパイキーな負荷を見るには、サーバー上でvmstatやiostatなどの*statファミリーを叩く必要があります。 さて、vmstatはメモリの状況やブロック数単位のI/O状況は見られますが、バイト単位のI/O状況やネットワークの送信、受信バイト数を見ることはできません。 # vmstat 1 procs -----------memory---------- ---swap--- -----io----- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 3 1 0 4724956 355452 726532 0 0 54 484 3 3 1 0 99 0 0 2 0 0 47

    dstatの万能感がハンパない - (ひ)メモ
    sunaoka
    sunaoka 2012/02/29
  • Apache 2.4.1 で気になった新機能などのメモ - (ひ)メモ

    Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server Expressions http://httpd.apache.org/docs/2.4/en/expr.html やSetEnvIfExpr, RewriteCond, Headerで使える評価式 の追加 http://httpd.apache.org/docs/2.4/en/mod/core.html#if ヘッダや環境変数を参照して細かい制御ができるようになったことに加え、else的なブロックを書くのに苦労したことがあるんで朗報です ErrorLogFormat http://httpd.apache.org/docs/2.4/en/mod/core.html#errorlogformat ErrorLogも書式設定できるように。 %L (L

    Apache 2.4.1 で気になった新機能などのメモ - (ひ)メモ
    sunaoka
    sunaoka 2012/02/23
  • そういえばsshfsが便利な件 - (ひ)メモ

    以前はリモートのファイル編集するのにEmacsでTRAMP使ってたんですが、sshfsの方がシェルでcdとかlsできるし、Emacsでoccurとかもできるしいいよねってんで最近はsshfs使ってます。 で、sshfsしたいホストが多いといろいろめんどくなるんで、↓みたいなヘルパスクリプト書いて使ってましたよって話です。 マウントポイントをまとめておくディレクトリ(~/r/とか)の下に、予めsshfsするリモートホストの名前のディレクトリを作っておきます。sshするときユーザー名が必要なホストはUSERNAME@HOSTNAMEでmkdirしときます。 $ cd ~/r/ $ mkdir host1 $ mkdir foo@host2 あとは末尾のヘルパスクリプトで、sshfsでマウントしたり、sshfsなマウントポイントの一覧を見たり、アンマウントしたりできます。 $ ./m host1

    そういえばsshfsが便利な件 - (ひ)メモ
    sunaoka
    sunaoka 2011/07/12
  • IPアドレスブロックを集中管理する方法と、その活用法 - (ひ)メモ

    やりたいこと 携帯3キャリアのIPアドレスブロックは比較的頻繁に変わるので自動更新したい 自宅やオフィスその他のIPアドレスは、変わることがあまりないので手動管理でいい これらIPアドレスブロックの情報は、後述する通りいろいろなところで使いたい 即ち、いろいろな形式で表現したい このように、頻度の差こそあれ、IPアドレスブロックは増減したり新しいブロックが追加したりするので、簡素な機構で包括的な管理をしたい。 実現方法 スクリプトを2つ書きました。いずれもgithubにあります。 http://github.com/hirose31/cidr-manager 図も用意しました。 update-mobilejp-cidr キャリアのサイトをスクレイピングして、指定されたディレクトリにその情報を書き出します。 その形式は、1行1アドレスブロック、コメントは "#" です。 $ cat plai

    IPアドレスブロックを集中管理する方法と、その活用法 - (ひ)メモ
    sunaoka
    sunaoka 2010/11/01
  • フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ

    目的 フロントがHTTPリクエストを受けて、バックエンドのアプリケーションサーバにreverse proxyするような構成において、指定秒数以内に何かしらのレスポンスを返したい。 200が返せない場合は、処理を打ち切って500を返したい。 背景 フロントでApacheやNginxをreverse proxyとして使っている場合、バックエンドが無応答になってしまうと、クライアントにレスポンスが返るのはデフォルトで数十〜数百秒後(ApacheのTimeoutのデフォルトは300秒、Nginxのproxy_read_timeoutのデフォルトは60秒)になってしまいます。 通常のWebサービスではこのオーダーのタイムアウトでもいいのかもしれませんが、数秒以内に(エラーでもいいので)レスポンスを返すことが求められる環境も存在します。(最近、特に多いのではないでしょうか:P) もちろんバックエンドが

    フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ
    sunaoka
    sunaoka 2010/06/23
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
    sunaoka
    sunaoka 2010/03/13
  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

    MySQLで、レプリケーションベースのHAな構成について考えたメモです。 3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書きます。 今のところはこれがベストかなと思っているのですが、「こうしたほうがいいと思う!」「ここがおかしい!」などなどのご意見はコメント、TBなどでいただけるとうれしいです。 ゴール マスタが落ちてもぐーすか寝ていられるようにしたい リカバリの作業はできるだけ単純に、かつ、短時間で完了するようにしたい めんどくさいのはいや 基構成、方針 2台+1台 サービスで使うのは2台 (db1, db2) もう1台は管理用 (db3) スレーブを多数並べる構成にはしない 台数増えると管理コストが上がる マスタダウン時のフェイルオーバとそのフェイルバ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ
    sunaoka
    sunaoka 2009/10/24
  • mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決 - (ひ)メモ

    MySQLでいちいちshow tables;とか打つのがだるい。\tみたいなalias設定できないのかなぁ http://twitter.com/weboo/status/1658300902 おぉ、readlineのマクロを使えばいいのかー http://twitter.com/weboo/status/1658314333 なるほ!ってことでちょっと設定してみました。 # ~/.inputrc $if mysql "\C-xd": "show databases;" "\C-xt": "show tables;" "\C-xu": "select user,host,password from mysql.user order by user,host;" "\C-xb": "select user,host,db from mysql.db order by user,host;"

    mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決 - (ひ)メモ
    sunaoka
    sunaoka 2009/06/01
  • fingerコマンドのナウい使い方 - (ひ)メモ

    コマンドブームみたいなので便乗してみるよ! fingerってコマンド入ってる? ちょっと実行してみてよ! anko[~]$ finger Login Name Tty Idle Login Time Office Office Phone hirose31 HIROSE Masaaki pts/0 Aug 15 01:08 (bagel.irori.org)どう? 全然つまんないね! じゃ、となりのマシーンにfingerしてみてよ! anko[~]$ finger @melon [melon.irori.org] finger: connect: Connection refusedどう? 世知辛いね! 昔はね、学校の端末室にいくと、X端末(これも死語っぽいね!)がずらららって並んでたの。でね、みんなX端末経由で、いくつかのホストにログインしてたの。だからね、fingerコマンドを使うと、

    fingerコマンドのナウい使い方 - (ひ)メモ
    sunaoka
    sunaoka 2007/08/29
    finger linux@kernel.org で Linux Kernel の最新バージョンが返ってくる
  • ファイルを変更したら自動的にreloadする方法 - (ひ)メモ

    ファイルの更新を監視して、変更されたらMozReplなFirefoxさんにreload指令を送る。 コンテンツのファイルをいじってて、いちいちF5するのがめんどいので。 reload指令を受理できるように MozLab - Trac をインストール。 ツール→MozLab→Start Replで開始。 extensions.mozlab.mozrepl.autoStartをtrueにすれば、動きっぱなしにできるのかも。 4242でlistenしてるのはlocalhostだけなので、他のマシンからtelnetしたいときは、パケットリピータを使う。 例えばstoneを使って、 4242宛てのパケットをlocalhost:4242にリピートする ただし、接続を許可するのは10.6.25.201と10.6.25.202からのみ とするときはこんな感じ: stone -nr localhost:42

    ファイルを変更したら自動的にreloadする方法 - (ひ)メモ
  • ncある限りぼくはどこまででもいけるッ! - (ひ)メモ

    多段SSHの話。 2008-05-02追記 ncの-w secオプションで、一定時間通信がなければncが終了するようにしました。このオプションを指定しないと、sshコネクションを切った後でもncのプロセスが残留してしまいます。 2010-03-08 OpenSSH 5.4以降のnetcat mode (ssh -W host:port ...) を使えば、ncコマンドは不要かも。 2010-11-08 zshでNo such file or directoryと言われるのは、これが原因かもhttps://bugzilla.mindrot.org/show_bug.cgi?id=1494 正攻法でこたつにアクセスするには下図のようなSSHアクセスを繰り返さなければならない、といった状況があるとする。 uchi ----> otonari otonari ----> genkan genkan

    ncある限りぼくはどこまででもいけるッ! - (ひ)メモ
    sunaoka
    sunaoka 2007/04/29
  • SSHサーバが受け付け可能な認証方法を列挙する - (ひ)メモ

    もっとスマートな方法ないかしらん。 #!/usr/bin/env perl use strict; use warnings; use Net::SSH::Perl; use Net::SSH::Perl::AuthMgr; QUICK_HACK: { package Net::SSH::Perl::AuthMgr; no warnings 'redefine', 'once'; *auth_failure = sub { my $amgr = shift; my($packet) = @_; my $ssh = $amgr->{ssh}; my $authlist = $packet->get_str; $amgr->{_done} = 1; $amgr->{__authlist} = [ split /,/, $authlist ]; }; *authlist = sub { my $

    SSHサーバが受け付け可能な認証方法を列挙する - (ひ)メモ
  • MySQL 5 の場合はmytopよりinnotopのほうがいいかも - (ひ)メモ

    MySQLのモニタするのに便利なmytopなんですが、MySQL 5に対して使うと、クエリの割合表示が全部ゼロになってしまったります。 これは、MySQL 5.0.2でSHOW STATUS文が変更され、GLOBALかSESSIONというオプションを指定できるようになったことに起因します。このオプションを省略した際はSESSIONを指定したときと同じ動作となり、SHOW STATUS文で得られるのは自分自身の接続についての情報のみとなります。 mytopはオプションなしのSHOW STATUS文を使っているので、MySQL 5ではmytop自身の接続についての情報しか得られず、その影響として、クエリの割合表示が全部ゼロになってしまったりするわけです。 対応は簡単で、mytopのSHOW STATUSをSHOW GLOBAL STATUSに書き換えればいい(書き換えるとMySQL 4.1以前

    MySQL 5 の場合はmytopよりinnotopのほうがいいかも - (ひ)メモ
  • Googleでmanを引く - (ひ)メモ

    ネタ元:clmemo@aka: Unix の man マニュアルを Google Co-op で検索する ステキ。 Google Co-op - Profile for unix manpagesでsubscribeすれば、 http://www.google.com/search?hl=en&ie=utf-8&q=man%20ls なURLで LinuxCommand.org FreeBSD MacOSX/Darwin HP-UX POSIX のmanが引ける。 Firefoxなら、スマートキーワード(d:id:hirose31:20041123:1101218165 あたりを参照)に登録しておくと便利そう。 例えば、 http://www.google.com/search?hl=en&ie=utf-8&q=man%20%s をブックマークして、キーワードにmanを設定。 これで、ロケ

    Googleでmanを引く - (ひ)メモ
  • YAMLに~/とか~USER/とか書けるようにするパッチ - (ひ)メモ

    YAMLのassets_pathとかplugin_pathとかincludeにはパスを書くわけなんですが、~とか~USERの展開をしてくれないみたい。 展開してくれないと何が不便か? ひとつの環境で使ってるぶんにはいいんだけど、こんなとき 環境間でユーザ名が違う(自宅のマシンと会社のマシンとか) 環境間でホームディレクトリのパスが違う(LinuxMac OS Xとか) に、YAMLを使い回すのがめんどい。パスを書き換えないといけないので。 あと、 例示用のYAMLに自分のホームディレクトリのパスを書くのはなんとなく気持ちが悪い というのもあるかも。 というわけで、「~/etc」や「~hirose31/etc」を「/home/hirose31/etc」に展開してくれる(かなり強引な)パッチをこさえてみた。 --- Plagger/ConfigLoader.pm.orig 2006-08-2

    YAMLに~/とか~USER/とか書けるようにするパッチ - (ひ)メモ
    sunaoka
    sunaoka 2006/08/31
  • my.cnfで外部ファイルをinclude - (ひ)メモ

    某Sさんに教えてもらいました。m(_ _)m Beginning with MySQL 5.0.4, it is possible to use !include directives in option files to include other option files and !includedir to search specific directories for option files. For example, to include the /home/mydir/myopt.cnf file, you can use the following directive: !include /home/me/myopt.cnf To search the /home/mydir directory and read option files found there, you

    my.cnfで外部ファイルをinclude - (ひ)メモ