2010年12月26日日曜日

Bloggerのテンプレートを変更してみる

テンプレートデザイナー等の新機能が使えるらしいので変えます

rsyncのinclude,excludeで注意すること

とりあえず3点
1.--excludeする前に--includeしておかないと意味が無い
2.あるフォルダ配下のファイルを対象にしたかった場合はフォルダ自体もincludeする
3.include,excludeは同期元ファイルからの相対パス

で例を使って説明します
以下の場合を想定
.
|-- dst
`-- src
    |-- ABC
    |   |-- A
    |   |-- B
    |   `-- C
    |-- a
    |-- b
    |-- c
    |-- d
    |-- e
    `-- f

まずsrcフォルダからdstフォルダへ同期するとします
1の注意点から
↓のようにやっても何一つ同期されません。最初に全部弾いているので駄目
rsync -av --delete-excluded --exclude="*" --include="a" src/ dst/
下記のようにexcludeを後に置けばすればaだけ同期できます
rsync -av --delete-excluded --include="a" --exclude="*" src/ dst/

2の注意点について
ABCディレクトリ配下のみ同期したい場合
こうしてもうまくいきません(excludeで全部弾かれてしまいます)
rsync -av --delete-excluded --include="ABC/*" --exclude="*" src/ dst/
ABC配下のみ同期したい場合はまずABCをincludeします
↓のようにやればOK
rsync -av --delete-excluded --include="ABC" --include="ABC/*" --exclude="*" src/ dst/

3の注意点について
これは言わなくてもご存知かと思います
上記例の --include="ABC" は実際にはsrc/ABCを意味するんですよということ
相対パスになっています

参考リンク
http://blog.livedoor.jp/kurt0027/archives/51808421.html
http://blog.elkc.net/?p=273

2010年12月25日土曜日

2010年12月24日金曜日

紙飛行機を飛ばすゲーム

紙飛行機を飛ばすゲーム
http://armorgames.com/play/7598/flight

←→ 角度調節
SPACE ジェット噴射
R レインボースター
参考リンク
http://blog.livedoor.jp/lkrejg/archives/65520026.html

2010年12月20日月曜日

multitailを調べてみる

multitail messages -I syslog.1
-I でファイルをひとつのウィンドウに混ぜて表示

multitail -l 'ping hoge' -L 'ping foo'
外部プログラムなら-Lで混ぜて表示

-cSオプションで組み込みのカラースキームを適用

表示している最中に
tでステータス表示
Tでログファイルを空にする
hでヘルプ
下記エラーが出たらウィンドウが小さいのが原因なので大きくすればOK
A problem occured at line 511 in function mynewwin (from file term.c):

Failed to create window with dimensions 54x9 at offset -27,-4 (terminal size: 76,24)

Binary build at Dec 10 2009 23:58:27


参考リンク
http://www.kichise.com/modules/pico/other/multitail.html
http://www.vanheusden.com/multitail/

teraterm + screenだとマウスのスクロールが出来ない?

解決策

  1. Ctrlを押しながらマウスホイールをまわす
  2. TERATERM.INIのTranslateWheelToCursorをoffにする


参考リンク
http://d.hatena.ne.jp/orangeclover/20100406/1270564074

2010年12月19日日曜日

CUIでRSSを見てみる

下記参考リンクがすごい参考になったのでちょっとずつ試してみた

* Newsbeuter
適当にRSSへのURLを書いたテキストを用意(ex.url.txt)
url.txtは一行一URLにしておいた
newsbeuter -u url.txt
で起動
RでリロードしてからENTERで適当に読める


  • インターフェイスはmuttに似ている
  • なんかメールを読むようにRSSを読める
  • 既読未読とか分かるし、マーク、検索とか出来て便利
  • 前回読んだ時の状態を~/.newsbeuterに保存しているのでまた読み返すときも便利かもしれない
  • sを押すと記事を保存できたりする

* Snownews
squeezeにパッケージが無かったのでレビュー出来なかった・・・
lennyならある模様

* Canto (旧NRSS)
squeezeにはNRSSもcantoもあるけど公式サイト見るとCantoへ誘導されるのでこっちを使ってみる
何も考えずに下記のコマンドを打つと.cantoが出来る
canto
.canto以下にconf.py.exampleが出来ているのでconf.pyへリネーム後
好きなURLへ変更すれば使える
jkで上下移動 SPACEで記事を読める



  • デフォルトでviキーバインド
  • シンプルな外観
  • gでブラウザに渡すことも出来たりする
  • フィードを更新するときはcanto-fetchコマンドを使う

* rsstail
↓こんな感じで使ってる
rsstail -ldpcHvu http://blog.livedoor.jp/dqnplus/index.rdf
-l でリンクを表示
-d で説明
-p で記事の日付
-c でコメント表示
-H でHTMLタグを除去
-v 冗長オプション
-u に続いてURLを与える

multitailでまとめるには
multitail -cS rsstail -l "rsstail -lpcHvu http://aerial.deko8.jp/feed_ranking1d.xml" -cS rsstail -L "rsstail -lpcHvu http://feeds.feedburner.com/hatena/b/hotentry"
でいけると思ったけど文字化けして駄目だった
しょうがないから各RSSを追記リダイレクト(rsstail -u http://hoge.jp/rss.xml >> /tmp/rss.log)でそのファイルを眺めてる

* まとめ
newsbeuter → メールを読むようにじっくり読みたい人向け
Canto → とりあえずシンプルに読みたい人向け
rsstail → 記事をただ流すだけで良いと向け

迷ったらとりあえずCantoを使ってみると良いかもしれない


参考リンク
http://d.hatena.ne.jp/komamitsu/20090108/1231421139

2010年12月11日土曜日

bashrcが読み込まれない?

useraddでテスト用のアカウント作ったら読み込まれてたので
何でだろうとおもったら下のページに書いてあった
ようはprofileとかなければ呼ばれないらしい
http://blog.jojo.jp/?eid=1013034

呼ばれ方
~/.profile -> ~/.bashrc

2010年12月10日金曜日

screenでウィンドウ番号を入れ替える

Ctrl-a押してから:number [n]
で出来るらしい

参考リンク
http://d.hatena.ne.jp/riskn/20070430/1177961903

CPUの温度とかを参照するには

/proc/acpi/thermal_zone/THRM
とよい
temperatureとか・・・

CUIでmp3等を再生

mplayer で出来た

→ ← でseek
0 9 / * で音量操作
p で一時停止
m でミュート
q で抜ける
I でタイトル表示

mplayer -playlist hoge.lst
hoge.lstにはプレイリストを記述(一行に1ファイル)

2010年12月4日土曜日

DebianのsqueezeにしたらUUIDでfstabが設定されてた

以下UUIDの調べ方

1./devを見る
ls -l /dev/disk/by-uuid

2.blkidコマンドで見る
blkid
vol_idは無くなったらしい

参考リンク
http://ankyo.blog.so-net.ne.jp/2010-01-26

2010年11月28日日曜日

Debian squeezeにtightvncをインストール

tightvncserver(vncserver)で起動
(XvncだけでXだけを起動することも出来るが普通は使用しない vncserverがラッパーになっている)

Xvncのオプションも使えるので

こんな感じで起動
tightvncserver :5 -geometry 1280x1024 -depth 16 -rfbport 6000
ディスプレイ番号5番で画面は1280x1024、色深度16ビット、ポート6000で待機

終了はこんな感じ
tightvncserver -kill :5

パスワードはvncpasswd等で作成しておく
あとはつなげればOK



ちなみにvncpasswdでパスワードを作る際に短すぎるとエラーになる
家で使うので1文字のパスワードでも良いというのなら
こんな感じで-fオプションを使って標準入力から受け取るようにすればOK

-fオプションで起動→aを入力後にCtrl-Dで終了
user@squeeze:~/.vnc$ vncpasswd -f > passwd
a
user@squeeze:~/.vnc$

Debian squeezeで音が出ない

alsaconfが無くなったらしい
alsactl init
でできるらしい

参考リンク
http://d.hatena.ne.jp/toromoti/20100610/1276167033

2010年11月23日火曜日

smbclientで共有リストを表示させる

192.168.0.11がsambaサーバだったとすると
smbclient -L 192.168.0.11

XenをDebian squeezeにインストールしてみる

はやっている様なのでXenを使ってみた
基本的にはDebian Wikiの通りやればOK

1.必要なパッケージのインストール
amd64じゃなかったら686とか自分のPCに合わせる
bridge-utils debootstrapも忘れずに
aptitude -P install xen-hypervisor-4.0-amd64 linux-image-xen-amd64 xen-tools

2.grubの起動順位、設定の変更?
なんか知らんがこうするといいらしい
mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux
update-grub2
echo "" >> /etc/default/grub
echo "# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu." >> /etc/default/grub
echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
update-grub2

3./etc/default/xendomainsを編集して状態保存を無効化
XENDOMAINS_RESTORE=false
XENDOMAINS_SAVE=""

4.ネットワークブリッジの設定
/etc/xen/xend-config.sxpを編集
以下の行のコメントアウトを解除
(network-script network-bridge)

5.VMイメージ作成する際のデフォルト値を設定

今回はLVM上にイメージファイルを作らないのでdir を指定
ここで設定しなくても全部コマンドラインでやるのも可→参考リンク
pygrubっていうのはdom0からカーネルを一々VM上に持っていかなくても済む
仕組み → 参考リンク
dir = /home/xen
size   = 4Gb      # Disk image size.
memory = 32Mb    # Memory size
swap   = 128Mb    # Swap size
# noswap = 1      # Don't use swap at all for the new system.
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = `xt-guess-suite-and-mirror --suite` # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.

gateway    = 192.168.0.1
netmask    = 255.255.255.0
broadcast  = 192.168.0.255

#パスワード作成時に対話的に尋ねる
passwd = 1

mirror = `xt-guess-suite-and-mirror --mirror`
mirror_maverick = http://archive.ubuntu.com/ubuntu

ext3_options     = noatime,nodiratime,errors=remount-ro

pygrub=1

6.イメージファイルの作成
Debian GNU/Linux, with Linux 2.6.32-5-xen-686
で再起動
以下のコマンドを実行
xen-create-image --hostname test1 --ip 192.168.0.20 --scsi --vcpus 1 --pygrub --dist lenny

7.Xenで起動
Debian GNU/Linux, with Linux 2.6.32-5-xen-686 and XEN 4.0-i386
で起動
以下のコマンドを投入
xm create /etc/xen/test1.cfg -c

GRUBメニューまではいったが、
なぜかメモリエラーでカーネルパニックしたOTZ
流石に256MのノートPCじゃ駄目だったかも今回はここまで



あと不要なVMイメージは
xen-delete-image
ってコマンドで削除するといいかも
xen-list-images
で一覧を見れる

参考リンク
http://www.valinux.co.jp/contents/tech/techlib/xen/xen_sp_01.html
http://rayearth.homelinux.net/pukiwiki/?Debian%2FXen
http://www.cs.is.noda.tus.ac.jp/~tatsuya/master_wiki/index.php?Xen%20on%20Debian
http://d.hatena.ne.jp/fujisan3776/20090309/1236576002
http://pocketstudio.jp/linux/?Xen%2FXenFaq%20-%20Xen%20%B8%F8%BC%B0%20Wiki%20%C6%FC%CB%DC%B8%EC%CC%F5

2010年11月13日土曜日

FLASH版のCookie Shared Objectの削除

こういうのとかYOU ONLY LIVE ONCEShared Objectを削除すれば最初からできる

Cookieを削除してもなぜか前回の情報を保持してる?と思ったときは試すといいかもしれない
参考リンク
http://enchanting.cside.com/security/flashcookie.html

2010年11月4日木曜日

ありえない画像検索

文字通りありえない画像を検索します
元はyahooの画像検索らしい
http://eroy.8-bit.jp/gazou/

あとTumblrとかいうのもあった

参考リンク
http://blog.livedoor.jp/darkm/archives/51088800.html

2010年11月2日火曜日

Webプロキシ(初心者にでも出来る串より)

こんなん見つけた
http://anond.pha11.info/archives/5931

仕組みは分からんが凄そうだ
http://openlega.appspot.com/

追記
"Google App Engine Web プロキシ"でググると一杯出てきた

参考リンク
http://googles.hp2.jp/archives/525.html
http://suh45.blog9.fc2.com/blog-entry-92.html

2010年10月31日日曜日

rsshでscp/sftp専用のアカウントを作る

rsshってソフトで実現できるらしい
基本的にはyum install rsshでインストール→/etc/rssh.confを編集でOKらしい
で、sftp,scp専用には出来たけどchroot環境を構築するためのスクリプトmkchroot.shが見つからなかった
yum whatprovides */mkchroot.sh
とかやっても駄目

とりあえずchrootは今回はあきらめた
他にもこんな方法があるらしい→http://d.hatena.ne.jp/hidde/20091215/1260872041
参考リンク
http://d.hatena.ne.jp/h2onda/?of=5
http://www.sdri.co.jp/rssh/faq.html

簡単にRAIDが組めるHDDボックス

Drobo
というらしい

http://journal.mycom.co.jp/articles/2010/09/13/drobo/index.html

2010年10月24日日曜日

プライベートIPアドレスの覚え方

2進数で考えると覚えやすい

まずはクラスの覚え方
クラスA(最初が0で始まるのがAクラス)
10進数: 0.0.0.0-127.255.255.255
2進数: 00000000.00000000.00000000.00000000-01111111.11111111.11111111.11111111 
クラスB(最初が10ならクラスB)
10進数: 128.0.0.0-191.255.255.255
2進数: 10000000.00000000.00000000.00000000-10111111.11111111.11111111.11111111 

クラスC(最初が110ならクラスC)
10進数: 192.0.0.0-223.255.255.255
2進数: 11000000.00000000.00000000.00000000-11011111.11111111.11111111.11111111 

でプライベートIP
クラスA
10進数: 10.0.0.0-10.255.255.255/8
2進数: 00001010.00000000.00000000.00000000-00001010.11111111.11111111.11111111 
subnet: 11111111.00000000.00000000.00000000-11111111.00000000.00000000.00000000 

クラスB
10進数: 172.16.0.0-172.31.255.255/12
2進数: 10101100.00010000.00000000.00000000-10101100.00011111.11111111.11111111 
subnet: 11111111.11110000.00000000.00000000-11111111.11110000.00000000.00000000 

クラスC
10進数: 192.168.0.0-192.168.255.255/16
2進数: 11000000.10101000.00000000.00000000-11000000.10101000.11111111.11111111
subnet: 11111111.11111111.00000000.00000000-11111111.11111111.00000000.00000000

2010年10月16日土曜日

perlで一時ファイルを使用する

#!/usr/bin/perl
use strict;
use warnings;

use File::Temp;
my $temp = File::Temp->new(DIR=>'/tmp',SUFFIX=>'.tmp');
print $temp->filename;
print $temp "hoge";
コンストラクタにDIRを指定すると一時ファイルを作るディレクトリを指定
SUFFIXは一時ファイルの末尾につける文字
UNLINK=>0を指定するとプロうグラムが終了しても一時ファイルを削除しない
$temp->filenameでファイルネームを取得できる
ちなみに$tempはすでにファイルハンドルなのですぐに書き込みができる

※ちなみにnewdirというディレクトリ版のコンストラクタもあるこちらはCLEANUPで自動削除の有無を切り替えできる

参考リンク
http://perldoc.perl.org/File/Temp.html
http://isoya.at.webry.info/200812/article_3.html
http://haginov.blog35.fc2.com/blog-entry-141.html


あとopen関数の第3引数にundefを指定してもできるみたい
http://d.hatena.ne.jp/dayflower/20061225/1167041087

perlで読み書き両用でパイプをオープンしたい

イメージ的にはこんな感じ
例えば$dataの中にS-JISコードのデータがあってnkfでutf-8に直してまた$dataに戻したいと思ったところ
open (FH,"|nkf -w8");
print FH $data;
とすればnkfに渡るが出力がキャッチできない
open (FH,"|nkf -w8|");
とかは出来ない
これについてperlfaq8に載っていた
How can I open a pipe both to and from a command?
の部分

よく分からないがIPC::Open2を使うと良いらしい

perlでルーターからWAN側のIPアドレスを取得してみる

このときに対象にしたルーターはNP-BBRM
#!/usr/bin/perl
use strict;
use warnings;

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
my $req = HTTP::Request->new(GET => 'http://192.168.0.1/Status.htm');
$req->authorization_basic('admin','hoge');
my $response = $ua->request($req);

if ($response->is_success){
 my $data = $response->content;
 $data=~s/<.*?>//g;
 $data=~s/\ //g;
 $data=~/IP.+?(\d{1,3}[\.\d]+)\s/;
 print $1,"\n";
}
else {
 die $response->status_line;
}

2010年10月11日月曜日

バイオハザード4の参考リンク集

攻略チャート(謎解きの解答とかもあるので手っ取り早く進めたい人向け)
http://gamekouryaku.com/bio4/

攻略チャート(マップ付き)
http://www10.plala.or.jp/namikipatty/bio4gc/iegamebio4.html

武器
http://www10.plala.or.jp/namikipatty/bio4gc/bio4ps2/psbuki.html

お宝
http://www.xn--eckm0bye2ad62a.com/item3.html

Wikipedia(クリーチャー一覧等)
http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%82%AA%E3%83%8F%E3%82%B6%E3%83%BC%E3%83%894

改造コード
http://www.unkar.org/read/game12.2ch.net/gameurawaza/1178132223
http://www6.ocn.ne.jp/~ps2/c/bio.html


使用した改造コード ※ちなみに試したのはベスト版
マスターコード
EC878560 1456E79B 
敵一撃死
1C8BB504 3845089C
お金MAX
1CD56854 14BE598C 
HP減らない
1C8BB33C 1496D7C8 
制限時間操作(L2+〇で最大,L2+Xでタイムアウト)
0CD69F8C 1456E625
4CD84450 1456B00C
0CD69F8C 1456E525
4CD84450 1456E7A5

※ちなみにU-3などの首折攻撃で死ぬ場合があります(レバガチャすれば大丈夫)

あと知っておくと良いパズル解説は
双子の墓→3⇒4⇒3⇒3⇒3⇒4⇒4
教会のライト→赤2回、緑3回、青1回操作

THE MERCENARIESの星5つの条件は6万点以上

ddclientでワーニングが出る問題

ddclientで
WARNING: unable to determine IP address
というエラーが出ていた

use=web, if=eth0

use=web
に直したらOK


参考リンク
http://royalwin.blog.so-net.ne.jp/archive/c2300401272-1
http://ubuntuforums.org/showthread.php?t=635409

Debianのbittorrentパッケージをインストール

以下マニュアル

名前
bittorrentダウンローダー - 分散ネットワークを使用したダウンロード

概要
       btdownloadheadless [ option ... ] URL
       btdownloadheadless [ option ... ] filename
       btdownloadcurses [ option ... ] URL
       btdownloadcurses [ option ... ] filename
       btdownloadgui [ option ... ] URL
       btdownloadgui [ option ... ] filename

説明
このマニュアルのページは、簡単に
btdownloadheadless,
btdownloadcurses,
btdownloadgui
オリジナルプログラムがマニュアルを持たないので、
このマニュアルはDebianディストリビューション用に書かれました。
上記のプログラムはP2Pプロトコルbittorrentを使用したファイルのダウンロードを行うものです。
上記すべてのプログラムは全て同じオプションが使えます。


で、この3コマンドの違いは何かと言うと端末の制御の仕方が違うだけ
btdownloadheadless ・・・端末に延々と出力し続ける(tail -f見たいな感じ)
btdownloadcurses ・・・Cursesを使った端末制御見やすい CUIなら通常はこれ
btdownloadgui ・・・GUIで使うならこれXが必要

※ちなみにDebianの場合btdownloadcurses.bittorrentとbtdownloadcursesは同じ(シンボリックリンク)

apt-fileについて

コマンドからパッケージ名を検索するときに便利なコマンド

以下manの(適当な)翻訳
書式
apt-file [ options ] [ action ] [ pattern ]

apt-fileコマンドはAPTパッケージシステム中のファイルを探すことが出来ます。
action には以下の物を使用します

update
パッケージの情報からファイルのリストを再同期します。
パッケージリストの情報はsources.listから持ってきます。

search
ファイルがどのパッケージに含まれるかを検索します。
patternを含むファイルを持っているすべてのパッケージが出力されます。

find
searchのエイリアスです。

list
patternにマッチしているパッケージの中身を出力します。
dpkg -L と違ってインストールされていなくても良いという違いはありますが、
挙動はdpkg -L に非常に近いです。

show
listのエイリアスです。

purge
キャッシュディレクトリにある全てのContents-.gzファイルを削除します。
あと
apt-file list pattern
でpatternパッケージに含まれているファイル一覧を出力することができますが、
patternを含む全パッケージが出力されてしまうため、厳密にこのパッケージの
中身が見たいという場合はdpkg -L の方が良いかもしれません。
あとオプションに-xを指定すると正規表現が使えます

例)
apt-file find nslookup | grep bin # nslookupコマンドを含むパッケージ名を検索
apt-file -x list ^bittorrent$ #bittorrentパッケージ中のファイルを出力

参考リンク
http://d.hatena.ne.jp/rx7/20080830/p1
http://d.hatena.ne.jp/kiririmode/20081119/p1
http://d.hatena.ne.jp/rubikitch/20080406/1207420372

2010年10月10日日曜日

bzrで知ってると便利なコマンド

bzr uncommit
これでチェックインの取り消しが出来る

色付き差分表示
bzr cdiff

履歴付きmv(ただ管理下のファイルをmvしたときは対象フォルダの履歴がそこで終わってしまうため)
bzr mv

前に書いた記事

参考リンク
http://bbs2ch.sourceforge.jp/?page=%B3%AB%C8%AF%BC%D4%B8%FE%A4%B1%BE%F0%CA%F3

2010年10月3日日曜日

crontabに書いてあるdomとdowは何の略?

dow・・・Day Of Week
dom・・・Day of Month

2010年10月2日土曜日

pingで生存確認してからsmbmountする

今まではsmbmountを試して駄目だったら後続の処理を止めてたけど
pingしてからsmbmountすればもっと早くできると思う
こんな感じ
#!/bin/bash
TargetIP=192.168.0.2

ping -c 1 -w 1 $TargetIP > /dev/null || exit 0
mount //$TargetIP/hoge /var/windows/ -o sec=none > /dev/null 2>&1
if [ $? -eq 0 ]
then
        rsync -a --delete /var/windows/ /var/samba/foo/
        umount /var/windows/ || exit 1
else
        exit 0
fi
exit

2010年9月26日日曜日

init.d/とか各ランレベルごとの起動スクリプトについて

前回rep2の話でスタートアップとシャットダウン時に行うスクリプトについて書いた
今回は/etc/init.d/rcを使わずにやる(正式な?)方法で起動時、終了時のスクリプトを実行してみる

まず、Linuxは/etc/inittabの定義に従って、/etc/init.d/rcをランレベルを引数にして実行する。
その後、/etc/rc$runlevel.dの中にあるディレクトリを順番に実行する。$runlevelは0~6の数値
(たとえばrc1.d,rc2.d,rc3.d,rc4.d,rc5.d,rc6.d)
/etc/init.d/rcの中を読めば分かるが、大まかな挙動は以下の通り。

1.現在のランレベルと前回のランレベルを取得する。
2.現在のランレベルに対応するディレクトリのKで始まるスクリプトを探し、前回のランレベルで実行されているなら(頭文字がSで始まるスクリプトが存在しているのなら)それを止める。
3.次に、Sで始まるディレクトリを探し、前回のランレベルで起動していないと判明したらstart、もしくはstopをかける。

ちなみに0,6はstopを引数にしてSから始まるスクリプトを順次実行する。
実行する順番はSもしくはKから始まる次の2桁の数値の若い順。
SとKではKが最初に実行される。

前回のスクリプトをこの方法で実現するなら
下記のようなスクリプトを用意すればOK
init.d/my_script
  rc0.d/K01my_script@
  rc2.d/S99my_script@
  rc6.d/K01my_script@

my_scriptの中身は↓
#! /bin/sh
### BEGIN INIT INFO
#
# Default-Start:     2
# Default-Stop:      0 6
# Short-Description: rep2
### END INIT INFO
#

PATH=/bin:/usr/bin:/sbin:/usr/sbin

case "$1" in
  start)
        # rep2 HDD -> memory
        mkdir /dev/shm/rep2mem
        rsync -av --delete /var/www/rep2mem_bk/ /dev/shm/rep2mem/
    ;;
  restart|force-reload)
        # nothing to do
    :
    ;;
  stop)
        #rep2 memory -> HDD
        rsync -av --delete /dev/shm/rep2mem/ /var/www/rep2mem_bk/
    ;;
  *)
    echo "Usage: /etc/init.d/my_script {start|stop}"
    exit 2
    ;;
esac

exit 0
参考リンク
http://d.hatena.ne.jp/Naruhodius/20100923/1285247505
http://www.fulldigit.net/content/view/91/17/
cronで@rebootっていうのも書けたりするらしい

2010年9月19日日曜日

perlのエラーコードを参照したりする

systemの結果コードは$?で参照できる

以下引用
変数 $@, $!, $^E, $? は Perl プログラムの実行中に
発生した、異なる種類のエラー情報を保持します。
変数はエラーを報告した副システムと Perl プロセスとの「距離」
の順番に並んでいます。
これらはそれぞれ、Perl インタプリタ、C ライブラリ、
オペレーティングシステム、外部プログラムによって検出された
エラーに対応しています。

$@ → evalのエラー
@! → システムコールのエラー closeとか
@^E → システムコールでエラーになったときの詳細な内容が格納されているらしい
$? → system終了ステータスとかCloseとかの終了ステータスを保持する

参考リンク
http://www.perldoc.jp/docs/perl/5.10.0/perlvar.pod.pod

こんなmanもあるんだ

man ascii
アスキーコードの表示

man hier
ファイルヒエラルキーの説明

こういうTips的なもの
http://cb.vu/unixtoolbox.xhtml

自宅サーバーとレンタルサーバーでメールの同期を図る

私の環境は以下のようにレンタルサーバーと自宅サーバーそれぞれでメールを受信している
自宅サーバーは24時間動かしているわけではないため、自宅サーバーが電源OFFした場合はDynDNSのドメインのIPアドレスをレンタルサーバーに設定。逆に電源がONになった場合はその逆でドメインのIPを自宅サーバーへ向けるようにする。
つまりDNSを更新して現用系(自宅)と待機系(レンタルサーバー)でスイッチさせている

でその時に問題なるのはレンタルサーバーで受信したメールをどうやってこちらに移すか?
今回はsftpを使って同期する

userが対象のユーザ、hoge.netがレンタルサーバーのアドレスとする
#!/bin/bash

my_maildir=/home/user/Maildir/
{
cat << BAT
lcd ${my_maildir}tmp
-get Maildir/cur/*
-get Maildir/new/*
-rm  Maildir/cur/*
-rm  Maildir/new/*
exit
BAT
} | sftp   -C \
    -b - \
    -oIdentityFile=/home/user/.ssh/dti_id_rsa \
       -oPort=443 \
    user@hoge.net > /dev/null 2>&1

cd ${my_maildir}/tmp
for i in $( ls ); do
 dst=`echo $i | cut -d: -f 1`
 if [ $i != $dst ] ; then
  mv $i $dst
 fi
 chmod a+rw $dst
 mv $dst ${my_maildir}/new
done

適当な解説
・sftpについて
sftpはバッチモードというのがあり、-bで指定してその後に命令の書かれたファイルを指定します。今回は標準入力から読み込むため-を指定。get rmはftpでおなじみのコマンドで、
最初に-がついてるのはエラーになっても続行すると言う意味です。(curなどにファイルが無い場合はエラーとなる)
ここら辺に具体的な説明が書かれていますが、-Pはポート指定では無いなどこちらの環境と少し違う箇所がありました。man sftpで見た方が良いかもしれません。

・Maildirのファイル名について
 命名の規約は下記参考リンクを参照するとして今回はレンタルサーバーにたまっていた物を新着メールとして処理したいので、ファイル名の:(コロン)以降を取り外しています。
ファイル名は以下のような構造になっています
1234567890.ABCDEFGHI123456789.hostname:2,S

1234567890 → UNIX時間
ABCDEFGHI123456789 → メールごとにユニークな識別文字
hostname → ホスト名
:2 → 普通は:2を指定してそれ以降に意味のあるフラグ文字を続ける
,S → この例だと既読の意味 Thunderbird上で捨てると,STとかフラグが追加される

参考にフラグの例を記載
* Flag "P" (passed): 転送とかしたときに付くらしい?
* Flag "R" (replied): そのメッセージに対して返信した場合につく
* Flag "S" (seen): 既読のメッセージ
* Flag "T" (trashed): 削除した場合につく
* Flag "D" (draft): 下書きを意味する
* Flag "F" (flagged): フラグ付きを意味する ThunderbirdだとスターをつけるとFがつく


参考リンク
http://www.dovecot.jp/wiki/MailboxFormat.Maildir.txt
http://cr.yp.to/proto/maildir.html

2010年9月18日土曜日

OpenOfficeでクリップアートを追加する

こちらから
OOOP-accessories-2.6.0.2.oxtをダウンロードした


参考リンク
クリップアートの追加
http://gigazine.net/index.php?/news/comments/20071031_oxygenoffice_professional/

rsyncで双方向同期するには

--updateオプションで古い更新日で新しい更新日のものを上書きしないようにする
--existingですでに受信側にあるファイルのみを対象とします

これを指定してA→B,B→Aという2回rsyncすれば同期できるはず

標準エラー出力のリダイレクト話

標準エラー出力と標準出力を混ぜたいときに使う
この文法
command > hoge 2>&1
なぜ↓の様に書いては駄目なのか解説する
command 2>&1 > hoge ←これはうまく出ない

まず >&1 の意味は標準出力の出力先を指す
つまり標準出力と同じ場所に出したいときにしていする

間違った例だとなぜ標準エラー出力が標準出力に出てしまうか順番に解説
1.リダイレクトを指定しない場合
デフォルトの画面に出力される 
標準出力先:画面
標準エラー出力先:画面

command

2.標準エラー出力先を標準出力と同じに指定
標準出力先は画面なのでエラー出力を同じに指定してもまた画面になる
標準出力先:画面
標準エラー出力先:画面(現在の標準出力先と同じ)

command 2>&1

3.標準出力先を指定
標準出力先をリダイレクトによって指定する
標準出力先:hoge
標準エラー出力先:画面

command 2>&1 > hoge

つまり 2>&1 という指定はその時点の標準エラー出力を参照するため、まだ標準出力先を変更していない内に変更しても意味がないということ


参考リンク
http://www.fireproject.jp/feature/bash/basic/redirect-pipe.html

2010年9月12日日曜日

aptitudeのパッケージ検討の時のコマンド

r → その提案を拒否 (rejectの意味か?)
a → その提案を承認 (acceptの意味か?)
Enter → 詳細に表示



http://dolphin.c.u-tokyo.ac.jp/~nori1/aptitude-ja/ch02s01s02.html

期待のファイルシステムNILFS2

NILFS2

ざっと調べたら以下の特徴があるらしい
・NTTが作ったらしい
・スナップショットが取れる
・パフォーマンスが良い
・まだ不安定かも

Btrfsも期待できるけど当面はこっちを使おうかな
http://www.nilfs.org/ja/index.html
http://www.kotodama.jp/blog/index.php/2008/03/12/nilfs2
http://plaza18.mbn.or.jp/~moriban/linux/FileSystemBenchmarkResults-02.html

2010年8月31日火曜日

usermodでグループの所属と所属の解除

よく勘違いするのでメモ
~#id testuser
uid=1001(testuser) gid=1001(testuser) 所属グループ=1001(testuser)
~#usersermod -G floppy testuser (floppyグループに所属するように変更)
~#id testuser
uid=1001(testuser) gid=1001(testuser) 所属グループ=1001(testuser),25(floppy)
~#usrmousermousermod -G cdrom testuser (floppyグループからの所属を解除し、cdromグループへ)
~#id testuser
uid=1001(testuser) gid=1001(testuser) 所属グループ=1001(testuser),24(cdrom)
~#usermod -G testuser testuser (セカンダリグループを解除)
~#id testuser
uid=1001(testuser) gid=1001(testuser) 所属グループ=1001(testuser)
~#

-Gを指定してしまうと既存のグループも削除されてしまうので-aオプションを追加すると良い
↓既存に所属しているグループはそのままでadmにも所属する
usermod -G adm -a testuser
参考リンク
http://oshiete.goo.ne.jp/qa/2390264.html

古いノートにXfce4をインストール

aptitudeでそれらしいパッケージをインストール
x-window-system
xfce4
ウィンドマネージャにはSlimを採用した
あと追加で↓をインストールするとデスクトップ環境らしくなるらしい
xfce4-goodies
#tasksel install xfce-desktop

あとXfceから一般ユーザーが電源を切れるようにsudoをインストール
visudoでエディタを立ち上げてから
ALL ALL=(ALL) NOPASSWD: /usr/sbin/xfsm-shutdown-helper
を追加 (こことかに書いてあった)

あとは適当にフォント等をインストール
ttf-kochi-gothic
ttf-kochi-mincho
ttf-mscorefonts-installer
ttf-mscorefonts-installerはcontribパッケージなのでsources.listを編集すること

ちなみにDebian Lennyではdefomaでフォントを管理しているためxorg.confにFontPathを書く必要はない

日本語入力の設定はscim-anthyをインストールすれば
/etc/X11/xinit/xinput.d/配下に適当にインストールしてくれるのでOK

参考リンク
Xfce wiki
Xfce FAQ

2010年8月30日月曜日

DTIのやってるVPS ServersManを試した

使用感はとりあえずいい感じ
WebからOSの初期化とかワンボタンで出来る

とりあえずやったこと
1. sshの設定(パスワード認証の無効化)
2. yum update
3. /etc/sysconfig/i18n を修正 LANG="ja_JP.UTF-8" に変更
4. yum install man-pages-ja.noarch

2010年8月29日日曜日

インターネットの仕組み

インターネットのしくみ
  ∧_∧
  (  ・ω・)
_(__つ/ ̄ ̄ ̄/
  \/     /
     ̄ ̄ ̄\ (エロ画像) ( ZIP ) ( exe )  (個人情報)
          \┗(^o^ )┛┗(^o^ )┛┗(^o^ )┛  ┗( ^o^)┛
            \┏┗    ┏┗   ┏┗      ┛┓
              ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

参考リンク
http://suiseisekisuisui.blog107.fc2.com/blog-entry-1406.html

2010年8月25日水曜日

/etc/cron.daily/aptを使ってパッケージを自動更新

あれは日次でパッケージを自動更新するためのシェルスクリプトらしい

で使い方は
パッケージを自動更新したいのなら

APT::Periodic::Update-Package-Lists "1";
という行を/etc/apt/apt.conf.d/70debconfの最後に記述すればOK
APT::Periodic::Download-Upgradeable-Packages "3";
を追加すれば3日おきにアップグレードできるパッケージをダウンロードだけするようになる
APT::Periodic::AutocleanInterval "1";
こうかけば自動的にキャッシュのクリアをしてくれる

Debian でNFSを設定してみる

1.nfs-kernel-serverをインストール
/etc/exportsを編集
/etc 192.168.0.0/255.255.255.0(ro)
※あとNFSのマウント側では同じUID同士でマッピングされるがrootだけはanonymousでマッピングされるため、no_root_squashをつける
詳しくは→man exports

2.リロード
exportfs -ra
showmount -e

3.クライアント側の設定
aptitudeとかでnfs-commonをインストール

4.マウント
mount 192.168.0.4:/tmp /mnt

5.アンマウント
umount /mnt

6.fstabに書く
192.168.0.4:/tmp   /mnt         nfs    rw,user            0       0
mount -a


参考リンク
http://nawolets.blogspot.com/2009/11/debian-de-nfs.html
http://www.linux.or.jp/JF/JFdocs/NFS-HOWTO/server.html
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/367usenfs.html

2010年8月24日火曜日

システムをRAID5へ移行したときのメモ

1.まずRAID5を構築
※今回は/bootは別パーティションとします

2.作成したmd0へシステムを全コピー
rsync -aHx --exclude='/boot/*' / /mnt


3.GRUBの設定
/boot/grub/menu.lstを編集
# kopt=root=/dev/sda2 ro

# kopt=root=/dev/md0 ro
そんで
update-grubを実行

4./etc/fstabの編集
#/dev/sda2       /               ext3    defaults,errors=remount-ro 0       1
/dev/md0       /               ext3    defaults,errors=remount-ro 0       1



参考リンク
http://omake.accense.com/wiki/LinuxRAID1Transition

2010年8月23日月曜日

2010年8月22日日曜日

あなたのドメインの価値を教えてくれるサイト

ドメインを入れると値段を出してくれる
http://bizinformation.org/jp/

このブログだとこんな感じらしい
pageviewとかvisitorが大体あってるから凄い
Website Value $4,322.16
Daily Pageviews 150
Daily Visitors 30



Gigazine記事

http://gigazine.net/index.php?/news/comments/20100821_bizinformation/

関連記事
BlogChartってサイトでこのBlogのレベルを測定してみる

2010年8月8日日曜日

sshでポートフォワード専用アカウントの作成

1.ログインシェルを/bin/falseのようにすると当然ログインできない
=ポートフォワードできないと思われがちだが・・・


ssh -L 80:192.168.0.6:80 -i /tmp/id_rsa -l hoge 192.168.0.6 cat
こんな感じで指定するとログインシェルを実行する前にcatを実行して止まるので
ポートフォワード専用アカウントが出来るよ

ただし、chroot環境でbinとかコピーしてないと出来ないので
puttyの何もしないコマンドが最強だけどこれどうやってんだ?




追記
-Nオプションってやつを追加すればいいんだった
こんな感じでOK
ssh -N -L 80:192.168.0.6:80 -i /tmp/id_rsa -l hoge 192.168.0.6

あと関係ないけど
ServerAliveInterval ってやつを指定して定期的にパケットを投げると切れないらしい

IS02を買ったからガラケーから電話帳の移行

W43K→からIS02への移行をした

1.W43KにマイクロSDを挿して電話帳を保存

2.スマートフォンアドレス帳移行ツールでIMPORTすればOK

ちなみにW43Kのアドレス帳はvcf形式になっていた
csvに変換してから適当に編集してからIS02にIMPORTした
vcf→csv
#!/usr/bin/perl
use feature qw(say);
use warnings;
use strict;

our %date;
our @order;
while (<DATA>){
 chomp;
 $date{$_}=1;
 push (@order,$_);
 print "$_,";
}
print "\n";

my $infile=shift || "20100801.vcf";

open (FH,$infile) or die $!;
my %hash;
while (<FH>){
 chomp;
 my ($key,$value) = split (/:/);
 &check($key);
 unless (defined $hash{$key}){
  $hash{$key}=$value;
 }
 elsif ($key eq "EMAIL") {
  $hash{"EMAIL2"}=$value;
 }
 else {
  die "Error!";
 }
 if ($key eq "END"){
  for (@order){
   $hash{$_} ||="";
   print "$hash{$_},";
  }
  print "\n";
  %hash=();
 }
}
close FH;

sub check {
 unless ($date{$_[0]}){
  die "Data Error -> $_[0]";
 }
}

__END__
BEGIN
VERSION
N
FN
SORT-STRING
TEL;TYPE=WORK
TEL;TYPE=CELL
TEL;TYPE=PCS
TEL;TYPE=HOME
TEL;TYPE=FAX
EMAIL
EMAIL2
BDAY
X-GN
END


csv→vcf
#!/usr/bin/perl
use feature qw(say);
use warnings;
use strict;

our @order;
while (){
 chomp;
 push (@order,$_);
}

my $infile = shift || "adress.csv";
open (FH,$infile) or die $!;
$_=;
while (){
 chomp;
 my @list=split (/,/);
 s/^\"(.*)\"$/$1/ for @list;
 my $i=0;
 for (@order){
  print "$_:".$list[$i]."\n" if (defined $list[$i] and $list[$i] ne "");
  $i++;
 }
}
close FH;


__END__
BEGIN
VERSION
N
FN
SORT-STRING
TEL;TYPE=WORK
TEL;TYPE=CELL
TEL;TYPE=PCS
TEL;TYPE=HOME
TEL;TYPE=FAX
EMAIL
EMAIL
BDAY
X-GN
END

2010年8月1日日曜日

2010年7月19日月曜日

sshポートフォワード専用アカウントを作成したときのメモ

ここではそのポートフォワードだけのユーザ(制限ユーザをhoge)とする

1.ユーザの作成
useradd -s /bin/rbash -m hoge
passwd hoge

rbashを使うためには/etc/shellsに追加されていることを確認する
→参考

2.所有者,パーミッション,PATHの変更
cd /home/
chown -R root:root hoge/
chmod -R 755 hoge/
cd /home/hoge/
echo "export PATH=''" >> .bashrc

3.chroot環境の構築
chroot環境のため必要なものをコピー
debian:/home/hoge# ls -l
合計 16
drwxr-xr-x 2 root root 4096 2010-07-19 17:49 bin
drwxr-xr-x 83 root root 4096 2010-07-19 17:48 etc
drwxr-xr-x 2 root root 4096 2010-07-19 17:49 lib
drwxr-xr-x 2 root root 4096 2010-07-19 17:50 lib64

4./etc/ssh/sshd_configを編集
Match User hoge
ChrootDirectory /home/hoge

※chrootされるからといってホームディレクトリを/にする必要はなく/home/hogeのままで問題ない

参考リンク
http://blog.livedoor.jp/nue2501j/archives/51436165.html
http://ja.528p.com/linux/centos/SE006-chroot-login.html

teratermでsshの自動ログインマクロ

connect 'debian:22 /ssh /2 /user=hoge /passwd=hoge /auth=password /W="HOGE"'
debianっている鯖にログインするとする
こんな感じで書いておけば良いらしい
userがログインユーザー
passwdがパスワード
authが認証方式
Wがウィンドウタイトル

squid3を試してみた

* Debian で squid3を試す

aptitudeとかでsquid3をインストール

以下squid.confの設定
1.アクセスリストlocalnetを有効化
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

2.cachemgr3.cgiを見るための設定と普通のアクセス設定
http_access allow manager localnet
http_access allow localnet

いずれもdenyの前に置くこと

3.ポートの変更
http_port 8080

4.各種設定
cache_mem 20 MB
maximum_object_size_in_memory 256 KB
cache_dir ufs /var/spool/squid3 4000 32 256
maximum_object_size 18000 KB
#icp_port 3130 #無効化
forwarded_for off

5.あとcachemgr.confも変更したポートに合わせる
localhost:8080

なんかあったらとりあえずログを見ること
/var/log/messages
/var/log/syslog
/var/log/squid3/*

※あと注意点
NetBIOS名で指定しないことcachemgr3を操作しようとしないこと
↓は駄目
http://jitaku:8000/cgi-bin/cachemgr3.cgi
↓はおk
http://192.168.0.11:8000/cgi-bin/cachemgr3.cgi

使った感想は特に昔と変わんないかな・・・

bzrでvimdiffを使う

前回はWindowsで使う方法を紹介したが、Linuxで使う方法を紹介。


1.最新のリポジトリからソースを取得
bzr branch lp:bzr-vimdiff

2.ディレクトリへインストール
mkdir -p ~/.bazaar/plugins/vimdiff/
cp bzr-vimdiff/__init__.py ~/.bazaar/plugins/vimdiff/


3.使い方
例)リビジョン18から19までの差分を表示
bzr vimdiff -r18..19 cron.daily/ore_ntpdate

公式サイト
https://launchpad.net/bzr-vimdiff

2010年7月4日日曜日

Bazaar Explorerでvimdiffを使えるようにする設定

設定→ユーザー設定

・一般タブではエディタを指定(ここではgvimを指定)
※gvim.exeが使えるようPATHを通す必要があります
・エイリアスにはgvimdiffを指定(コマンドラインでdiffした時に便利)


・差分には↓の様に設定するとGUIからもgvimdiffができる

ちなみに設定ファイルは
↓にあった
C:\Documents and Settings\<user>\Application Data\bazaar\2.0\bazaar.conf
※GUIの設定はqbzr.confを編集すること


参考リンク
http://d.hatena.ne.jp/itsumo/

screenにウィンドウリストのタブを表示

.screenrcに以下を追記すればOKらしい
自分はcaptionよりもhardstatus alwayslastlineの方が良かったので
↓を使ってる(captionにするとバッファ毎にステータスラインができる)
hardstatus alwayslastline "%{= wg} %-w%{=bu dr}%n %t%{-}%+w %= %{=b kw} %Y/%m/%d %0c"

あと分割色を指定するために↓を書いておくといいかも
sorendition "+rb .G"

ちなみに自分の.screenrcはこんな感じ
startup_message off
hardstatus alwayslastline "%{= wg} %-w%{=bu dr}%n %t%{-}%+w %= %{=b kw} %Y/%m/%d %0c"
sorendition "+rb .G"
vbell off


参考リンク
http://d.hatena.ne.jp/winebarrel/20070223/p4
http://www.tees.ne.jp/~sin-x/200406a.html#0102c
http://shyouhei.tumblr.com/post/313410522/screenrc

2010年7月3日土曜日

2010年6月20日日曜日

Bazaarを使ってみたので分かった事のまとめ

Mercurialを使ったことがあるならすぐ慣れると思うけど
Mercurialは単一のリポジトリでブランチを管理できるけどbzrは切り離す必要があるということは注意
* マニュアル
公式マニュアル
http://doc.bazaar.canonical.com/ja/
Bazzar Wiki
http://www19.atwiki.jp/bazaar/pages/1.html

* Logの参照
1から3までのログを参照
bzr log -r 1..3
今日の変更を参照
bzr log -r today
最新の変更を参照
bzr log -r last:
ちなみにbzr log -vとやると変更ファイル一覧が見れる

* 現在のリビジョンを確認
bzr revno

* リポジトリの情報を表示
bzr info

* ブランチからmerge
bzr merge /tmp/hoge

* push/pull
ブランチから変更を送信/取得

* ブランチを作成
mercurialと違ってブランチはリポジトリも切り離す
必要がある
bzr ./ /tmp/hoge
http://d.hatena.ne.jp/methane/20090825/1251175889

* 無視リスト
bzr ignore "hoge"
これで.bzrignoreに追加される(手動で追加しても良い)
デフォルトでワイルドカードが有効
例) classの拡張子を無視
bzr ignore "*.class"
!を最初につけると例外を追加できる
例)~で終わるファイルを無視しない (*~はデフォルトで無視リストに入っている)
!*~
RE:をつけると正規表現が使える
例)libディレクトリは以下の.oファイルを無視
bzr ignore "RE:lib/.*\.o"
ちなみにbzr ignoredで実際に無視しているファイルを確認できる
※一度管理下に置かれてしまったファイルは無視できないため、bzr rm --keepで一旦削除して下さい

* Web Interface
loggerhead ってのがあった
aptでインストール serve-branchesで起動

* 共有リポジトリ
bzr init-repo hoge/
bzr init hoge/
とかで開始
http://doc.bazaar.canonical.com/bzr.2.1/ja/user-guide/publishing_a_branch.html

* 指定したリビジョンへ戻す
bzr revertで最新コミットからの状態を取り消す(bzr statで修正が検地できる箇所をすべてなかったことにする)
bzr uncommit で最後のコミットを取り消す
bzr revert -r 19 で19番目のリビジョンへ全体を戻す

http://doc.bazaar.canonical.com/bzr.dev/ja/user-guide/undoing_mistakes.html

LWP::UserAgentを使ってみる

UserAgentとRefererを設定して診断君を取得する
参考リンク
http://search.cpan.org/~gaas/libwww-perl-5.836/lib/LWP/UserAgent.pm

#!/usr/local/bin/perl
use LWP::UserAgent;
use HTTP::Headers;
use feature qw(say);
$ua = LWP::UserAgent->new (
timeout => 5,
agent => 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)'
);


$ua->default_header(
'Referer' => "hoge",
'Accept-Language' => "no, en");
$res=$ua->get('http://taruo.net/e/');
if ($res->is_success){
say $res->code;
say $res->message;
say $res->content;
}

2010年6月18日金曜日

モニタの電源をsettermでオフに出来ない場合

vbetool というのがあるらしい
https://forums.ubuntulinux.jp/viewtopic.php?id=3477


vbetool dpms off
で画面消えた
普段はコンソールを使わないので/etc/init.d/rcの先頭に書いておいた

if [ "$1" = "2" ]
then
vbetool dpms off
fi

前回書いた方法でもできるけど場合によっては完全にきれないことがあるっぽい

2010年6月13日日曜日

hg diffが見難いのでvimdiffに変更する

.hgrcに以下を追記すればおk
[extdiff]
cmd.vimdiff = vimdiff

後はhg diffとやるところで
hg vimdiffと打ってみよう

RAID1を利用してディスクコピー

例えば/dev/hdd1の内容を丸々/dev/hdd2にコピーしたいと思った場合

1.縮退モードでRAID1を構成する
mdadm -C /dev/md0 -l1 -n2 /dev/hdd1 missing

2.コピー先のhdd2をアレイに追加
mdadm /dev/md0 -a /dev/hdd2

3.アレイの再構築が終わるまで待つ
cat /proc/mdstat

4.アレイを停止
mdadm -S /dev/md0

5.super-blockを削除
mdadm --zero-superblock /dev/hdd[12]

ディスクコピー完了

sources.listを編集してunstableパッケージと混在させる

http://mikilab.doshisha.ac.jp/dia/research/report/2005/0811/001/report20050811001.html
↑を参考にして/etc/apt/sources.listに下記2行を追加
deb http://ftp.jp.debian.org/debian/ sid main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ sid main contrib non-free
/etc/apt/apt.conf.d/70debconfに下記を追加
APT::Default-Release "stable";
apt-getでunstableのパッケージをインストールするにはパッケージ名の後ろに
バージョンも明記するか、こんな感じで-tオプションとかあるらしい
apt-get install -s -t unstable hoge

で、aptitudeでやるには
パッケージ一覧を更新→パッケージを選択→下の方を良く見ると選べるようになってるのでそれ選択して+とか押す
↓の例だと1.5がstableで1.6がunstable

C/MigemoをMSVC 2010でコンパイルしてみる

vimにインストールするためMSVC 2010でコンパイルしてみた
まずは↓からMicrosoft Visual Studio Express C++をダウンロード&インストール
http://www.microsoft.com/japan/msdn/vstudio/express/
(ちなみにインストールするとメイリオフォントもインストールされる Firefoxとかだと文字がにじむサイトとかでるかも・・・)

そんでkaoriyaさんのHPから「ソースコード 1.3(予定) 開発版」をダウンロード解凍して cmigemo-1.3c\compile\vs2003のCMigemo.slnをMSVS 2010で開く→変換ウィザードでプロジェクトを変換
プロジェクトを開いたらReleaseに変更


そんでCMigemoを右クリック→リビルドすると cannot open include file 'afxres.h'というエラーが出るのでこんな感じで直す

修正前
#include "afxres.h"
修正後
#include
#define IDC_STATIC -1
あとはvs2003\CMigemo\Release\CMigemo.exeとvs2003\MigemoDLL\Release\migemo.dllを保存してvimにインストール

辞書ファイルはCygwinで作成するかkaoriyaさんの「バイナリ(DLL) 1.2 リリース版 for Windows 」をダウンロードしてもおk

ちなみにmigemo.vimは1.2版のを使った方が調子が良かった

2010年6月10日木曜日

胃の薬でよく効くやつは

セルベックスらしい

市販品だとセルベールというらしい

2010年6月6日日曜日

googleの左うざいに関して

FirefoxのUser Agent Switcherをインストール

UAをIE6に設定この状態で
IE6のUAはこれ
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
http://www.google.co.jp/
を開いてみよう


もとのGoogleが表示される
うざい左も表示されない

UAを変えなきゃいけないから実用性はなさそう

2010年5月30日日曜日

FLVとかmp4とかを音楽ファイルに変換

Pazera Video Converters
というソフト
インストールとか面倒な作業はいらなくて解凍すればすぐ使えて便利

ipodとかPSPとか選べる


 これが変換画面



参考リンク
http://www.forest.impress.co.jp/article/2008/02/15/pazeravideo2flash.html

2010年5月23日日曜日

Google Analyticsで特定のCookieを持つクライアントを集計対象外にする

Googleのヘルプにはこのように書いてあるが、
そもそも↓を書いても
<body onLoad="javascript:pageTracker._setVar('test_value');">

pageTrackerオブジェクトが定義してなかったのでエラー履いてた
(Firefoxならツール→エラーコンソールでJavaScriptのエラーを確認できる)

で結局どうしたかというとここに書いてあるコードを追加してうまくいった
なんだか分かりにくい・・・
Cookieを見ると_utmvという名前でtest_valueを持つCookieが出来てたたぶん成功だろう

あとこのBloggerでこのクッキーをセットするページを作る手順は↓とか参考にするといいかも
http://markopee.blogspot.com/2008/02/google-analytics_10.html

参考サイト
http://rewish.org/tools/ga_js_cookie
http://wordpress.f-tools.net/wordpress-seo/773.html

2010年5月22日土曜日

Google Analyticsを使ってみる

昔ニンジャツール使ってて、なんか面白そうだからココロを使ってたが、
どうやら終了するみたいなので新しいアクセス解析ツールを探してた。
で有名なGoogle Analyticsを使ってみる
使い方は簡単でGoogleのアカウントを持っていればすぐ始められる。
解析のコードはheadタグの終了前に置けとのことなので、ブログサービスによっては設置できないところもあるかもしれない。
http://www.google.com/support/analytics/bin/answer.py?hl=ja_JP&answer=174090

あとリアルタイムにアクセス解析してくれる
Woopraというのもあるらしいので暇があったら使ってみるかも
GIGAZINE記事

スーパーボンバーマン5を100%クリアすると・・・

100%達成のご褒美?に秘密のパスワードを教えてくれる


100%達成のためのルート攻略はこちら
http://2nd.geocities.jp/donoidmosiyousareteta/3-11.htm

Mercurialで変更ファイル一覧が見たいので1.5.2に上げてみた

ここからダウンロード
dpkg -i mercurial_1.5.2-1_amd64.deb
でもいいけど依存関係とかめんどくさいので今回はリポジトリの変更でやってみる
/etc/apt/sources.list
を編集し
deb http://ftp.jp.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ lenny main contrib non-free
となっているのを
deb http://ftp.jp.debian.org/debian/ sid main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ sid main contrib non-free
と変更あとは
aptitudeでアップデートかければ新しいMercurialを使える

新しいバージョンだとヘルプとかが翻訳されていていい感じ

変更されたファイルの一覧を見るコマンドとかも追加されている
http://d.hatena.ne.jp/Decchi/20100213/1266078355

Debian LennyでSAMBAのnmbdが起動しない件

Linuxでnmbdが起動しないときがある
でもsmbdは起動してる・・・・
/etc/init.d/sambaのスクリプトの中に
ps auxとか入れてみるとstart-stop-daemonは走ってるけどプロセスが始まらないみたい・・・

でいろいろ調べてるうちにこのフォーラムで話してたこれっぽい気がする

もうそういうことにしておこう面倒だし

Debianフォーラムでも話してるし

とりあえず
/etc/rc2.d/S99stop-bootlogd
の20行目あたり(/etc/init.d/bootlogd stopの下)に
/etc/init.d/samba start
を追加しておいた

init.dスクリプトの書き方

http://surf.st.seikei.ac.jp/~nakano/linux/init.d.html

無線LANを中継する機能の事をなんと言うか

WDSというらしい
Wireless Distribution System
アクセスポイント間通信

2010年5月17日月曜日

バックアップツールについてまとめてみた

以下のバックアップツールがあるらしい

* dump/restore
dumpというext3しか対応してないがまとめてひとつのファイルにしてくれるツール

* afio
tar+gzipよりはいいかと・・・

* rsync
あるディレクトリと同期を取る

* unison
双方向同期に対応している

* pdumpfs
windows環境にもあってすぐ使えて便利
日付ごとに取るならこれが簡単

* rdiff-backup
diffして差分バックアップするときに使う
rsyncじゃだめなのかなぁ

* duplicity,
暗号化に対応したバックアップソフト

* amanda
よりシステマチックにバックアップしたいときに使うといいかも
最初の設定はめんどいかも

* bacula
amandaに似てるかも初期設定はちょっと敷居高いかも

スーパーボンバーマン5のチートコード

改造コード
無敵
1P 7E15A205
2P 7E15A305

スピード
7E15D2FF

火力MAX
7E17CA0A

爆弾の数
7E4EBD0A

リモコン爆弾
7E4ED50F

2010年5月16日日曜日

mdadmでメール送信メモ postfix

mdadmが動いているAサーバーからBサーバーに(relay)転送したい
とりあえず以下のように設定192.168.0.11が転送サーバーとする
relayhost = [192.168.0.11]:25

しかしsmtpd_helo_restrictionsが転送サーバーに設定されているため
Aサーバーのホスト名がFQDNでないため拒否されてしまう

1.↓のように設定する(中括弧を忘れずに)
mtp_helo_name = [192.168.0.5]

2.外部PGを使って動的に変更
参考リンク
milter_helo_macros

3.Bサーバーの方のsmtpd_helo_restrictionsを設定する
こことかここに書いてある
smtpd_helo_restrictions = permit_mynetworks,reject_non_fqdn_hostname

他にもcheck_helo_accessを設定する方法もある

ちなみにDebianの場合モニタモードで動いているプロセスは
ps aux | grep mdadm
で確認してみると分かる
/etc/init.d/mdadmの方を再起動すれば設定ファイルが読み込まれる

設定ができたら↓のコマンドで送信できるか試してみると良い
mdadm --monitor --scan --test -1

2010年5月15日土曜日

mdadmでRAID構築(まとめ)

* RAIDの構築
* fdisk等を用いてパーティションを作成
(このときのパーティションタイプはfd(Linux RAID)にしておくと分かりやすい)

* RAIDの構築
# mdadm -C /dev/md0 -l5 -n3 /dev/hdd[123]
* -Cは新規作成時に指定するオプションで--createと同じ意味
* /dev/md0は最終的に出来上がるRAIDデバイスを指定する(無くても勝手に作ってくれる)
* -l5はRAIDレベルを表す 0,1,5,6が指定可能 --level=raid5と指定しても同じ意味
* -n3はデバイスの数(HDDの数) --raid-devices=3と指定しても同じ
* /dev/hdd[123]はRAIDを構成するHDD この例では単一のHDDで構成しているが本当は/dev/hd[bcd]1みたいに物理的に違うデバイスを指定する

* スペアディスクの追加
# mdadm /dev/md0 --add /dev/hdd4
mdadm -D /dev/md0でスペアディスクが存在することを確認できる

* RAIDの監視
* procから見る
cat /proc/mdstat
(watch -n 1 cat /proc/mdstat みたいにやると1秒ごとにこのコマンドを発行してくれるので便利)

* 詳細に見る
mdadm -D /dev/md0


* RAIDの再構築(HDD故障時の対処)
* 故障マークを付ける
# mdadm /dev/md0 -f /dev/hdd1
スペアディスクがあるなら再構築が始まるないなら交換する

* RAIDアレイから削除する
# mdadm /dev/md0 -r /dev/hdd1
この後ディスクを交換する

* アレイに追加
# mdadm /dev/md0 -a /dev/hdd1


* RAIDの解除
* アレイの停止
# mdadm -S /dev/md0

* スーパーブロックの削除
# mdadm --zero-superblock /dev/hdd1


* その他
* 以前存在していたRAIDデバイスを再構築しデータをサルベージこの辺(KNOPPIXでの認識)を参考にした
# mdadm -A /dev/md0 /dev/hd[efgh]1

* /etc/mdadm/mdadm.confファイル
# mdadm -E --scan >> /etc/mdadm.conf
こうしてアレイ情報を書き込むといいらしい
カーネルから自動起動の場合は意味なし

* Debian Lennyの場合カーネルから自動で読み込むモードとか指定できる
# dpkg-reconfigure mdadm
これで再設定する
(カーネルで自動起動した場合は/etc/mdadm/mdadm.confは必要ない)

*2ディスク壊れたら強制的に起動させる
mdadm -A /dev/md0 -u 3fee8ddc:fc710c65:daa5f7c5:4109bf44 --run --force

参考リンク
mdadm(8) ver.1.5 man page [日本語]
福岡大学 mdadm wiki
「mdadm」によるRAID5の構築

2010年5月9日日曜日

smbmountでWindowsの共有フォルダをマウントする

想定する環境はSoukoドライブがフルアクセスで共有されている場合

コマンドラインからマウントするなら↓
smbmount //192.168.0.2/souko\ \(S\)/Linux/dump /mnt -o sec=none

/etc/fstabに書くなら↓
//192.168.0.2/souko\040(S)/Linux/dump /mnt smbfs rw,defaults,sec=none 0 0

ちなみに前回の時にはオプションに-o guestってやってたけどこれだと「Warning: mapping 'guest' to 'guest,sec=none'」というwarningが出るので直した


あとfstabのファイルパス中にスペースを入れる場合は\040と記述すればおk

man fstabより抜粋
2 番目のフィールド (fs_file) は、ファイルシステムのマウントポイントを記
述する。スワップパーティションの場合、このフィールドは ‘none’ と明記 す
る必要がある。マウントポイントに含まれている空白は、‘\040’ のようにエス
ケープできる。

参考リンク
http://d.hatena.ne.jp/adsaria/20080114/1200328063
http://ksugita.blog62.fc2.com/blog-entry-23.html

2010年5月8日土曜日

rsyncを(ほぼ)毎日やるのでスクリプトを書いた

最初にYYYYMMDDのディレクトリにフルバックアップする作業は手作業でやる必要がある
#!/usr/bin/perl
use feature qw(say);
use warnings;
use strict;

### INITIAL SETTING ##########
our $BACKUP_DIR="/mnt";
our $EXC_FILE="/mnt/exc.txt";
##############################

if ($BACKUP_DIR!~/\/$/){
$BACKUP_DIR.="/";
}

chdir $BACKUP_DIR or die $!;
my ($today,$target);
$today=`date +%Y%m%d`;
chomp $today;
say "*** START BACKUP!!! ***";
system "mkdir $today 2> /dev/null";


{
#前回バックアップディレクトリの探索
opendir DIR,"./" or die $!;
my @list;
@list = readdir DIR;
close DIR;
@list = grep {-d $_ and !/\./} @list;
$target="";
for (reverse sort @list){
next if (!/\d{8}/);
$target=$_;
last if ($target ne $today);
}
}


my $rsync_cmd = << "EOF";
rsync -av --delete-excluded \\
--exclude-from=$EXC_FILE \\
--link-dest=/mnt/$target/ \\
/ $BACKUP_DIR$today/
EOF

print << "MESSAGE";
Today -> $today
Previous -> $target

__ exec command __
$rsync_cmd

Run rsync OK? (y/n)
MESSAGE

my $input=<STDIN>;
chomp $input;

if ($input eq "y"){
say "rsync run!";
exec $rsync_cmd;

}
else {
say "rsync cancel!"
}

2010年5月5日水曜日

サクラエディタのブックマークの設定はどこにあるか?

C:\Program Files\sakura\sakura.iniの
szMarkあたりがそれっぽい
サクラエディタ全終了→sakura.ini編集→該当ファイル読み込みでOK

rsyncで差分バックアップ

rsyncで差分バックアップするにはcompare-dest、copy-dest、link-destのどれかを指定して前回のファイルを指定します。
たとえばしたのようにすると差分のあったファイルのみバックアップされます。
(なのでこのバックアップした時点のsorceフォルダを復元したいならdstにdst2を上書く)
rsync -av --delete-excluded --compare-dest=/root/dst/ /root/sorce/ /root/dst2/

↓のようにすると差分の無いファイルは転送を行わずに元ディレクトリdstからコピーします
ローカルコピーだとあまり意味はありません
rsync -av --delete-excluded --copy-dest=/root/dst/ /root/sorce/ /root/dst2/

↓のようにすると差分の無いファイルは前回のもののハードリンクになります
ディスク容量を節約できて便利です
rsync -av --delete-excluded --link-dest=/root/dst/ /root/sorce/ /root/dst2/


参考リンク
http://www.itmedia.co.jp/enterprise/articles/0804/25/news034.html

2010年5月4日火曜日

rsyncでバックアップしてみる

想定する環境はシステムディレクトリが/として/mntに他のHDDがマウントされているときです
何も考えずに
rsync -av --delete / /mnt/201005004/
みたいにしてしまうと

/mntにファイルを書き込んだものをrsyncがまたバックアップして・・・というようになりディスクが無駄になります

rsync -av --delete-excluded --exclude='/mnt/*' / /mnt/201005004/
このようにするとうまくいきます。
除外ファイルを/mntと指定してもできますがその場合ディレクトリが作成されないので一応このようにしました。
delete-excludedオプションは除外されたファイルを送信側で削除するオプションです。今回は意味がないですが、前回はあったが、今回は除外したファイルを削除したい!といったときに便利です。
delete-excludedオプションはdeleteオプションも含んでいます

あとこちらの方などの方法を見るとsysとprocディレクトリはバックアップしなくても大丈夫そうです。
実際にdumpで取ったフルバックアップファイルを見てもそこは空になっていました。
まとめると↓のコマンドでおk
# today=`date +%Y%m%d`
# mkdir $today
# echo "- /sys/*" >> exc.txt
# echo "- /proc/*" >> exc.txt
# echo "- /mnt/*" >> exc.txt
# rsync -a --delete --delete-excluded --exclude-from=/mnt/exc.txt / /mnt/20100505/
※この/mntなどは第一引数で指定したディレクトリを/とみなした相対パスです。
rsync -av --exclude-from=exc.txt /mnt /hoge
などとした場合は/mnt/mntが除外対象となります
参考リンク
http://www.infoscience.co.jp/technical/rsync/rsync.html

dumpコマンドで取ったバックアップをリストア

バックアップしたシステムディレクトリを丸ごとリストアするには
インストールディスクでboot→レスキューモードを選択(Advanced optionsから選択できます)→「インストール環境内でシェルを実行」
/targetに選択したシステムディレクトリがあります。
fsckとかフォーマットとかやる
/targetに該当のフォルダを展開
/restoresymtableを削除しておわり

ディレクトリを移すときはcp -aを指定することcp -prだけでは不十分ハードリンク処理が不十分なので・・・詳しくはこちら

参考リンク
http://chiji.atnifty.com/server/other/ext3backuprestore.html
http://debian.fam.cx/index.php?install

2010年5月3日月曜日

dumpコマンドでバックアップ

まず、この辺を参考にするとシングルユーザーモード→fsckをかけてからやるのが恒例みたいなので、その通りにやる
起動していないのならGRUBメニューのSingle User Modeを選ぶ
起動してないのなら↓のコマンドでランレベルを1に設定
# init 1; exit

あとは適当にumountしていくdevと/(ルート)以外をumountしたら↓のコマンドでリードオンリーで再マウント
# mount -r -n -o remount /
終わったら書き込みありで再マウント
# mount -w -n -o remount /

テープデバイスが無いのでファイルにバックアップなんか適当なディスク装置を/mntにマウントしているとして
# cd /mnt
# dump -0 -uf dump0.dat /
※-uオプションをつけることによってバックアップした日次を/var/lib/dumpdatesに記録している
※対象ディレクトリを/としているが/dev/hda1などと指定してもOK
DUMP IS DONEが出たら終わり
次に差分バックアップをする ↓のコマンドを参照
dump -1 -uf dump1.dat /

差分なのでファイルサイズも小さいし、時間も短いはずです

あと覚えておくといいオプションとして-zという圧縮オプションがあります
こんな感じで使用します
dump -z6 -0uf dump0.dat /dev/hda1

リストアにはrestoreコマンドを使います↓のコマンドで
差分ファイルを眺めることが出来ます
restore -tvf dump1.dat

リストア ※restoresymtableが必要なので必ずレベル0(フルバックアップしたものから展開して下さい)
restore -rf dump0.dat

まとめ
dumpコマンドはバックアップしてひとつのファイルにまとめてくれるというツールです。同じようなバックアップツールにrsyncがありますが、こちらと違うのはアーカイブしていくれるということ(rsync+tarのような動作)。追加されたファイルまで同期しないということです。例えばrestoreコマンドでリストアするときに既にあり、バックアップファイルには無いファイルを消すことは無いです。(フルバックアップした後にありレベル1バックアップの時点で削除されたファイルなどをリストアした場合はちゃんと消えます)

リストアはこちら
参考リンク
http://landisk.kororo.jp/debian/08_backup.php
http://www.atmarkit.co.jp/flinux/rensai/root05/root05c.html
http://www.linux.or.jp/JF/JFdocs/dump-restore-mini-HOWTO.html
http://www.miraclelinux.com/technet/document/linux/training/2_3_2.html

レジストリまで追跡して確実にアンインストール Revo Uninstaller

Revo Uninstaller
というらしい

参考リンク
http://www.forest.impress.co.jp/article/2007/05/29/revouninst.html

2010年5月2日日曜日

LGのM237WS-PMを買った

液晶モニタで
フルHD 23インチ
外部入力を小さく表示するPIP機能搭載だそうです
結構いい感じ
http://www.yomiuri.co.jp/net/newproducts/related/20090721-OYT8T00183.htm

2010年5月1日土曜日

スーパーマリオブラザーズ 3-1でやる無限増殖

なんで今更こんな投稿するか微妙だけど一応やり方

SFCのスーパーマリオコレクションでやってみた

1.まず二匹いるノコノコの最初を倒すかスルーして↓の画像のように待っている
待っている位置はどこでも良い


2.ノコノコがマリオが居た位置に落ちてくる直前で踏めるタイミングでジャンプする。
踏んだ後は続かないかもしれないのでBボタンを連射しておくと良いかもしれません



参考リンク
永井先生がやった無限増殖 8:55あたりから


【ニコニコ動画】永井兄弟のスーパーマリオブラザーズ Part2
【ニコニコ動画】永井兄弟のスーパーマリオブラザーズ Part3

2010年4月29日木曜日

Dovecotの認証方式をCRAM-MD5に変更する

dovecot.confを以下のように変更
auth default {
# Space separated list of wanted authentication mechanisms:
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
# NOTE: See also disable_plaintext_auth setting.
mechanisms = plain cram-md5
}

パスワードファイル指定
passdb passwd-file {
# Path for passwd-file
args = /etc/dovecot/cram-md5.pwd
}

あとは↑で指定した/etc/dovecot/cram-md5.pwdを作る
# dovecotpw
Enter new password: password
Retype new password: password
{CRAM-MD5}26b633ec8bf9dd526293c5897400bddeef9299fad

↑で出たものを参考にし、/etc/dovecot/cram-md5.pwdを作成
usename:{CRAM-MD5}26b633ec8bf9dd526293c5897400bddeef9299fad

参考リンク
公式Wiki

2010年4月25日日曜日

rep2をオンメモリーにして高速化2

タイトルはrep2の話ですが起動時、終了時のスクリプトの実行方法を書きます。
シャットダウンスクリプト、スタートアップスクリプトとも呼ばれます。

Linuxの起動、終了時の処理は/etc/inittabに書かれています。
例えばshutdown -r nowと再起動コマンドを実行した場合
ランレベルは6になりPCの電源が落ち、立ち上がったときに2になりますつまり
inittabの↓のが有効になり(書式についてはman inittab参照)
/etc/init.d/rc 6が実行されます(6という引数とともにrcスクリプトが実行されるという意味)
l6:6:wait:/etc/init.d/rc 6

次に2になった場合は
↓が有効になり/etc/init.d/rc 2が実行されます
l2:2:wait:/etc/init.d/rc 2

再起動の場合は6→2という遷移
停止の場合は0になって電源ボタンを押した後に2になります

停止の前にHDDにデータ(rep2)を退避し、
起動後にHDDからメモリに展開すればよさそうです
今回は/etc/init.d/rcの先頭に以下のスクリプトを仕込みました
if [ "$1" = "0" ] || [ "$1" = "6" ]
then
rsync -av --delete /dev/shm/rep2mem/ /var/www/rep2_bk/
elif [ "$1" = "2" ]
then
mkdir /dev/shm/rep2mem
rsync -av --delete /var/www/rep2_bk/ /dev/shm/rep2mem/
fi

/etc/init.d/rcに書かないでやる方法はこちら

参考リンク
http://wikiwiki.jp/disklessfun/?exec-cmd

2010年4月24日土曜日

rep2をオンメモリーにして高速化

rep2をメモリ上に配置することによって高速化してみた (例のごとくDebian Lennyで・・・)
手順は/dev/shmにrep2をインストールする(インストール手順はこちら

1.インストールしてdataフォルダ作る+.htaccessを配置+外部リンク設定
2.前回やったみたいにログ整理のスクリプトを設定
3./var/wwwがドキュメントルートなので/dev/shmにシンボリックリンクを張る(apache設定ファイルのOptionsにFollowSymLinksが設定されている必要がある)
4.rsyncでローカルディレクトリにバック日次で同期させる↓の様なスクリプトを書いた
#!/bin/bash
rsync -av --delete /dev/shm/rep2mem /var/www/rep2mem_bk
5.システム終了時も行いたいので
/etc/init.d/rcの先頭にも↑の行を書いておく(参考リンク
この起動時と終了時のメモリ退避&戻しの話は長くなるのでこちらで話します

---
メモリに配置させるためあんまり容量がないためログ整理はやらなくてはならないので3の手順が必要
また、/dev/shmはメモリなのでPCが再起動などしてしまうと内容が消えてしまうため4からの手順が必要

2010年4月5日月曜日

重複ファイルを削除するfdupesというソフト

Debian Lennyで試した
↓で重複ファイルのリスト出力
$ fdupes -r /var/samba/tyouhuku/

↓で重複ファイルを自動削除
$ fdupes -d -N -r /var/samba/tyouhuku/


参考リンク
http://ubulog.blogspot.com/2009/01/ubuntu.html

その他重複ファイル探すソフト
http://en.wikipedia.org/wiki/List_of_duplicate_file_finders

2010年3月14日日曜日

/procなどの情報ファイルを定期的に見るには

↓コマンドを打つと1秒毎に自動的にコマンドを発行し、フルスクリーンで実行してくれる。
watch -n 1

たとえばこんな感じでRAID情報を見るとか
watch -n 1 cat /proc/mdstat

Firefox3.6でタブを開くときに一番右に開くようにする

about:config

browser.tabs.insertRelatedAfterCurrent
をFalseにする

mdadmでRAID1を構築

基本的に↓に書いてあるとおりにやればできた
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a060raid1.html

1.aptitudeでインストール

2.↓のコマンドでRAIDを構築(上記とは違いパーティション指定じゃなくてデバイス指定でやってみた)
mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/hdb /dev/hdd

3.md0は普通のデバイスなのでfdiskなりmkfsなり好きなようにする

4.↓のコマンドで停止
mdadm --misc --stop /dev/md0
↓のコマンドで再構成
mdadm --assemble /dev/md0 /dev/hdb /dev/hdd


5.ここで
dd if=/tmp/crash.dat of=/dev/hdb
と打ってHDDを破壊

6.下記コマンドでhdbに不良マークをつける
mdadm --manage /dev/md0 -f /dev/hdb
そんでアレイから削除
mdadm --manage /dev/md0 -r /dev/hdb
そんで(実際には交換して)アレイに追加
mdadm --manage /dev/md0 --add /dev/hdb

7.次回起動時も有効にするには?
なんかいろいろなサイトで/etc/mdadm/mdadm.confを手動で更新してたけど
バージョンの違いか分からないが勝手に編集されていた
今回試したバージョンは↓
mdadm - v2.6.7.2 - 14th November 2008

※watchコマンドを駆使すればcat /proc/mdstatが見やすくなる詳しくはこちら

参考リンク
http://masy.families.jp/diary/?20080815
http://hellokitty68.main.jp/wiki/Mdadm
http://www.ioss.jp/sohodiy/mdadm8-1_5.html

2010年3月10日水曜日

root→一般ユーザにsuで入ったときにscreenが動かない

なんでかは知らないけど
そういうものらしいです下記のエラーが出ます
Cannot open your terminal '/dev/pts/0' - please check.

こうやってSHLVLを上げると解決するらしい
script /dev/null

参考リンク
http://d.hatena.ne.jp/reboot66/20090612/p1

UNIXで空ファイルを作る方法いろいろ

touch以外にもこんなにあった
http://d.hatena.ne.jp/japanrock_pg/?of=3

2010年3月7日日曜日

MPC HC デュアルディスプレイで動画再生すると真っ黒になる

 
なんか知らんがこうすると直った

参考リンク
http://tools4hack.blog21.fc2.com/blog-entry-2.html
Google検索

スーパーπをVistaマシンで試してみる



こんな感じな結果になった
スペックは以下のとおり


 


  

 

2010年3月6日土曜日

WindowsXPで自動再生を無効化する

CDを入れたときの自動再生を無効化するには
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000b5

参考リンク
http://www.mnet.ne.jp/~angie/kbase/xp-autorun.html

Googleの公開DNS

設定してみた
プライマリが8.8.8.8
セカンダリが8.8.4.4
だそうです


GIGAZINE記事

Super π (スーパーパイ)をPhenomⅡで

AMD Phenom II X4 945 Box (Socket AM3)で計ってみた
スペックはに書いたとおり

2010年3月5日金曜日

mercurialのGUIクライアントTortoiseHgの日本語化

前回の記事からずいぶんたったけどWindows版をインストールしたのでメモ

1.ダウンロード・インストール
ここからtortoisehg-0.9.3-hg-1.4.3.exe all-in-one installer with TortoiseHg 0.9.3 and Mercurial 1.4.3 っていうのをダウンロード&インストール&再起動


2.日本語化
C:\Program Files\TortoiseHg\cmenu_i18n\thg-cmenu-ja.regを実行レジストリ書き換え→ログオフしてからログインで反映

3.外部ツールの導入
http://www.02.246.ne.jp/~torutk/mercurial/intro.html
↑とか見るとWinMergeとか便利そうだなKdiff3とかは元からはいってるっぽい

今日はここまで

2010年2月27日土曜日

PCを新調したので恒例のFFベンチをやってみる

前回とどのくらい変わってるか試した
スコアは4307だった
ちなみにこのマザーでBIOS(Winbond 25X80AVA1Z 0924)の更新しようとしたら吹っ飛んだんで、業者にお願いして交換した
ソケットタイプ(PDIP)なので交換できます。

【   .CPU.  】 AMD Phenom II X4 945 Box (Socket AM3)
【   Mem   】 KVR1333D3N9K2/4G (DDR3 2G x 2)
【  M/B  】ASRock M3A770DE
【  VGA   】XIAiAF4850-512XD3 Green
【VGAドライバ】
【 DirectX....】 DirectX9.0c
【 Sound   】
【   OS    】Windows XP SP3 professional
【   HDD    】WD5000AAKS
【   Ver .   】
▼スコア
【 .Low  】
【  High  .】4307

リンク
FINAL FANTASY XI for Windowsオフィシャルベンチマークソフト3のスコアについて

2010年2月23日火曜日

よく戸惑うThunderbirdのメール形式(HTMLかプレーンテキストか)

Mozilla公式によると

Thunderbird のメッセージ作成ウィンドウはメッセージの内容に応じて自動的にテキスト形式と HTML 形式を切り替えます。手動でメッセージの形式を変更する場合は [オプション] > [書式] から変更できます。
また Thunderbird 上のメールツールバーにある [作成] ボタンを Shift キーを押しながらクリックするとテキスト形式しか利用できないメッセージ作成ウィンドウが表示されます。常にテキスト形式のメッセージしか使用しない場合は、メニューバーの [ツール] > [アカウント設定] を開きます。そしてテキスト形式でのみ使用したいアカウントの名前を選択し、[編集とアドレス入力] 内の [HTML 形式でメッセージを編集する] のチェックを外し、[アカウント設定] ダイアログの [OK] ボタンを押します。

だそうでShift押しながら作成ボタンとかで切り替えが可能みたいです。
あと注意しなければならないのは「アカウントの設定」からHTML形式でメッセージを編集するのチェックをはずした場合作成ウィンドウに「オプション」->「表示」が表示されません

※またはオプション→送信形式を見てください

2010年2月7日日曜日

マリオペイントのハエ叩きは何週目まであるか?

ハエ叩きは1面→2面→3面と難易度が上がり、3面をクリアすると1面に戻ります。
戻った際には何週クリアしたかを表すマークが画面左上に出ます。
これは1週クリアした場合は星、2周目ならマリオ、3周目ならピーチという様に毎回違うマークが表示されます。

このマークは何周目まで出るかというと15周目まで出ます。


15周目以降はマークが消えて、また1面からやり直しになります。

周回数を重ねるごとにライフ(手の形をしたアイテム)が手に入りにくくなります。
チートコード無しに15周クリアするのは難しいかもしれません。

2010年2月1日月曜日

muttでキーバインドを変更するには?

.muttrcを以下のように編集するとよい
bind <map> <key> <function>

<map> ... いつ使うかを記述 index,pagerなどを指定します。その状態の画面で?(ヘルプ)画面を出せばそこがどの画面か分かります。(ちなみにヘルプ画面はpagerです)

<key> ... 設定するキーを指定。指定方法はヘルプ画面と同様

<function> ... 実行する機能を記述。ヘルプ画面と同様。(next-line,previous-line等を指定)

で実際にはこんな感じで設定してる
vimみたいにjkで画面を上下させたいので・・・
.muttrc
set folder="~/Maildir"
set spoolfile="~/Maildir"
set keep_flagged=yes
set mbox=""
set postponed="/tmp/postponed"
set sort="reverse-date-received"
#スクロールして最後までいっても次のメッセージに飛ばない
set pager_stop=yes
#PAGERを変えたくなったらここに指定
#set pager=lv

#key bind setting
bind pager j next-line
bind pager k previous-line
bind pager J next-undeleted
bind pager K previous-undeleted
#Ctrl-Dで半ページスクロール下
bind pager "\Cd" half-down
#Ctrl-Uで半ページスクロール上
bind pager "\Cu" half-up



参考リンク
http://www12.atwiki.jp/linux2ch/pages/107.html

2010年1月26日火曜日

2010年1月23日土曜日

原寸画像検索

原寸大で画像検索が出来るサイト
http://gensun-images.com/

2010年1月11日月曜日

TightVNCをインストールしてみた

Windows版のTightVNCを試してみた
公式サイトから「Self-installing package for Windows」を落としてみてインストール使用した感じはRealVNCより軽い感じがする・・・

使い方1 サービスとして起動する
スタートメニュー⇒ TightVNC ⇒ Administration ⇒ Install VNC Serviceを選んでクリック
コンパネの管理ツール⇒サービスを見てVNC Serverがあるのを確認する(制御はここで行う)

で設定はスタートメニュー⇒ TightVNC ⇒ Administration ⇒ Show Default Settingsからどうぞ
ちなみに設定でログを採取する設定にした際に作られる場所はC:\WINDOWS\system32の中のWinVNC.log
注意)上記の設定で手動で起動した場合タスクトレイに表示されないが再起動すると表示される

使い方2 ユーザーモードで起動する
スタートメニュー⇒ TightVNC ⇒ Launch TightVNC Serverで起動
ユーザーモードならタスクトレイにアイコンが出るのでそこを右クリックして設定を開いても良いし、
TightVNCの中にあるShow User Settingsで設定を開いても良い。
ちなみにログを採取するように設定した場合の吐き出される場所はC:\Program Files\TightVNCの中のWinVNC.log


あとWindows版のVNCはUNIXのようなconfファイルを使用しないので以下のレジストリに設定を保存する
HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3
HKEY_CURRENT_USER\Software\ORL\WinVNC3