2011年2月27日

HTTPのPOST処理のサンプル - VBScript

概要

VBScriptでHTTPのPOST処理するサンプルコードを示す。


サンプル

myPost.vbs

Option Explicit

Dim myHttpRequest
Dim myURL
Dim myPostData

myURL = "http://myhost.mydomain"
myPostData = "a=123&b=456"

Set myHttpRequest = WScript.CreateObject("MSXML2.XMLHTTP.3.0")

Call myHttpRequest.Open("POST", myURL, False)
Call myHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
Call myHttpRequest.Send(myPostData)

WScript.Echo(myHttpRequest.responseText)

Set myHttpRequest = Nothing

以上

2011年2月25日

dmidecode(8) - 使い方

dmidecode(8)の使い方の例
概要

DMI(Desktop Management Interface)テーブルを表示するツール
BIOS設定情報などが表示できる

使い方


# dmidecode 2.10
SMBIOS 2.4 present.
53 structures occupying 1904 bytes.
Table at 0x7FCEA000.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
       Vendor: FUJITSU SIEMENS
       Version: 4.06  Rev. 1.08.2550            
       Release Date: 12/15/2008
       Address: 0xE6D10
       Runtime Size: 103152 bytes
       ROM Size: 1024 kB
       Characteristics:
               PCI is supported
               PNP is supported
               BIOS is upgradeable
               BIOS shadowing is allowed
               ESCD support is available
               Boot from CD is supported
               Selectable boot is supported
               EDD is supported
               Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
:

備考

  • RHEL/CentOS4系では、kernel-utilsパッケージ内のコマンドだが、5系、6系ではdmidecodeパッケージに含まれる

sudo(8) の使い方

sudo(8)を実行できるユーザや、コマンドを制御する方法を示す。

デフォルト状態


$ sudo yum check-update
[sudo] password for owner:
owner is not in the sudoers file.  This incident will be reported.
$ sudo yum update
[sudo] password for owner:
owner is not in the sudoers file.  This incident will be reported.

定義追加(最終行に下記1行を追加)


# visudo
…
owner ALL=(ALL) /usr/bin/yum

再度実行


$ sudo yum check-update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
$ sudo yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Update Process
No Packages marked for Update
You have new mail in /var/spool/mail/owner

check-updateだけを許す設定に変えてみる


# visudo
…
owner ALL=(ALL) /usr/bin/yum check-update

再度実行


$ sudo yum check-update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
$ sudo yum update
Sorry, user owner is not allowed to execute '/usr/bin/yum update' as root on localhost.localdomain.


sudoの一部エラーは、セキュリティアタックの可能性としてroot宛メールで通知される


localhost.localdomain :  2月 24 10:08:56 : owner : user NOT in sudoers ; TTY=pts/3 ; PWD=/home/owner ; USER=root ; COMMAND=/usr/bin/yum update

  • 全てのエラーが見たければ、/var/log/secureを見ると良い

2011年2月24日

Linuxドライバー超サンプル

何の機能も無いが、とりあえずドライバーとして組み込めるモジュールを作ってみる。

確認環境

  • CentOS5.5(Intel64)

モジュールのソースコード(ファイル名はtoy_mod.c)

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int toy_mod_init(void)
{
       return 0;
}
static void toy_mod_exit(void)
{
}
module_init(toy_mod_init);
module_exit(toy_mod_exit);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("toy module: no function, no action");
MODULE_AUTHOR(“Nekooyaji”);

Makefile

obj-m := toy_mod.o

コンパイル方法

# make -C /lib/modules/$(uname -r)/build SUBDIRS=$PWD modules

モジュール組み込み

# /sbin/insmod toy_mod.ko
# /sbin/lsmod | grep toy
toy_mod                34304  0

モジュール取り外し

# /sbin/rmmod toy_mod
# /sbin/lsmod | grep toy

メモ

  • MODULE_DESCRIPTION、MODULE_AUTHORは動作上必須ではない
  • MODULE_LICENSEを設定しない場合、insmod時に下記メッセージが/var/log/messagesに発生
    toy_mod: module license 'unspecified' taints kernel.

2011年2月20日

VC Searchをちょこっと改造

WordpressのVC Searchというプラグインを便利で使っている。ただ、楽天市場とは相性が悪いようで、偶に、503エラーを拾ってしまう。

そこで以下の応急改造を施してみた。

変更前(vc_search.php)

1165: $rwsBuff  = file_get_contents($rwsurl );

変更後(vc_search.php)

1165: usleep(500000);
1166: 
1167: $rwsBuff  = file_get_contents($rwsurl );


要は、楽天APIのアクセス前に0.5秒のスリープを入れてみただけ。