よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

セキュリティ対策ソフトAVG Free 2011をLinuxに導入する方法

独立系機関の主催するウイルス対策ソフトウェアテストで No.1 の検出率と評価されているらしい AVG がLinux版のパッケージ/ソースコードをダウンロードできるようにしています。 これまではWindows版しか対応していませんでしたが、Linux版も用意していただ…

MySQLに関するTips

いざという時に忘れがちなので、メモとして残しておきます。 ■ Queryをキャッシュに格納しない query_cache_type が有効な場合に限り、使用できます。 mysql> SELECT sql_no_cache * FROM users; ■ 実行計画の確認 発行するSQLが遅いかなどを確認する際には…

[Linux] crontabで利用できる特殊文字列(日時指定)

特定処理の定期実行をするcrontabの書式は以下のようになっています。 分 時 日 月 曜日 コマンド ですが、この実行日時指定では、"よく利用される日時のショートカット"である特殊文字列を利用することができます。 その特殊文字列は以下のようになっていま…

Ubuntuに最新版Dropbox 1.0を導入する方法

Dropbox 1.0がリリースされ、指定したディレクトリのみsyncする"Selective Sync"機能が利用できるようになりました。 Dropboxの新機能に関しては以下をご覧ください。 Dropbox 1.0登場 〜マイコミジャーナル〜 Dropbox hits 1.0! さっそくdropboxのトップペ…

script/consoleでroutesのpathやurlを表示する方法

script/consoleでroutesで定義したurlやpathを出力してみたい場合、普通にusers_urlなどを入力してもNameErrorとなってしまいますが、どうにかして表示させたい場合は下記の2つのやり方があります。■方法(1) script/consoleを起動すると、標準でActionContro…

script/consoleでhelperのメソッドを実行する方法

railsでアプリを開発していると稀にhelperメソッドをconsoleで試してみたくなる場合があります。 そんなときは、以下の初期化をすることでhelperのメソッドを実行して試すことができるようになります。 $ script/console hoge = ActionView::Base.new hoge.e…

Puppet活用事例の資料を公開します。

SonicGardenで活用しているシステム運用管理ツールである"Puppet"の活用事例を紹介する機会があったので、その時に利用した資料を公開します。id:POCHI_BLACK によるchefに関する紹介があり、その後に chefと比べてpuppetはどうなのか? puppetを活用してど…

大規模システム運用でpuppetやchefだけでは解決しづらいことを解決するMCollective!

もはや説明は不要かもしれませんが、"puppet"は、Puppet Labsが開発しているシステム運用管理ツールで、puppet管理下にあるサーバ群のシステムの状態を"あるべき状態"に保つための補助ツールです。 chefもpuppetと同等の機能を持ち、システムの運用管理をす…

erbファイルの構文チェック

システム運用管理ツールである"chef"や"puppet"でtemplateファイルを作成/更新する際に知っておくと何かと便利です。 $ erb -x -T -P [ファイル] | ruby -c

RailsアプリケーションにてClamAVを利用してリアルタイムにウィルス・スキャンを実現する方法

ファイルのアップロード機能を有するアプリケーションを運用している場合は、ウィルスに感染したファイルがアップロードされることを考慮する必要があります。もし何も対策していない場合、ウィルスに感染しているファイルがアップロードされ、そのファイル…

アプリケーションに依存するバッチを"アプリケーションで自動生成"してcronに登録する方法

バッチ処理で一括処理を行うようなアプリケーションは多いかと思います。 ですがこのバッチ処理の設定をするときに、以下のようなシーンで悩まされることが多々あります。マニュアル関連の問題として、 マニュアルを読みあさらないとわからない バッチに関す…

sshを試みて "/var/tmp/log/script/[ログインID] を作成できません"と表示された場合の対処方法

sshでEC2のLinuxサーバにログインしようとしたら、以下のようなメッセージが表示され、ログイン直後すぐに強制的に接続をcloseされてしまった。 mkdir: ディレクトリ `/var/tmp/log/script/interu' を作成できません: そのようなファイルやディレクトリはあ…

特定容量以上のファイルを探すワンライナー

カレントディレクトリ以下から100MB以上のファイル一覧を探し、その一覧の中から容量の大きいファイルトップ10を表示する。 $ find ./ -size +100M -type f -ls |awk '{ print $7,$11 }'|sort -n -r | head -10

mysqlのログファイルのサイズを変更する

バイナリデータを格納するために、BLOB型やその拡張のMEDIUMBLOB型を利用するシーンが時折あるかと思います。BLOB型を利用していて、サイズの大きなデータをDBに格納しようとすると、MySQLのログに以下のようなエラーログが出力されることがあります。 10090…

これを知っておかないと、MySQLサーバの再起動でDBデータの不整合が発生するかもしれません!

Railsに限らず、MySQL(Innodb)を利用したサービスを開発/運用しているなら、これから解説する内容を知っておかないと、予期しないデータ不整合を発生させてしまうかもしれません。 データ不整合が発生してしまったら、本来あるべき状態に戻すのはかなり難易…

Passenger + monit でリリース作業をより簡単にする方法

PassengerでRAILSアプリを運用しているなら、アプリのリリース時には、${RAILS_ROOT}/tmp/restart.txt を配置/更新することで、ほぼダウンタイム無し(httpdの再起動なしのため)にリリースしているかと思います。ただ、アプリケーションのソースコードの影響…

maillog に "error writing message: File too large"が出力されていたら

■前提 smtpサーバ postfix メール格納形式 mbox /var/log/maillog を確認すると、タイトルのようなログが出力されていました。 status=bounced (cannot update mailbox /var/spool/mail/"ユーザ名" for user "ユーザ名". error writing message: File too la…

実行されているSQLを確認/強制終了する方法

忘れない様に備考録として。MySQLがCPUリソースを占有している場合は、以下のコマンドで何が起こっているのかを調査できる。 mysql > SHOW FULL PROCESSLIST; Id User Host db Command Time State Info 11444 root localhost skip_test Sleep 53 NULL 12033 …

gitでカラー表示で文字化けが発生する場合はlvを削除せよ

gitの設定(~/.gitconfig)で git diff を実行した際に自動的にカラー表示をしてくれるような設定ができます。 [color] interactive=auto diff=auto status=auto branch=auto [core] editor = vim 私のUbuntu環境ではカラー表示の設定をすると、本来カラー表示…

puppet-moduleでモジュールのレシピの共有/再利用が可能に!

これまでシステム運用自動化の手助けをしてくれるツールであるpuppetのベストプラクティスは、puppetlabのサイトに掲載されていました。 しかし、最近のサイトリプレースと合わせて?、puppet-moduleというgemがリリースされ、そちらでpuppetのモジュールを…

Ubuntuで簡単に自動起動するサービスを確認/設定するには?

Debian系であるUbuntuでシステム起動じに自動で起動するサービスの設定をコマンドベースで行うには、update-rc.d コマンドが一般的です。 ちなみにupdate-rc.d コマンドが行う処理内容としては、単に /etc/init.d 配下のスクリプトについて、/etc/rc?.d 配下…

UbuntuでGoogle chromeをベータ版から安定版に切り替えるには?

今までずっとGoogle Chomeベータ版ユーザだったのですが、安定版がリリースされたということで、安定版に切り替えてみます。リポジトリを更新したら自動的に落ちてくるだろうと思っていたのですが、更新されず。 では、新しいstableのパッケージが提供開始さ…

Google 日本語入力を利用して快適Ubuntu Lifeを

5月11日にGoogleがオープンソース化した"Google 日本語入力 Mozc(モズク)"をUbuntu 10.4にインストールしてみました。Mozcプロジェクトのドキュメント「Linux Build Instruction」では、MozcがUbuntu 9.10 と 10.04でサポートされているとのことですので、…

Ubuntu 10.4(Lucid Lynx)でセンタースクロールを使えるようにする方法

いよいよあと2日で正式版Ubuntu 10.4がリリースされます。10.4では、いくつもの仕様変更がありますが、その中の一つに8.10(Hardy)で取り入れられたHALによるハードウェア設定の見直しがあります。そのため、利用しているPCによっては、10.4にアップグレード…

Ubuntu 10.4に最新版java6-jdkの導入

Ubuntu 10.4 LTS betaでinfoscoopを動かすためにjava-jdkをインストールしたときの手順を忘れないようにまとめておく。まずは、aptでsun-javaのインストールを試みる。 $ sudo apt-get install sun-java6-jdk パッケージリストを読み込んでいます... 完了 依…

Ubuntu 10.4 LTS Beta1でdropboxを利用するには

今までUbuntu 9.10でdropboxを利用していましたが、10.4 LTS Beta1にアップグレードしたところ、dropboxパッケージが削除されてしました。そこでググってみると以下のエントリを発見。Ubuntu 10.4 Beta1にDropboxをインストールでは、debパッケージを自分で…

find と find_by_ の使い分け

タイトルのメソッドを使い分けるポイントを忘れがちなのでエントリとして残しておく。find と find_by_ の振る舞いで異なる点は以下のとおり。 検索で複数件がヒットする場合、find では複数結果を配列で返すが、find_by_ は1件のみ返す 検索で1件もヒットし…

日経SYSTEMSにAmazon EC2/S3[運用編]を寄稿しました

日経SYSTEMSで、Amazon EC2/S3に関して連載させていただいきました"クラウドきほんのき"の最終号(2010年3月号)が発売されています。 日経SYSTEMS 2010年3月号最終回の今回は、Amazon EC2を利用したシステムを、保守/運用する上でどのような点に注意すべき…

puppet 0.25.4で追加されたフック機能

puppet version 0.25.4で、クライアントでtransactionが実行される前後にフックしてコマンドを実行できるようになったようだ。この機能を利用するにはpuppet.confに以下のように記述すればよいとのこと。 prerun_command = /bin/runbeforetransaction postru…

祝ってもらってありがとうございます!

本日は、SonicGardenメンバーである私(interu)とfujiの誕生日でした! SonicGardenのメンバーは全7名ですが、そのうちの2名が同じ誕生日とは、何たる偶然。 そして、社内SNSであるSKIPが社内向けサービスとして稼働し始めた日でもあります。これだけ記念日が…