サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
masudak.hatenablog.jp
ログを見たり、何かあった際によくお世話になるgrepコマンドですが、このコマンドも色々便利なオプションがあるので、書いてみたいと思います。内容としては、curlコマンドの便利なオプションたち - カイワレの大冒険 Thirdの続編みたいなものです。 普通に使う まぁ、まずは普通に使ってみましょう。「grep [options] PATTERN [FILE...]」ということで、単に以下のようにすれば、マッチする行を出力してくれます。 $ head test.list code=1 code=2 code=3 code=4 code=5 code=6 code=7 code=8 code=9 code=10こんな感じのファイルがあるとして、code=100とかまでに続くとするなら、 $ grep 'code=80' test.list code=80もっと対象を広げて、ざっくり絞り込みたいな
curlコマンドのお話し。cURLって書くんですな。 対向のサーバとのやり取りを追いたいときに、通信内容を見たいわけですが、そういうときにcurlコマンドはちょくちょく便利なので、書いてみる。 要はtcpdumpとか使ってパケットまで見る必要はないんだけど、レスポンスとかは見たいときに便利だよって話し。 その1. 普通に使う $ curl 'http://www.normal.com' <<中略>> var k=/^http:/i;if(k.test(g)&&google.https()){google.ml(new Error("GLMM"),false,{src:g});delete i[f];return}d.src=g;h.li=f+1},lc:[],li:0,Toolbelt:{},y:{},x:function(a,b){google.y[a.id]=[a,b];return
なんかyumでパッケージ入れていたら、インストール途中で進まなくなってしまい、ニッチモサッチモいかなかったので、strace使ったという話し。とりあえず備忘録。 httpdでもなんでもいいのですが、yum経由でパッケージを入れようとする。そんな日の出来事。通常はこんなこと起こらないと思うけど。 # yum install httpd Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Setting up Install Process Resolving Dependencies --> Running transaction check (以下中略) Downloading Packages: Running rpm_check_debug Running Transaction Test F
最近gdbにはまっている@masudaKです。4/19日にMySQL Casual Talksの第三回が開かれ、ありたがいことに声をかけて頂き、LTまでしてきました。 当日のまとめは以下に。 MySQL Casual Talks Vol.3やりました 「MySQL Casual Talks vol.3」に参加してきたよ、のメモ ガチュアルなのかカジュアルなのかはいまだに謎ですが、いつもすごく勉強になるので、そのような会で話すことができて、@myfinderさんに感謝でございますm(__)m 以下が僕の発表資料になります。 道具を磨くことのススメ View more presentations from Kenichi Masuda Speaker Deckに載せた資料 スライドに思ったことは載せてますので、そちらを見ていただければよいですが、「ミスは事前に防ごう」「楽しよう」「うまくツール
最近クラッシャーと呼ばれている@masudaKです。 エンジニアのための時間管理術、自動化に関するまとめ - Glide Noteでも述べられているように【自動化】には「スケーラビリティ」や「ミスの可能性を排除」含め多くのメリットがありますが、そのなかでもちょくちょくOSインストール or 増設することがあるエンジニアにはオススメのものということで、今回はChefのインストールに関して書いてみたいと思います。 まず環境構築 ChefはRuby製なので、Rubyが動く環境を作らないといけないのと、わりと依存関係が多いので、ディストリビューションもちゃんと選ぶ必要があったりします。 パッケージでいれたり、gemから入れたり、bootstrapというコマンドライクに入れる方法等色々あるのですが、個人的にはパッケージで入れるのが一番楽でした。 ので、パッケージインストールがサポートされている以下の
前回のエントリで色々コメント頂いたので、自分の勉強のためにちょいと調べてみた。コメントありがとうございます。 とりあえず、bashオンリーのもの途中から書いてるじゃんという話し。 ひとまず、提示したソースをそのまま使ってみて、やってみた。 declare -r var1=1 echo "var1 = $var1" # var1 = 1 (( var1++ )) # x.sh: line 4: var1: readonly variableこれですな。これのシェバングをshとbashに変えただけ。 $ ./bash_declare.sh var1 = 1 ./bash_declare.sh: line 5: var1: readonly variableよしよし。 $ ./sh_declare.sh var1 = 1 ./sh_declare.sh: line 5: var1: readon
作ったシェルスクリプトでどうも「command not found」と言われる。パスは間違ってないし、そんな思い当たる節もない。 ただ、追ってたら、やっと頭に入ったので、無知ながら晒してみる。 コマンドとエラーはこんな感じ。 $ ./test.sh -d 2 -s '192.168.1.11' : command not foundet/test.sh: line 15 :: command not foundet/test.sh: line 23 :: command not foundet/test.sh: line 27 :'home/www/test.sh: line 31: syntax error near unexpected token `in'home/www/test.sh: line 31: ` case $OPT ingetoptsを使って、オプションを指定して、そ
エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところであるでしょう。その際、可読性を増すように、変数は大文字を使っています。 RET=`cmd1`みたいに。好みの問題もあるでしょうが、分かりやすいので。 クオテーションは選ぶ クオテーションにはシングルだったり、ダブルだったり色々ありますが、使い分けておいたほうがよいでしょう。 変数の展開がないようであれば、シングルクオーテーションのほうがスマートでしょうし、展開があるのならダブルクオーテーションを使えばと。 ダブルクオーテーションを使うのにも意味があって、変数は「$RET」のようにクオテーションで囲まなくても動作はたいていするのですが、 echo "${RET
ちょくちょくTLで流れてきていこーかなーと思ってたときにid:akuwano氏が行くと行っていて(スタッフだったw)、じゃー行くーと思って行った#infrapp2012。 場所は晴海ということで、大江戸線で無事到着。始まりは飲みでしたw 飲みと自己紹介とテーマ決め 各テーブルでわいわいしながら、自己紹介などもありつつ、チーム決めへ。 今回は、@kogeeさんと@pandeiro373さんとチームに。チーム名はこのときまだ決まってませんでした。 お題はWordpress, Redmine, Racktableが挙がって、それぞれ重かったり、使いづらかったりするんだけど、それをどうするかそれとももっとよい代替案を出すかということでした。 正直、これらをチューニングしてもフィードバックとして渡せそうなものがあまりなさそうで、せっかくみんな集まる合宿なんだし、もう少し違った観点からアプローチしたほ
OSインストール時に構成考えてパーティションを切ったのに、あとになって、なんでこんないっぱい領域確保してしまったのだろう、どう考えてもこの割り当ておかしいだろと思うことあったりします。 そんなときに、かなり腹を括って、パーティションサイズを変更する方法を。(以下の方法は完全に自己責任で行い、何があっても泣かないでください。) まず、環境を。 OSはCent5.6 デバイスは/dev/sdaとして認識されている。 LVMなんて素敵なものは存在しない 意地でも、領域確保して、自由に使える領域欲しい 「/」に当ててる領域使いたい その領域は/dev/sda3としてマウントされている模様 当然使用中なので、umountとかでマウント外せるような素敵な構成じゃない フロッピーとかUSBとかCDとか使って、他のOSからパーティション切り直したいのに、KVMとかで言う事きかなくて、涙目 まずはレスキュー
12/31日という今年最後の最後にVimに関する記事を書くことができて、幸せな年末を過ごせて素敵だなぁと思っている@masudaKです。この記事はVim Advent Calendar 2011 : ATNDの31日目の記事となります。 正直、今年の半ばぐらいまで、VimとViもたいして違わないだろ、最低限文字の編集ができればそれで十分じゃないかと思っていました。でも、これは大きな勘違いでしたね。ある「キッカケ」からどうもVimと戯れてないと、そして親しくしていく時間が増えていかないとすごく不安になってきたんですね。 kozo2さんも13日目の記事で、以下のように述べております。 この界隈の人は常にVimかEmacsを起動しています。起動してないほうがおかしい。 そして時間がある休日(クリスマス)に愛を深める(設定を見直す)傾向があります。 そのとおりでございまして、常に近くにいて、愛を深
MySQL Casual Advent Calendar 2011の補欠記事でございます。折角申し込んだので、書いた次第でございます。 CASE文とは、という話しを書こうと思いましたが、カジュアルにやめましたよ! そんな話はさておき、タイトルから見る限り、日本語でおkと言われそうですが、単に毎日触れている作業を少しでも軽減できたらいいですよね、ということでカジュアル(気軽)にMySQLと戯れる方法を書いてみたいと思います。 情報足りねーよって場合 まずはデフォルトのプロンプトですね。 こんな感じ。色気がないですな。 なので、味をつけてみましょう。 sugyanさんも6日目の記事で触れていましたが、MySQLでは「MYSQL_PS1」という環境変数を利用できます。なので、.bashrcとかに以下のように書いておくと、MySQLのプロンプトにお好みの情報を加えることができます。 ここで使えるオ
ターミナルマルチプレクサ Advent Calendar 2011 : ATND19日目の記事でございます。 bannyanさんがセッションの移動に関して書いてらしたtmux で複数のセッションを移動する - 写経日記ので、カジュアルにウィンドウの移動でも書こうかと思います。 単に移動 まずは僕のtmux画面でも晒しておきましょう。 Snow LeopardでiTerm2を使い、サーバ上でtmuxを使ってます。バージョンは1.5を使い、ソースからインストールして使ってます。 ウィンドウを5つ開き、そのうちの1つのウィンドウを開いている状態です。現在、開いているウィンドウでは、縦分割を行い、上のペインにtopを、下は作業用に開いています。 現在、ウィンドウを5つ開いているわけですが、開いているウィンドウとは別のウィンドウに移動するためには、以下のようにします。 なので、今5番目のウィンドウに
Linux Mintでapt-get upgrade, dist-upgradeが終わらないので、一つ記事でも。 今の時代、PHPが実行可能なサーバは多いと思いますが、そんなサーバを運用している方へ、こんな情報表示されちゃいますよ、という話し。セキュリティにも関わってくるので、知っておきませう。 論より証拠 とりあえず、PHPが動くことが前提で、素のPHPでもいいし、何かすでにフレームワーク等動いてるならその環境下でもよいので、以下のようにしてみませう。とりあえず、素のPHPで。 まず、ファイル名はなんでもよいので、適当なPHPファイル(ex: index.php)を作成する。 ウェブサーバの設定をもとに、権限を設定し、ウェブサーバ経由で参照できるようにする。 たとえば、ブラウザでhttp://www.test.org/index.phpにアクセスできることを確認する ここまでが下準備。
この前初めて知ったのですが、本読んでたら、こんなもんあるのかと思ったので、紹介してみる。 そのコマンド名は「ssh-copy-id」です。周知の事実だったらごめんなさい。あと、セキュリティの話しは末尾に。 ssh-copy-idって何? sshで公開鍵認証とかしてると、接続先のサーバの「~/.ssh」以下に「authorized_keys」作らないといけないわけですが、どうも作成するのが面倒。 転送なり、ファイル作りなり、まぁ色々方法はあるんでしょうけど、いずれにしてもめんどい。権限周りもあるし。まぁ、セキュリティとして大事なとこなので、わがまま言っちゃいけないんですが、楽はしたい。 そんな悩みを軽減してくれるのが、「ssh-copy-id」です。簡単に言えば、ローカルにある公開鍵をリモートサーバにauthorized_keysとしてインストールしてくれるというもの。 manには以下のよう
第2弾!いろいろチューニングしてパフォーマンスを競うバトルイベント開催!「Tuningathon」2!! #tuningathon on Zusaar(以下チューニンガソン)に@mikedaさん(以下いけださん)と一緒に参加してきました。結果は7位入賞。色々反省点はあったものの、色々勉強になったので、そのメモでも。見た人が見たら、全然甘い部分も多々あるかと思いますが、晒しまする。 当日まで まずルール。当日まで内容は分からず、公開されていた情報は以下のとおり。 当日渡された環境を使い、OSやサーバ周りのチューニングでパフォーマンスを競います! チューニンガソンの前提条件は、サーバ環境がAWS(EC2)でOSはAmazon Linux AMIです。 チューニング対象はwebアプリです。 あとはまだ内緒です。 webアプリ自体の改変は対象外です。 ということで、何も分かんなかったんですが、何も
2016/07/04追記: 当時はこれで試行錯誤していましたが、本当はlogrotateのソースコードを読んで理解すべきだと思います。あとカーネルね。若者が試行錯誤していたのだと、温かい目で見て頂ければと思います。 詳解Linuxカーネル第3版 Linux 2.6対応 [ ダニエル・P.ボベット ]posted with カエレバ楽天市場で探すAmazonで探す - ちょっと気になる症状があって、どう追うのがよいのか分からなかったんでけど、呟いたら色々ご意見もらったので、その調査ログ。 メモに残してから随分時間かかってしまった… まだ整理しきれていない部分があるので、あとで続き書くかも。多分。 ご意見・ご指摘あったら是非宜しくお願いします。 発端 発端は、logrorateが走るタイミングでrsyslogにHUPが送られるんだけど、どういう挙動になるのか、なぜそのHUPが必要なのかを追いた
日々作業してると、できるだけ作業の負担を減らしたり、デバッグしやすくしたり、工夫したりすることも多いかと思います。 そういうもののうち、こういうのよく使うかもなーというモノたちを、思いつくまま書いてみる。したがって、既出だったり、よく使われてるものもあるかと思われますが、遠慮なく。カテゴリ分けとか完全に挫折してるけど… SQLの整形 これは社内の人が使っててすごいなーと思ったもの。例えば、以下のようなすっごく汚いというか、読みにくい一行もののSQLがあったとします。SQL自体の妥当性とかは置いておいてくだしあ。 SELECT id,id2,id3,id4,id5,id6,kana,company,name,tel,created_at,updated_at FROM customer AS cs INNER JOIN order AS od ON(cs.id = od.id) WHERE
まず一つの理由は「綺麗だから」だ。コマンドプロンプトは無機質だけど、綺麗な画面は使っていて心地良い。論より証拠。画像を示そう。 これが美しくないと思われるなら何も言い返せないが、僕はConsole2を使ってから、どうもターミナルを美しくしたくなってきて、色々カスタマイズしている。 しかしながら、「画面が美しい」というだけなら、そもそもコマンドプロンプトなんて使う必要ないという人も多いかもしれないし、説得力にかけるかもしれない。そして、そういう人のためにオススメしたいもう一つの理由が「Linuxのコマンドが使える」という点である。 Console2には、シェルを選択する機能があり、「NYAOS 3000」を読みこませることで、lsやpwdなど業務上よく使うコマンドも使えるようになる。 設定をしてみる 手順は以下のとおり。 まずは、[Console2のサイト](http://sourcefor
「ip_conntrack」の上限値の監視はしておかないと痛い目を見ることが多い。 中〜大規模サーバーを運用するときの勘所 – iptablesとip_conntrack | cyanoや見落としがちなLinuxのWEBチューニング | Act as Professionalにも書かれているように、この値は本当に監視しておいたほうがよい。特にキャッシュサーバやウェブサーバのように多くのトラフィックを扱うサーバにおいては、大事な部分である。 んで、すぐリソースモニタリングや監視ツールの対象にできればよいんだけど、そこで苦しむ人もいるだろうから、必要であれば以下のシェルをカスタマイズしてみるとよいのかもしれない。なんの値を取得しているのか知らないと監視も中途半端になるだろうし。 リモートだろうが、値を取るだけだったら、こういう風にできる。 #!/bin/sh USER=user KEY_DIR
昔こんなことを呟いたことがある。「インフラエンジニアは、いつ暗殺されるか分からない、明治時代の倒幕者だと思えば気が楽かもしれん」と。 そう呟いたときも、今でさえも分かっていないけど、思うところがあるので、記してみる。 技術 VS 心意気 エンジニアとして生きる上で、サービスを常に安定させることは死活問題だったりする。そういう気持ちを持っていてさえ、365日常に稼働させる自信あるかと言われると、まだ足りない部分があると言わざるを得ない。とても、「ずっと安定してますよ、問題ないですよ」とは言えない。というのは、どんなに手を打っても、それを上回る力で何かしら起こる可能性が0.01%でもあることを心の底で感じているからだったりする。 もちろん、ホットスタンバイの準備や、SPOFをなくす構成、原因を特定しやすい仕組みなど、技術を学んでは適用し、応用し、常に改善をしていくようにはしている。新しい技術で
「意識的に記録を残す」。会社に入ってから特に意識しているテーマであったりする。果てして、それが一体どういう意味をもたらしているのか考えてみた。 今思い出して、自分が残していると思われるのは以下のようなもの。 インストールや設定ファイルの作業手順 設定を修正をした場合にどういう修正を加えたかという一連の流れ。それに対する意見。 あるタスクが現時点でどこまで進んだかという進捗 一週間や月次など、特定の区切りで、振り返った報告 何か問題があった場合のその対策やその対策が意味すること このような記録をする際は、自分が「何をし」、その作業が「どういう結果」となったか、そして、それに対して自分が「どう思っている」かを意識的にせよ無意識的にせよ思うままに書いている。 また、このBlogや勉強会のLTのように、不定期ではあるものの、社内・外に関係なく、そのとき書こう・やろうと思ったものをアウトプットしてい
ふとたまたま、 「圧縮されたアーカイブログにもgrepがかけられる「zgrep」が便利!」という記事を読んで、こんなコマンドあるんだと思い、どうせならテキストデータ生成から色々コマンド使ってみようじゃないかと思い立ったのが、今回の発端。少しでも黒い画面が好きになる人が増えたら幸いです。 ということで、ちょっと試してみた。 まず検証用データを作ってみる。 まぁ、業務に携わってればログとか色々あるだろうけど、せっかくだしコマンドを色々使って、データ作ってみましょう。 まずある程度固まってるデータとして、郵政のページから郵便番号のCSVを取ってくる。wgetとかはテキストデータと関係ないので除外(優しくなくてごめんなさい。書いてて疲れたw)。あと、このCSVはDBサーバに流したりもできるので、便利ですよと。とりあえず解凍。 lzhを解凍するには、lhaというコマンドを使います。こういうとこから持
MySQLに関わっていくと、レプリケーションは避けることはできないように思うんだけど、 だからと言って、そこにかける時間は最小限に抑えたいと思ったので、備忘録。 始まりはレプリケーションのエラーだった 本番稼動してなからとは言え、ミスが全くないというとすごーく自信ない。やはりエラーが出てしまうときはある。そういうときの対処法。 今回はレプリケーションでエラーを吐いて、レプリケーションが止まってしまった際にそれを解消する方法を書いてみる。 ※ とは言え、本番で参照してなかったから、できる技であって、本番であったら、LVSから切り離すなりして、パケットが流れないようにしないといけない まずは状態 基本的に、レプリケーションに関する情報(スレーブ)は、 mysql> show slave status\G で見ることができる。実際はこんな感じ。 (一部改変してます) Slave_IO_State
最初はNodeをやってみたいと思っていただけでした。 勉強会とかでLTとか聞いてると、わりと出てくるNodeの話題。JavaScriptは嫌いじゃないし、いつかやってみたいと思ってたけど、なかなか手を出す気にならなくてやってませんでした。 ただ、やろうと思ったら色々ライブラリとか揃ってきてるみたいだし、なんかテンションあがって、色々動かしてしまったという話し。基本はこんな感じ。 Nodeは絶対動かす。ブラウザからアクセスできるようにする 中身は普通のHTMLじゃ面白くないから、jQuery Mobileにしよう ただ、そのままレスポンス返すのも味気ないし、NoSQLから取り出した方が早いんじゃね じゃ、RedisとMongoDB使うか あとNodeでValue取り出すし、勉強ついでにPythonからINSERTしてみるか ってなこと考えました。ということでやってみた。 ほんとはそれぞれ別に
Tweet 何かサービス利用している人向けというよりは、管理者向けかと思いますが、踏み台にされるといいものではないので、記しておきます。 (※もちろん被害あうのは両者です) 発端というか、僕が昨日見かけた記事はこちら。 https://github.com/jquery/jquery-mobile/pull/1789 このURLにサンプルコードも載っていますが、そのコードをブラウザ上で実行するとアラート画面が出ることが分かるかと思います。 このように任意のコードを実行できるようなことをざっくり言ってXSS(クロスサイトスクリプティング)と言います。定義とか詳しい説明はググればやまほどあるので、調べて見てください。個人的に何より困るのが任意のJSのコードが実行されてしまう、ということです。 条件は? 今回発見されたのは「過去のjQuery Mobile」のバージョンということですが、2011
あなたが運用しているサーバ・サービス、常に同じ速さで表示・応答できてますか?「常に」というとさすがに厳しいかもしれません。ただ、ちゃんと追って把握できていますか?という話し。 JavaScriptを書いたり、フロントエンドの作業をしていると、レスポンス・タイムってかなり気になったりします。レンダリングって遅いときは遅いですから。または大きな写真を投稿した場合とかも。広告もそうですねぇ。 その場で確認するだけならFirebugとか使えばよいわけですが、定期的に観測した場合とかもあるわけです。 インフラ周りのことでピーク時にレスポンス悪くなってないかと気になるときとか。 そういうときに便利なコマンドが「http_ping」です。 言うより易し。公式サイトに載ってるサンプルを見てみましょう。 % http_ping http://www.example.com/ 7816 bytes from
備忘録に近いですが、Pythonのバージョンでもう苦しみたくなかったので、もろもろいじってみました。 とりあえず、第一弾。Pythonインストール編です。 とりあえず、課題認識。 流行ってるし、面白そうだしNode使いたい Nodeをそのままソースから入れると、バージョン毎になんか色々モジュール管理で大変になった どうせならpipとかnpmとかで管理したい 一言で言えば、PythonやNodeのバージョンごとになんか色々モジュール入れなきゃいけなくて、マジカオス しかも、何入れたか記憶にない。覚えてない そして、historyとかをgrepしたりlessするのめんどい ということで、バージョン管理大事なのはわかった ただしPythonの依存関係は鬼だから、なんとか頑張るべ こういう認識でいました。カオスだから、とりあえず改めようと。 なので、改めるためにまた色々やろうとしたら、失敗したとい
みなさん勉強会行ってますかー?別に追い込むわけじゃないし、行ったからと言って雑誌に投稿できたり、車買えたり、家買えたりするわけじゃないけど、色々プライスレスなものが得られるので、行くことの良さをアピールしてみる。反論は怖いので、やめてくださいw こんなの参加しました 2011年前半を振り返えってみると、自分はこんな勉強会参加してました。 2011/04/09 キユーピー3分インフラクッキング 1周年記念SP 2011/02/12 第25回 Sugamo.css 2011/02/11 キユーピー3分インフラクッキング qpstudy05 2011/01/23 第9回 データマイニング+WEB 勉強会@東京 ( TokyoWebmining 9)−2nd Week−方法論・ソーシャル 祭り− 2011/01/16 第9回 データマイニング+WEB 勉強会@東京 ( TokyoWebmining
次のページ
このページを最初にブックマークしてみませんか?
『カイワレの大冒険 Third』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く