サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
d.hatena.ne.jp/mkouhei
Ops普段チームのタスク管理はRedmineのチケットで管理しています。あるシステムの運用を引き継いだ際、それに関する依頼作業もチケットで管理するようになりました。最初は良かったのです。メーリングリストや個人宛のメールだけでのトラッキングをやめたので作業漏れは無くなりました。が、しばらく運用して大変な事になりました。Redmineの一つのプロジェクトで全て管理していたので、チームのタスクが埋れてしまい探すのがめっちゃ大変になってしまいました。そこで、依頼作業はサブプロジェクトとして分ける事にしました。分けるのは良いのですがどうやって既存のチケットを移行させるかが問題です。一つのチケットだけなら"移動"というリンクのクリックでプロジェクトを移動することができます。でもチマチマ一つずつ移動なんてやってられません。そう思ってググる先生に聞いてみたら、CSVでのインポートプラグインがあったので、こ
Unix/Linux, Debianおぷすたでインスタンスを作成した際に、自動でDNSにAレコードを登録するデーモンが(チーム内で作って)あるのですが、これが落ちていたためインスタンス起動時にレコードが登録されない、ということがありました。プロセスが死んだとしても勝手に再起動させればよいので、inittabかdaemontoolsかmonitあたりでやろうかなぁと考えていたら、@matsuu matsuu [誰?][要出典]ああ、もうdaemontoolsいらないね。落ちた時の自動起動だけならupstartで実現できる。Debianは6以降、RHELも6以降は標準でインストールされてる。Amazon Linuxも標準装備。ただしGentooでは使えません。 12 hours ago via web · Reply · Retweet · Favorite · powered by @
仕事, Debian, Unix/Linux昨年Joinした時点ではチームで運用しているシステムの依頼は以前はメーリングリストで定型文で送られていたのを、ConfluenceというWikiが使われるようになったタイミングで定型フォーマットの申請フォームを作り、申請用のメーリングリストに送信されるようにしていました。依頼作業もRedmineでチケット管理しているので、この依頼メールを受けとると、メール本文をまるごとコピーしてRedmineでチケットを登録する、というフローにしていました。量が少なければまぁ許容できるかもしれませんが、こんな刺身タンポポなコピペ作業は自動化すべきです。ということで、申請フォームメールからRedmineにチケットを自動登録するようにしました。基本的には、リンク先の手順の通りなのですが、いろいろハマりポイントがあったのでまとめてみました。チケットの登録はIMAP経由
Unix/Linux, Debian仕事で複数ノードから同時に別々のWebサーバに対してabで負荷を掛ける必要があったので、普段ならdshを使うところなのですが、複数ノードにコマンド発行できるサーバはあいにくCentOS 5.5でした。不幸な事にtomahawkも導入されていませんでした。複数ノードに対してsshができるパッケージが無いかなと思って探してみたらちゃんとあるではありませんか。 $ yum search ssh (snip) mussh.noarch : Multihost SSH wrapper (snip) 特に依存関係もないFedora Projectがパッケージベンダーとなっているrpmパッケージです。 $ rpm -qi mussh Name : mussh Relocations: (not relocatable) Version : 0.7 Vendor: Fe
python, Debianblockdiagシリーズがようやく全てSidのmain入りしました。*1 スポンサーをお願いした岩松さん、upstreamのtk0miyaさん、依存パッケージ(funcparserlib)のupstreamのAndreyさんには大変お世話になりました。ありがとうございました。それぞれ、Sidおよび、testing(wheezy)では下記のパッケージ名でインストールすることができます。*2python-blockdiagpython-seqdiagpython-actdiagpython-nwdiagpython-sphinxcontrib.blockdiagpython-sphinxcontrib.seqdiagpython-sphinxcontrib.actdiagpython-sphinxcontrib.nwdiagSidユーザでblockdiagシリーズ
Debianupstreamがmercurialで管理されているソフトウェアをDebianパッケージにするのに、mercurial-buildpackageを使ってみたのでそのメモです。まずはパッケージの導入。 $ sudo apt-get install mercurial-buildpackage upstream(今回はfuncparserlib)からcloning。 $ hg clone https://code.google.com/p/funcparserlib/ 複製先ディレクトリ: funcparserlib 全チェンジセットを取得中 チェンジセットを追加中 マニフェストを追加中 ファイルの変更を追加中 154 のチェンジセット(443 の変更を 132 ファイルに適用)を追加(+1個のヘッド) ブランチ default へ更新中 ファイル状態: 更新数 33、 マージ数
Debian, networkNDISWrapperでWindowsの無線LANドライバを使う場合、ZIPやLHA形式だけで圧縮されているだけであれば、展開するのは非常に楽なのだが、EXEはどうやって展開すれば良いのかなぁ、と思って調べていたらNDISwrapperの開発元にあったのでメモ。NETGEAR WN511Tのドライバの抽出を例に。ZIPの展開 $ unzip -l WN511TV31.zip Archive: WN511TV31.zip Length Date Time Name -------- ---- ---- ---- 4591913 09-29-06 14:03 WN511TV31/setup.exe 813 11-14-06 14:55 WN511TV31/WN511TJP_ReleaseNotev31.txt -------- ------- 4592726 2
Unix/Linux画像を多用しているPDFでの圧縮率と実行時間を、gzip, bzip2, xzをそれぞれ-9オプションで比較してみました。結論、xzすごいね。テキストファイルなどでの実行結果と比べてみるとまたちゃうんでしょうね。gzip 圧縮後のサイズ比92.5% -rwxr-x--- 1 user user 12226478 2月 22 13:38 hoge.pdf ## gzip compress ## real 0m0.556s user 0m0.548s sys 0m0.004s -rwxr-x--- 1 user user 11307285 2月 22 13:38 hoge.pdf.gz ## gzip uncompress ## real 0m0.114s user 0m0.096s sys 0m0.016s bzip2 圧縮後のサイズ比35.5% ## bzip2 com
Debian, Unix/LinuxUTF-8だとE4B8BB、実体参照だと主が、縦に点三つの記号に化ける。音読みだと"シュ"、訓読みだと"あるじ"とか"ぬし"とか"おも(に)"という漢字です。今のところ、Debianでのみの様子。バグかなぁ?ツイートする
network, DebianDNSサーバの負荷検証を行う場合、queryperfを使うと思いますが、Debianではと、apt-cacheでもapt-fileでも見つかりません。 $ apt-cache search queryperf $ apt-file search queryperf $ さて、どうすれば良いでしょうか。 答えは、bind9のソースパッケージを取得することです。 $ apt-get source bind9 ソースパッケージを取得後、カレントディレクトリにbind9のソースツリーが展開されるので、bind9-9.8.1.dfsg/contrib/queryperf/ディレクトリに移動し、コンパイルします。 $ cd bind9-9.8.1.dfsg/contrib/queryperf/ $ sh configure (snip) $ make gcc -DHAVE
Unix/Linux, Debian, 運用この資料、どこかの勉強会のLT向け*1に2010年11月13日に作ったのですが、大人の事情*2でお蔵入りにしてました。*3Git本も無事出版されたので、どこかのLTで発表しようか、というと個人的にはずいぶん忘却の彼方になってしまった感もありますし、今年はプライベートな事情*4で、参加できても東京エリアDebian勉強会と、CouchDB JPの勉強会くらいになりそうな感じですので、ブログで公開しておくことにしました。インフラエンジニアのためのGit入門 View more presentations from Kouhei Maeda興味があればぜひご覧ください。Git本もぜひよろしくです。wGitによるバージョン管理posted with amazlet at 12.01.04岩松 信洋 上川 純一 まえだこうへい 小川 伸一郎 オーム社 売り
生活, TeX, python, Debian新年あけたらしいですね、おめでとうございます。新年の挨拶、抱負*1はまた別途ブログを書こうと思います。新年最初のブログは、今更ながら年賀状の宛名と挨拶状の印刷用のPDFを生成するツールを作った、というお話です。何故作ることにしたのか。昨年の年賀状までは、OOoのCalcで送り先のアドレス帳を管理し、Writerに差し込み印刷をしていました。今回もほとんど年賀状作成をする時間がなかったので、仕事納めの後から手をつけ始めたこともあり、OOo、というかLibreOfficeで同じように印刷するつもりでした。昨年同様、こまめの写真をGimpで加工し挨拶状の面をGimpで加工しようとしたところ、縦書きの文字列の再編集のやり方が分からない、という問題に遭遇しました。そしてもう一つ、もっと致命的な問題に遭遇しました。それは、LibreOfficeで差し込み印
network, Debian前回のエントリで書いた通り、configureコマンドやsetコマンドはシェルスクリプトでは使えませんでした。単にVyattaを運用するだけなら、そのまま${vyatta_sbindir}/my_*コマンドを使えば良いのでしょう。でも何故使えなかったのでしょうか。なんでそのままにしておくのは気持ち悪くて、夜もぐっすり眠れません。精神衛生上よろしくありませんね。ですので、このモヤモヤを解消するため、オペレーションモード、設定モードについてそれぞれ調べてみました。オペレーションモードの専用コマンドを探る。まず、aliasコマンドを実行してみると分かります。 $ alias alias add='_vyatta_op_run add' alias clear='_vyatta_op_run clear' alias clone='_vyatta_op_run clo
Debian, networkVyattaは通常configureコマンドで設定モードに入り、setコマンドを使って設定します。 $ configure # set service ssh # commit # save さて、同じような設定を複数設定する場合には、あとあと楽したいのでシェルスクリプトを書いておいてそれを実行するだけにしたいですよね。例えば、いくつかのVLANインタフェースに複数IPアドレスを設定したい場合、 #!/bin/sh configure for VLAN in $(seq 100 110) do for IP in $(seq 100 150) do set interfaces ethernet eth0 vif $VLAN address 192.168.0.${IP}/24 done done commit というようにして、設定しようと思うわけです。でも
Unix/Linux, programming仕事で引きついた運用環境に、コピペで一日ずつ増やして対応するバッチがあったので、簡単なのを書いた。GNU dateコマンドおよびbashであることが前提。 #!/bin/bash STARTDATE=20111226 ENDDATE=20120105 DELTA=$((($(date -d "$ENDDATE" +%s)-$(date -d "$STARTDATE" +%s))/86400)) for i in $(seq 0 $DELTA) do echo $(date -d "$STARTDATE $i day" +%Y%m%d) done exit 0 実行結果 $ ./datelist.sh 20111226 20111227 20111228 20111229 20111230 20111231 20120101 20120102 2
Unix/Linux, DebianLDAPの管理自体はコマンドラインで行えば良いのですが、LDAPで管理しているユーザ自身のパスワードの変更は、ブラウザで簡単にやらせたいですよね。なので、何か無いかなぁと探してみたら、同じようなことをphpLDAPadminでやったというブログを見つけたのですが、細かいところは載っていなかったのでメモしておきました。導入はいつもの通りDebianなので至極簡単で、 $ sudo apt-get install phpldapadmin でOKです。しかもOSのユーザアカウントの認証の設定が済んでいるホストに導入すると、LDAPサーバへの問い合わせまわりの設定を自動的にやってくれます。なので、インストール後にhttp://localhost/phpldapadmin/にアクセスすると、phpLDAPadminの画面が表示され、adminユーザやその他のpo
Unix/Linux, DebianExcelで管理しているユーザリストを用いて、LDIFに変換するのに、なんか良いコマンドラインのツールないかなぁと思ったら、@ITの記事で紹介されていたExcelからHTMLやCSVなどに変換可能なxlhtmlというツールが使えそうなので、これを使ってタブ区切りでawkでLDIFに変換するスクリプトを作ったので、それらのポイントをメモっておきました。まず、xlhtmlはDebianならSqueezeでも含まれているので、参考にした記事とは違い、余計な外部リポジトリを使わなくてもapt-getコマンド一発で導入できます。 $ sudo apt-get install xlhtml とりあえず、LDIFに変換するためにタブ区切りのテキストファイルにします。*1 $ xlhtml -asc -xp:0 memberlist.xls > memberlist.t
Unix/Linux, Debian昨日の続きの備忘録としてメモ。lightyに比べるとApacheでWebDAV + LDAPを使うのは設定が結構めんどいのですが、まぁその分ちゃんとグループ毎に権限を分けられるのでよし。モジュールの有効化authnz_ldap, dav, dav_fs, dav_lock, encoding, ldap, sslをa2enmodコマンドを使って有効にします。 $ sudo a2enmod authz_ldap 以下同様なので省略。LDAP + WebDAVの設定/etc/apache2/mods-enabled/ldap.confに設定します。 diff --git a/apache2/mods-available/ldap.conf b/apache2/mods-available/ldap.conf index 6d3b6d1..221ec90 10
CouchDB, ねこ, programming3.11の震災をきっかけに、こまちゃん監視サーバを構築しましたが、運用しはじめて問題が3つほど出てきました。写真のアップロード先をPicasaにしていましたが、1アルバムへのアップロード数の上限が1000ファイルまでと少ない こまちゃんが写らないときは、30分毎のスナップショットだけなので問題ありませんが、写る場合は数秒で数十枚は撮影されます。なので写る場合の時間当たりの平均枚数は100-200枚になるため、すぐに上限に達してしまいますそのためアップロードとは別に定期的に削除が必要でした一度にアップロードまたは削除するファイル数が多いとエラーになる これはアップロード用に使っているgoogleclだけでなく、webブラウザ経由でも同じ問題ですまた、googleclでは写真の検索が期待値通りにならない、という問題もあります*1致命的なのは、ヨメ
Unix/Linux, network, DebianSVNからファイルを取得するとき、どうしてますか。普通はgit svn cloneすれば良いんじゃねJK。という話ですが((svncoって何ですかw))、ちょっとファイルがほしいだけならWebブラウザでよいですね。でも複数ファイルをちょっと取ってきたい場合は、ブラウザでちまちま(リンククリック→保存)*の繰り返しなんてやってられません。そんなときに、cadaverですよ。大したことはありません。たまに使うときに、よくコマンド名と書式を忘れるので単なる備忘録です。DebianならcadaverパッケージをインストールすればOKです。 $ sudo apt-get install cadaver ftpクライアントとかsmbclientみたいな使い勝手ですね。 $ cadaver http://xxx.xxx.xxx.xxx/svn/rep
仮想化, Unix/Linux, Debian一昨日契約したさくらのVPSはメモリが512MBもあって、Core 2 Duoと普段の鯖環境から考えるとものすごい贅沢*1です。VM1台だけで使うのももったいないので、久々にlxcを使ってみることにしました。以前遊んでいたときはまだLennyリリースされて一年経っておらず、lxcのユーザランドも0.6.5頃までしか遊んで無いので、一緒に情報のアップデートも行おうと思います。Squeezeでのlxcは0.7.2*2で、SqueezeのLinuxカーネル*3のconfigに対してlxc-checkconfigでチェックすると、以前遊んでいたときと同じように、必要なカーネルオプションが無効になったままです。なので、2.6.38.6でカーネルビルドすることにしました。ビルド後、lxc-checkconfigを実行した結果が以下。 $ lxc-check
Debian, networkもともとの経緯としては、2月のDebian勉強会でSqueezeリリース記念で、「ヤッター、リリースしたよ! Squeezeになってうれしいこと、Squeezeになって変わったことを教えてください。」という事前課題で自分の回答してそれに対して自分自身に課した宿題でした。が、手つかずで最近やるやる詐欺になっていました。あかんですな。まぁ連休を使ってようやくまとめて調べる機会ができたので、自分のために整理してみました。環境もちろんDebianです。環境としてはWheezy/Sidを使ったり、Squeezeだったりなのですが、このブログでの最終的な設定自体はSqueezeです。Squeezeな理由は後述します。Wheezy/Sidな環境ではnwfilterが含まれるlibvirt-binは0.9.0、Squeezeは0.8.3です。なぜSqueeze?なんでSidじ
生活, Debian, 組込東日本で大地震があった日、僕の誕生日でヨメと有休を取って、ヨメへのサービス兼ねてディズニーシーに行っていた。お昼食べて、マーメイドラグーンシアターを見始めた直後、揺れ始めた。当初、こんな仕掛けあったっけ?と思ったのだが、揺れが大きすぎるので地震だと気づいた時にはミュージカルは中止になり、落ち着いたキャストの皆さんからその場で身を低くするよう指示があった。ちょっとパニックになりかけていたヨメをなだめて落ち着かせて身を守って揺れが収まってから、キャストの誘導に従って屋外に避難。屋外に避難してからは、移動せずにその場で待機するように指示され、結局その日は帰宅出来なかった。その後は、安全確認が終わったレストランに避難できるまでは寒かったものの、キャストの皆さんの素晴らしい行動と笑顔で特に不安もなく、レストランに避難してからはスタッフだけでなく回りの観光客が互いに気遣いし
Unix/Linuxblkidコマンドなんてあるのか。知らなかった。 $ /sbin/blkid /dev/sda1: LABEL="EFI" UUID="2860-11F4" TYPE="vfat" /dev/sda2: UUID="f25615e0-a7b7-3deb-859d-e671e3c347a4" LABEL="Macintosh HD" TYPE="hfsplus" /dev/sda5: UUID="c669781d-3d3a-4a72-b2f5-7a8afc12d318" TYPE="swap" ツイートする
勉強会, Debian今回は北新宿生涯学習館を初めて利用して、久々の和室での開催でした。駅からは少々離れているのが難点なものの利用費用は安いので、今後も利用ことになりそうです。今回はリリースパーティーを兼ねて、有志でお菓子、飲み物を持ち寄って、うまい棒つまみながらディスカッションしました。参加者は、キタハラさん、吉野さん、daiさん、鈴木さん、やまねさん、山田さん、杉本さん、山本さん、野島さん、長谷川さん、小室さん、岩松さん、まえだの13名でした。初めての参加者が増えたのは良いことです。来月以降も引き続き参加してほしいですね。発表内容は山田さんによるHDFS & Hadoopの話、野島さんによるDebian Games Team体験談、事前課題のSqueezeインストールしてみたよ話の3本。Hadoopは勉強しようと思って、思っただけになっていたので今回の話でとてもよく理解できました。質問
Unix/Linux, Debian会社のPCではPDFに閲覧用のパスワードも設定できないので、外部に送るときにはzipでパスワードを設定する、という手段を取るしかないので、なんか無いかなぁとDebianパッケージを調べてみたら、qpdfというのを見つけた。インストールは"qpdf"を指定してインストールするだけ。 $ sudo apt-get install qpdf 使い方はコマンドラインで行うのでとても便利。 $ qpdf --encrypt user-password owner-password 128 \ > --print=none --modify=none --extract=n --accessibility=n > --use-aes=y -- original.pdf encrypted.pdf original.pdfに元のPDFを、encrypted.pdfに生
TeX, Debianallttだと整形はされてもエスケープしないといけないし、verbatimだとタブが表示されないので無いかなぁと思ったら、listingsというパッケージがあることが分かった。参照元だと、日本語表示にはjlistingパッケージを使う必要があるとあったが、Debian GNU/Linux Sid/Squeezeの環境では特にそれは必要無かったので、\usepackageの記述は変える必要があり。*1 \usepackage{listings} (snip) \begin{lstlisting}[label=src:json, caption=.couchapprcの設定] { "title": "タイトル", "date": "2011-01-05" } \end{lstlisting} といった感じで、ブレースや日本語も記述しても問題無し。ただし、このままだとフォン
programming, CouchDB, DebianCouchDBのデザインドキュメントにMustacheのテンプレートエンジンを適用する方法についてのお話。これは英語のブログではそこそこ情報があるのだが、日本語ではid:yssk22さんのブログに部分的に情報があるだけなのでまとめてみた。前フリCouchDBのデザインドキュメントでHTMLの画面を作る場合、もっともプリミティブな方法としては、JavaScriptで function(head, req) { provides("html",function() { send(""); (snip) send(""); return ""; }); } とか、 function(doc, req) { provides("html", function() { return "" + (snip) "" + ""; }); } とするが
programming, DebianGAEでQRコードを使いたいなぁと思い、Debianにpython-qrencodeパッケージがあるので、早速試してみた。 import qrencode from google.appengine.ext import db class HogeDB(db.Model): qrcode = BlobProperty() (snip) hoge = HogeDB() hoge.qrcode = qrencode.encode_scaled("hoge",100)[2] な感じで生成したQRコードのイメージをGAEのデータストアに格納したれ、と思ったらできなかった。 理由は、そもそもqrencodeが使えなかった。python-qrencodeが、Cで書かれたライブラリlibqrencode3のバインディングだったため。GAEってpure Pythonし
次のページ
このページを最初にブックマークしてみませんか?
『ペンギンと愉快な機械の日々』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く