Manpage of LOGGERlogger はシステムログにエントリを作成する。 logger は syslog(3) システムログモジュールのシェルコマンドインターフェースを提供する。
ちょうど簡単なスクリプト中で、 「大したもんじゃないから独自にログ吐くのもなんかキモイなぁ」 と思ってたところ。
簡単にsyslogに吐けるコマンドがあるとは知りませんでした。
#!/bin/sh
MOUNT_POINT='/'
USE_BORDER=90
df | while read LINE; do
USE=`echo $LINE | awk '{print $5}' | sed s/%//`
MOUNT=`echo $LINE | awk '{print $6}'`
if [ $MOUNT = $MOUNT_POINT ] && [ $USE -gt $USE_BORDER ]; then
rm -f /tmp/*.cache && logger -it cache_clean "$MOUNT used ${USE}%. cache file was deleted."
fi
done
ルートパーテーションが90%以上になったら/tmp/*.cache削除のスクリプト。
fakemac:~% sudo tail -n1 /var/log/messages
Feb 17 11:09:02 fakemac cache_clean[25376]: / used 90%. cache file was deleted.
この地味な気持ち良さ、誰かに届け!
社内でrails勉強会。(聞く側)
前回のruby勉強会に続いて尋常じゃなく面白く、ためになりました。 こんな楽しい勉強会が参加者3人とはもったいない。
CEFA::Blog – set user idとsticky bitUNIXについてのテキストを作成している同僚から標記の話題が出たのでメモです。走り書きみたいな感じなのでワケが判らない文章になるかも。詳しく知りたい方はman chmodを実行する事をお勧めします。
UNIXのパーミッションset user idとsticky bitについていままで見た中で一番判りやすい説明な気がしました。
safariをちょろっとみてたら、
- Ubuntu Hacks: Tips & Tools for Humanizing Linux (Hacks)
- O’Reilly Media(2006-06)
- (著)Kyle Rankin
- (著)Jonathan Oxer
- (著)Bill Childers
- 定価:¥ 3,734
- 新品価格:¥ 3,173
- ASIN:0596527209
ちょwwwUbuntu Hackswwwwwww オライリーからそんなマニアックなの出てんのかよ。全然話聞かないよ! これは怪しい、おれが知らないだけで世間では大流行?ということで調べてみました。まず、は“Ubuntu Linux”これが何て読むのかわからねーんだよ!
はてなダイアリー – Ubuntu LinuxとはDebianをベースにしたディストリビューションの一つ
- ふりがな:うぶんつりなっくす
なるほど、うぶんつ。人の名前?
Ubuntu-この新しいLinuxディストリビューションはちょっと違う – ZDNet JapanUbuntuのこの哲学は、他のLinuxディストリビューションに対してよく聞かれる不満を解消するものだ。なかでも以下の点はとくに重要といえる:
- 定期的なリリーススケジュール
- 一定したメンテナンス期間(この場合は18カ月)
- 無償で利用できること
Ubuntu LinuxはDebianベースのデスクトップ向けディストリビューションだそうです。Debianとの重要な違いは ”定期的なリリース”と“デスクトップ向けにインストールCDやパッケージが手っ取り早い状態になってること”なようです。基本的にDebianでも一手間かければ同じ状態になる感じだそうです。
Debian最高!でも、
デスクトップで使うには軽く面倒・・・ → CentOS行こか!
って人ニーズってこと!? それと個人/趣味使用ならカスタマイズが醍醐味!もありだけど社内のOSとして導入なんつー場合にはこっちの方が良さそう。大抵のDebianパッケージはそのまま動くらしいです。
InformationWeek | Google | Google Confirms Using Ubuntu Linux, Won’t Say Why | 1 31, 2006Google Inc. on Tuesday confirmed that it is using Ubuntu desktop Linux technology internally, but remained tightlipped about its purpose.
Googleが社内でUbuntuをデスクトップで利用?じわじわ来てんのかな!?
変数の状態を表示するdBugの紹介 – HotPHPPER Newsきれいなprint_r()系の奴。PEAR Var_Dumpとかと違って気になったのはresource型も展開してるとこ。どうやってるんだろ。
switch(get_resource_type($var)) { case "fbsql result": case "mssql result": case "msql query": case "pgsql result": case "sybase-db result": case "sybase-ct result": case "mysql result": <strong>$db=current(explode(" ",get_resource_type($var)));</strong> $this->varIsDBResource($var,$db); break; case "gd": $this->varIsGDResource($var); break; case "xml": $this->varIsXmlResource($var); break; default: echo get_resource_type($var).$this->closeTDRow(); break; }
なるほど・・・。
resouce型一覧に無いから勘だけど、
*** dBug.php.bk 2006-02-15 07:55:27.000000000 +0900 --- dBug.php 2006-02-15 07:55:10.000000000 +0900 *************** *** 262,267 **** --- 262,268 ---- case "sybase-db result": case "sybase-ct result": case "mysql result": + case "sqlite result": $db=current(explode(" ",get_resource_type($var))); $this->varIsDBResource($var,$db); break;とかしたらsqliteもいけそ。
Kazuho@Cybozu Labs: mod_webdevmod_webdev は、一言で言うと、条件つき mod_rewrite です。特殊なクッキーを伴ったリクエストについてのみ、ファイル名を書き換えることで、開発者が開発中のファイルをテストすることができます。
気味が良いツール。(そんな言葉あるのか知らんが) なんか何でも一から自分の頭で考える人感がしますよ。 そういう人は信頼できるなーって思いました。
p0t: XML食わず嫌いPEAR::XML_RPCはHTTP/1.0なのでバーチャルホスト相手はだめなんですよね SerendipityではHTTP_Requestも併用したもので実装しました パッチ作ってコミットさせてもらいました http://sourceforge.net/mailarchive/forum.php?thread_id=7556980&forum_id=31275
投稿者 ELF : 2006年02月10日 23:33
な、なんだってー! (長くなるのでエントリーで返信)
XML-RPC SpecificationOverview
XML-RPC is a Remote Procedure Calling protocol that works over the Internet.
An XML-RPC message is an HTTP-POST request. The body of the request is in XML. A procedure executes on the server and the value it returns is also formatted in XML.
Procedure parameters can be scalars, numbers, strings, dates, etc.; and can also be complex record and list structures.
XML-RPCの仕様には単にHTTP-POST requestとしか書いてないっぽい。ということはServerもClientも1.1対応してた方がいいけど別に必須ってわけじゃないってことかな?
PEARの方を見てみる。
[cvs] View of /pear/XML_RPC/RPC.php
/**
* Transmit the RPC request via HTTP 1.0 protocol
*
* @param object $msg the XML_RPC_Message object
* @param int $timeout how many seconds to wait for the request
*
* @return object an XML_RPC_Response object. 0 is returned if any
* problems happen.
*
* @see XML_RPC_Message, XML_RPC_Client::XML_RPC_Client(),
* XML_RPC_Client::setCredentials()
*/
function send($msg, $timeout = 0)
{
if (!is_a($msg, 'XML_RPC_Message')) {
$this->errstr = 'send()\'s $msg parameter must be an'
. ' XML_RPC_Message object.';
$this->raiseError($this->errstr, XML_RPC_ERROR_PROGRAMMING);
return 0;
}
$msg->debug = $this->debug;
return $this-><strong>sendPayloadHTTP10</strong>($msg, $this->server, $this->port,
$timeout, $this->username,
$this->password);
}
ん、sendPayloadHTTP10()・・・? (XML-RPCで送る中身のことをペイロードっていうらしい)
/**
* Transmit the RPC request via HTTP 1.0 protocol
*
* Requests should be sent using XML_RPC_Client send() rather than
* calling this method directly.
*
* @param object $msg the XML_RPC_Message object
* @param string $server the server to send the request to
* @param int $port the server port send the request to
* @param int $timeout how many seconds to wait for the request
* before giving up
* @param string $username a user name for accessing the RPC server
* @param string $password a password for accessing the RPC server
*
* @return object an XML_RPC_Response object. 0 is returned if any
* problems happen.
*
* @access protected
* @see XML_RPC_Client::send()
*/
function sendPayloadHTTP10($msg, $server, $port, $timeout = 0,
$username = '', $password = '')
{
(略)
うわっ、ホントだよ。 おれも上鍵さんのパッチをパクろ・・・。
SourceForge.net: php-blog-devs
$req = new HTTP_Request( "http://".$service["host"].$service["path"]);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addHeader( "Content-Type", "text/xml");
$req->addRawPostData( $message->payload);
$http_result = $req->sendRequest();