2009年2月4日水曜日

本日の備忘録

こんなフォーマットのログがあって、どのポートへの接続が多いかを知りたかったので。
Feb  4 21:39:20 optg5 S03:MSQ: Discard packet. TCP(192.0.2.0:46780 -> 192.0.2.231:14571)
こんなのを書いた。
$ gawk '/\:[0-9]+\)$/ {port = gensub(/(^.*\:)([0-9]+)(\)$)/, "\\2", 1); if (port in ports) ports[port]++; else ports[port]=1;}
END{for (x in ports) printf "%5s:%s\n" , x, ports[x]}' /var/log/user.log | sort -r -n -t":" -k2 | head -20
30分…。いろいろと身についてないですな。

2008年11月22日土曜日

ESXi FreeBSD 6.3ゲストのNIC変更

ゲストOSにFreeBSD 6.3 i386をインストールしたところ、NICがlnc0になっていた。しかも、"kernel: lnc0: Missed packet — no receive buffer"なんてメッセージも出していた。そのうち、関係しているがわからないけど、portsでの作業中にフリーズした。 とりあえず、vmxファイルを修正して、em0にしてみることにした。

環境

  • VMware ESX Server 3i, 3.5.0, 110271
  • VM:FreeBSD 6.3-RELEASE i386

手順

  1. VMware Infrastructure Clientから、Summaryタブ ─ Resources ─ Datastoreにあるディスク領域名をダブルクリック
  2. Datastore Browserが開いたら、対象のゲストOSのディレクトリを開く
  3. vmxファイルを選択して、右クリックから、Downloadを選択。保存場所を確定させて、ファイルのダウンロードを開始する
  4. ダウンロードしたvmxファイルをテキストエディタで開き、"ethernet0.virtualDev = "e1000""を追加する。
  5. 修正したvmxファイルをDatastore BrowserのUpload File(メニューバーのボタン)を使い、ESXiホスト上にアップロードする。(旧ファイルはリネームなどを事前におこなっておく)
  6. ゲストOSの起動。ifconfigなどで、em0があることを確認する。
  7. /etc/rc.confなどの修正をして、/etc/netstartで動作確認する。

portsでのビルド作業など半日ほど使用したが、今のところ問題なし。

2008年10月20日月曜日

gawkでリネーム

ファイル名の途中の文字列だけを変更したかったので。
$ ls -1
ABBB20081019.csv
ACCC20081019.csv
ADDD20081019.csv
AEEE20081019.csv
AFFF20081019.csv
$ ls -1 *.csv | gawk '{ fn = gensub(/(^A[A-Z]*)(20081019)(\.csv)/,"\\120081020\\3","g"); printf("mv %s %s\n", $0, fn);}'
mv ABBB20081019.csv ABBB20081020.csv
mv ACCC20081019.csv ACCC20081020.csv
mv ADDD20081019.csv ADDD20081020.csv
mv AEEE20081019.csv AEEE20081020.csv
mv AFFF20081019.csv AFFF20081020.csv
$ ls -1 *.csv | gawk '{ fn = gensub(/(^A[A-Z]*)(20081019)(\.csv)/,"\\120081020\\3","g"); printf("mv %s %s\n", $0, fn) | "sh";}END{ close("sh")}'
$ ls -1
ABBB20081020.csv
ACCC20081020.csv
ADDD20081020.csv
AEEE20081020.csv
AFFF20081020.csv

2008年10月19日日曜日

WPA-PSK(TKIP)の設定

環境

  • FreeBSD 6.3
  • アクセスポイント:WLA2-G54C
  • 無線LANカード:WLI2-CB-G54L(ndisで使用)

設定内容

/etc/wpa_supplicant.confの作成
% cat /etc/wpa_supplicant.conf 
network={
 ssid="MYAP"
 bssid=xx:xx:xx:xx:xx:xx
 scan_ssid=1
 proto=WPA
 key_mgmt=WPA-PSK
 pairwise=TKIP
 group=TKIP
 psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
"psk"の値は、wpa_passphraseなんていうコマンドがあったので、試してみた。こんな感じで使う↓
% wpa_passphrase MYAP mypassphrase
network={
 ssid="MYAP"
 #psk="mypassphrase"
 psk=9eadec395caca2655b6c55171a9313240ad3fd5a8a273e606e0918ee0055b008
}
/etc/rc.confの変更
ifconfig_ndis0="WPA inet 192.168.1.221 netmask 255.255.255.0"
/etc/rc.d/wpa_supplicantの変更 起動時にアクセスポイントに接続できなくて、下記の変更をおこなった
*** 32,38 ****
  load_rc_config $name
  
  pid_file="/var/run/${name}/${ifn}.pid"
! command_args="-B -q -i $ifn -c $conf_file -P $pid_file"
  required_files=$conf_file
  
  run_rc_command "$1"
何故、wpa_supplicantスクリプトの"-D"があると接続できないのかは不明。

参照先

2008年9月24日水曜日

inode不足

VMWare環境でディスク不足が発生。一時用とはいえ3Gでは足りなかったもよう。 ディスクを追加し、Ports用("/usr/ports")としてマウントした。"portsnap extract"としたところ、inode不足に。

"www/p5-WWW-*"を展開中に↓こんな感じに
Filesystem  1K-blocks    Used   Avail Capacity iused  ifree %iused  Mounted on
/dev/ad0s1a    304302  247550   32408    88%    2726  36696    7%   /
devfs               1       1       0   100%       0      0  100%   /dev
/dev/ad0s1e    202094   34632  151296    19%     251  26115    1%   /tmp
/dev/ad0s1f   3127410 1659936 1217282    58%   71609 352325   17%   /usr
/dev/ad0s1d    304302   89916  190042    32%   20500  18922   52%   /var
/dev/ad1s1f    233486       4  214804     0%       2  30204    0%   /iscsi
/dev/ad1s1d    738318  360492  318762    53%  115714   2044   98%   /usr/ports
/dev/ad1s1e    545326       4  501696     0%       2  70652    0%   /usr/src

"sysinstall"から、"Fdisk","Label"を使って作成したものではだめだったようなので、newfsでinode増やしてファイルシステムを再作成した。

# newfs -i 1024 /dev/ad1s1d

2008年8月30日土曜日

gawkでファイル削除

最近知った技を使う機会が。

$ ls -latr
合計 63636
drwxr-xr-x  2 kaz kaz    32768  3月  1 06:30 cddb_0301_data
drwxr-xr-x  2 kaz kaz    36864  4月  1 05:00 cddb_0401_data
drwxr-xr-x  2 kaz kaz    90112  5月  1 06:30 newage
drwxr-xr-x  2 kaz kaz   106496  5月  1 08:00 soundtrack
drwxr-xr-x  2 kaz kaz    36864  5月  1 08:30 reggae
drwxr-xr-x  2 kaz kaz   131072  5月  1 08:30 blues
drwxr-xr-x  2 kaz kaz   159744  5月  1 09:00 folk
drwxr-xr-x  2 kaz kaz    36864  5月  1 09:00 data
drwxr-xr-x  2 kaz kaz   135168  5月  1 09:00 jazz
drwxr-xr-x  2 kaz kaz   536576  5月  1 09:00 rock
drwxr-xr-x  2 kaz kaz   589824  5月  1 09:00 misc
drwxr-xr-x  2 kaz kaz    69632  5月  1 09:00 country
drwxr-xr-x  2 kaz kaz   225280  5月  1 09:00 classical
drwxrwxr-x  3 kaz kaz     4096  8月 16 17:46 include
drwxrwxr-x  3 kaz kaz     4096  8月 16 17:46 lib
drwxrwxr-x  4 kaz kaz     4096  8月 16 17:47 man
-rw-rw-r--  1 kaz kaz      272  8月 21 00:26 pet.txt
-rw-rw-r--  1 kaz kaz     4894  8月 21 01:20 my-medium.cnf
-rw-r--r--  1 kaz kaz  8255596  8月 28 00:33 freedb-update-20080401-20080501.tar.bz2
-rw-r--r--  1 kaz kaz  8724678  8月 28 00:33 freedb-update-20080301-20080401.tar.bz2
-rw-r--r--  1 kaz kaz  8359595  8月 28 00:33 freedb-update-20080201-20080301.tar.bz2
-rw-rw-r--  1 kaz kaz      152  8月 29 00:42 freedb.awk
-rw-r--r--  1 kaz kaz 37447502  8月 29 00:43 freedb.txt
drwx------ 10 kaz kaz     4096  8月 29 01:39 ..
drwx------  5 kaz kaz     4096  8月 29 07:02 var
drwxr-xr-x  2 kaz kaz     4096  8月 29 07:02 socket
drwxr-xr-x  2 kaz kaz     4096  8月 30 00:34 info
drwxrwxr-x  3 kaz kaz     4096  8月 30 00:34 share
drwxrwxr-x  2 kaz kaz     4096  8月 30 00:34 bin
drwxrwxr-x  2 kaz kaz     4096  8月 30 00:34 libexec
drwxrwxr-x 24 kaz kaz     4096  8月 30 00:34 .

いろいろ合わせて、削除対象を絞りこみ。最後の部分はgawkを使う。

$ find . -maxdepth 1 -type d -mtime +30 | egrep -v '_[0-9]{4}_' | gawk '{ print $0 }'
./country
./misc
./blues
./classical
./rock
./data
./soundtrack
./jazz
./reggae
./newage
./folk

gawkの記述を下のように変更して、実行

gawk '{ printf("rm -rf %s\n", $0) | "sh" }END { close("sh")}

$ find . -maxdepth 1 -type d -mtime +30 | egrep -v '_[0-9]{4}_' | gawk '{ printf("rm -rf %s\n", $0) | "sh" }END { close("sh")}'
無事に削除ができた
合計 61532
drwxr-xr-x  2 kaz kaz    32768  3月  1 06:30 cddb_0301_data
drwxr-xr-x  2 kaz kaz    36864  4月  1 05:00 cddb_0401_data
drwxrwxr-x  3 kaz kaz     4096  8月 16 17:46 include
drwxrwxr-x  3 kaz kaz     4096  8月 16 17:46 lib
drwxrwxr-x  4 kaz kaz     4096  8月 16 17:47 man
-rw-rw-r--  1 kaz kaz      272  8月 21 00:26 pet.txt
-rw-rw-r--  1 kaz kaz     4894  8月 21 01:20 my-medium.cnf
-rw-r--r--  1 kaz kaz  8255596  8月 28 00:33 freedb-update-20080401-20080501.tar.bz2
-rw-r--r--  1 kaz kaz  8724678  8月 28 00:33 freedb-update-20080301-20080401.tar.bz2
-rw-r--r--  1 kaz kaz  8359595  8月 28 00:33 freedb-update-20080201-20080301.tar.bz2
-rw-rw-r--  1 kaz kaz      152  8月 29 00:42 freedb.awk
-rw-r--r--  1 kaz kaz 37447502  8月 29 00:43 freedb.txt
drwx------ 10 kaz kaz     4096  8月 29 01:39 ..
drwx------  5 kaz kaz     4096  8月 29 07:02 var
drwxr-xr-x  2 kaz kaz     4096  8月 29 07:02 socket
drwxr-xr-x  2 kaz kaz     4096  8月 30 00:34 info
drwxrwxr-x  3 kaz kaz     4096  8月 30 00:34 share
drwxrwxr-x  2 kaz kaz     4096  8月 30 00:34 bin
drwxrwxr-x  2 kaz kaz     4096  8月 30 00:34 libexec
drwxrwxr-x 13 kaz kaz     4096  8月 30 01:03 .

参照:GNU Awk ユーザーズガイド: General Introduction(4.6 print や printfの出力のリダイレクト)

2008年7月7日月曜日

いまさらcpufreq-infoを知る

自動起動のからみで、CPUモジュールを自分でインストールして、cpufreq-infoあたりを初めて知った

お暇なときはこんな感じに

$ cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 0 1
  hardware limits: 1000 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 1.80 GHz, 1000 MHz
  available cpufreq governors: conservative, userspace, ondemand, powersave, performance
  current policy: frequency should be within 1000 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz.
analyzing CPU 1:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 0 1
  hardware limits: 1000 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 1.80 GHz, 1000 MHz
  available cpufreq governors: conservative, userspace, ondemand, powersave, performance
  current policy: frequency should be within 1000 MHz and 2.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz.

CPU温度も下ってる

$ sensors
k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp:  +34.0°C
Core1 Temp:  +24.0°C

設定前は、40.0°C前後だった