2010年1月8日金曜日

Stale NFS file handleとは

fj.os.linux/japan.comp.linuxを参照。
ファイルハンドルとは、オープンしているサーバ上のファイルを指し示すためにクライアント側が持っている識別子のことです。
その識別子が指し示しているファイルがサーバ上で無くなってしまったり、アクセスできなかったりした時(例えば、exportしていたファイルシステムが、サーバ側でローカルにumountされてしまった時とか)にこのエラーが起きます。

じゃあ、/proc/[pid]/fd は?

プロセスがオープンしたファイル各々に対するエントリを含むサブディレクトリ。 ファイルディスクリプタがファイル名で、 実際のファイルへのシンボリックリンクになっている。 したがって 0 は標準入力、1 は標準出力、2 は標準エラー出力、などとなる。マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 このディレクトリの内容は参照できない (スレッドの終了は通常 pthread_exit(3) を呼び出しにより行われる)。 コマンドライン引き数としてファイル名を受け取るが、引き数が 渡されなかった場合に標準入力から入力を受け取らないようなプログラムや、 コマンドライン引き数として書き込みファイルを受け取るが、引き数が 渡されなかった場合に標準出力に出力を行わないようなプログラムであっても、 /proc/[pid]/fd を使うことで標準入力や標準出力を使用できるようになる。 例えば、 -i を入力ファイルを指定するフラグ、 -o を出力ファイルを指定するフラグと仮定すると、以下のコマンドを 実行することにより、フィルタとして動作させることができる。
サーバの返答が遅くなって、クライアントが「ファイルが無くなった」と錯覚してしまうようなことがあるのかな????

だとすると、同じFAQにある、

/proc/sys/net/ipv4/ipfrag_high_thresh
/proc/sys/net/ipv4/ipfrag_low_thresh

に、それぞれデフォルト値の倍の値を書き込む、という手段で改善されるのかも知れません。

2009年11月1日日曜日

ハードディスクのキャッシュ機能について

sd 0:2:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
ハードディスクの書き込みキャッシュ機能のモードを表示
# hdparm -W1 /dev/sda
としてWriteCache enabled になる

2009年6月8日月曜日

unix時間について

unix時間とは

UNIX時間またはUNIX時刻(UNIX time or POSIX time)とはコンピューターシステム上で日時を表す単位。UTCでの1970年1月1日真夜中(0時0分0秒)からの経過秒数(閏秒を加味しない)で表される。 UNIX系オペレーティングシステムだけでなく、他の多くのオペレーティングシステムにおいてもこの単位が用いられている。システム内部では32ビットまたは64ビットの符号付整数(signed int)で扱われていることが普通であり、特に32ビットで扱われている場合においては符号付整数が取れる最大値 2147483647 を超える時点で時刻を扱えなくなるという問題がある。これを2038年問題という。

UNIX時刻の表示例

特異なUNIX時間の例

UNIX時間 UTC JST
0 1970-01-01T00:00:00 1970-01-01T09:00:00
100000000 1973-03-03T09:46:40 1973-03-03T18:46:40
1000000000 2001-09-09T01:46:40 2001-09-09T10:46:40
1234567890 2009-02-13T23:31:30 2009-02-14T08:31:30
2147483647 2038-01-19T03:14:07 2038-01-19T12:14:07
 

UNIX/Linuxのシェル上で、UNIX時間をUTCに変換する例

$ date -u -d '@1234567890'

UNIX/Linuxのシェル上で、UNIX時間をローカル時刻に変換する例

$ date -d '@1234567890'

unix時間を人間にわかりやすい形に成形する

$ echo unix時間 | awk '{ print strftime("%c",$1) }'
で、年月日時分秒が出せる

DNS named.root 更新確認スクリプト

#!/bin/bash # DNSのnamed.rootファイルの更新確認スクリプト # 最新版のnamed.rootファイルを取得し、差分を確認する。 # 更新履歴 # 2014.02.07 watari # お約束 export LANG=C ## 実行ディレクトリ #PR...