2009年2月2日月曜日

ユーザーの大量追加

で、今度はユーザーの追加
自分としてはnewusersコマンドでは、/etc/skelが困るので、perlで作ってしまう。

で、newusersファイルで拵えておいて、そいつを標準入力(STDIN)から読み込ませて、追加する

#!/usr/bin/perl
while($_=<STDIN>){
chomp;
chomp;
($uname,$password,$uid,$gid,$gecos,$udir,$sh)=split(/:/);

`useradd -g \"$gid\" -d \"$udir\" -c \"$gecos\" -m \"$uname\" -u \"$uid\" -s \"$sh"`;
open(CMD, "| chpasswd > /dev/null");
print CMD "$uname:$password\n";
close CMD;
}
exit;

こんな感じですね。
追加するときは
コマンド名< newusers.text
な感じです。

/etc/skel に設定を加える

大勢いるユーザーに向けて一気にウェブページを使ってもらうための設定をしている。
で、XoopsかWordPress、WebLibertyにしようか考え中です。
とりあえず、簡単なWordPressかなあ。以下は、まったく他人が見たら意味のない文章だろうなあ。

$:/home/massa/dav# wget http://ja.wordpress.org/wordpress-2.7-ja.zip
--17:09:32-- http://ja.wordpress.org/wordpress-2.7-ja.zip
=> `wordpress-2.7-ja.zip.1'
でWordPressをダウンロードし、/etc/skelに解凍します
/etc/skelの内容
---.bash_profile
---.bashrc
---Maildir---new
---cur
---tmp
---wp   ←ここにWordPressを入れる
---xp ←ここにXoopsを入れる
こんな感じです。で、ユーザーにはどっちかを使ってもらう。
apacheの設定ファイルは、
Alias /wp /home/users/user1/wp ←xoops(xp)でも可
<Directory /home/users/user1/wp>
Options +ExecCGI
AllowOverride None
Order allow,deny
allow from all
AddHandler cgi-script .cgi
AddHandler cgi-script .pl

DirectoryIndex index.php index.html
</IfModule>
</Directory>
こんな感じで、やってしまおうかと考えている。

2009年1月30日金曜日

UPSの確かめ

UPSの電源コードを抜きました
Broadcast Message from root@thaw (somewhere) at 8:56 ...
Warning power loss detected on UPS UPS_IDEN

Broadcast Message from root@thaw (somewhere) at 8:56 ...
Power failure on UPS UPS_IDEN. Running on batteries.

UPSの電源コードを電源に挿しました
Broadcast Message from root@thaw (somewhere) at 8:56 ...
Power has returned on UPS UPS_IDEN...

2009年1月29日木曜日

APC 無停電電源装置の状態

帰宅してから(この間、18KMランニングトレーニングしてました)、職場のサーバーに接続して、無停電電源装置を見る。
ここに詳しく情報が書いてあるので便利でした。
http://www.itmedia.co.jp/help/howto/linux/ups/index.html
シリアルケーブルの接続だし、デフォルト設定で問題なかった。(^_^)v

root@thaw:~# apctest
2009-01-29 22:04:18 apctest 3.12.4 (19 August 2006) debian
Checking configuration ...
Attached to driver: apcsmart
sharenet.type = DISABLE
cable.type = CUSTOM_SMART

You are using a SMART cable type, so I'm entering SMART test mode
Unknown mode.type: 11
Setting up the port ...
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing Smart UPSes.
Please select the function you want to perform.

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number: 1

I am going to run through the series of queries of the UPS
that are used in initializing apcupsd.

Simulating UPSlinkCheck ...
Wrote: Y Got: SM
Attempting to use smart_poll() ...
Sent: Y Got: SM Good -- smart_poll() works!.

Going to ask for valid commands...
Protocol version is: 3
Alert characters are: !$%+?=#|
Command characters are: ^A^N^Z')+-89>@ABCDEFGKLMNOPQRSUVWXYZabcefgjklmnopqrsuxyz~^M

Now running through apcupsd get_UPS capabilities().
NA indicates that the feature is Not Available

UPS Status: 08
Line quality: FF
Reason for last transfer to batteries: T
Self-Test Status: NO
Line Voltage: 102.9
Line Voltage Max: 103.6
Line Voltage Min: 102.9
Output Voltage: 102.9
Batt level percent: 100.0
Batt voltage: 27.27
UPS Load: 027.9
Line freq: 50.00
Runtime left: 0048
UPS Internal temp: 021.6
Dip switch settings: NA
Register 1: 00
Register 2: 00
Register 3: 00
Sensitivity: H
Wakeup delay: 000
Sleep delay: 060
Low transfer voltage: 092
High transfer voltage: 110
Batt charge for return: 00
Alarm status: 0
Low battery shutdown level: 02
UPS Name: UPS_IDEN
UPS Self test interval: 336
UPS manufacture date: 12/06/01
UPS serial number: AS0149110975
Date battery replaced: 12/06/01
Output voltage when on batteries: 100
Nominal battery voltage: 024
Percent humidity: NA
Ambient temperature: NA
Firmware revision: 162.4.A
Number of external batteries installed: 000
Number of bad batteries installed: NA
UPS model as defined by UPS: KWA
UPS EPROM capabilities string: uD43127130133136uA43108110112114uI43253257261265uM43225229233237lD43106103100097lA43092090088086lI43208204200196lM43182178174170e4820015253550607590oD13120oA13100oI43230240220225oM13208s441HMLLq4820205071012151820p483020060120240480720960000k4410TLNr483000020060120240480720960E443336168ON OFF
The EPROM string is 293 characters long!
Hours since last self test: NA

That is all for now.

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number: 7
2009-01-29 22:04:39 End apctest.

root@thaw:~# /etc/init.d/apcupsd start
Starting APC UPS power management: apcupsd.

root@thaw:~# /sbin/apcaccess status
APC : 001,051,1201
DATE : Thu Jan 29 22:05:48 JST 2009
HOSTNAME : thaw
RELEASE : 3.12.4
VERSION : 3.12.4 (19 August 2006) debian
UPSNAME : UPS_IDEN
CABLE : Custom Cable Smart
MODEL : Smart-UPS 1400 RM
UPSMODE : Stand Alone
STARTTIME: Thu Jan 29 22:05:29 JST 2009
STATUS : ONLINE
LINEV : 102.9 Volts
LOADPCT : 27.9 Percent Load Capacity
BCHARGE : 100.0 Percent
TIMELEFT : 48.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
MAXLINEV : 103.6 Volts
MINLINEV : 102.9 Volts
OUTPUTV : 102.9 Volts
SENSE : High
DWAKE : 000 Seconds
DSHUTD : 060 Seconds
DLOWBATT : 02 Minutes
LOTRANS : 092.0 Volts
HITRANS : 110.0 Volts
RETPCT : 000.0 Percent
ITEMP : 21.6 C Internal
ALARMDEL : 5 seconds
BATTV : 27.3 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Line voltage notch or spike
NUMXFERS : 0
TONBATT : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI : 336
STATFLAG : 0x07000008 Status Flag
REG1 : 0x00 Register 1
REG2 : 0x00 Register 2
REG3 : 0x00 Register 3
MANDATE : 12/06/01
SERIALNO : AS0149110975
BATTDATE : 12/06/01
NOMOUTV : 100
NOMBATTV : 24.0
EXTBATTS : 0
FIRMWARE : 162.4.A
APCMODEL : KWA
END APC : Thu Jan 29 22:06:06 JST 2009
root@thaw:~#

今度、電源ケーブルを抜いて、さらに調べよう。

無停電電源装置の接続

職場のサーバーにUPS(APC社製)を接続します。
とりあえず、apcupsdをインストールしました。
root@thaw:~# aptitude install apcupsd
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了
タスクの記述を読み込んでいます... 完了
タグのデータベースを構築しています... 完了
以下の新規パッケージが自動的にインストールされます:
libsensors3 libsnmp-base libsnmp9 libsysfs2
以下の新規パッケージがインストールされます:
apcupsd libsensors3 libsnmp-base libsnmp9 libsysfs2
更新: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
3479kB のアーカイブを取得する必要があります。展開後に 7950kB のディスク領域が新たに消費さ れます。
続けますか? [Y/n/?] Y
拡張状態情報を書き込んでいます... 完了
取得:1 http://dennou-h.gfd-dennou.org etch/main libsysfs2 2.1.0-1 [27.0kB]
取得:2 http://dennou-h.gfd-dennou.org etch/main libsensors3 1:2.10.1-3 [82.5kB]
取得:3 http://dennou-h.gfd-dennou.org etch/main libsnmp-base 5.2.3-7etch4 [1214kB]
取得:4 http://dennou-h.gfd-dennou.org etch/main libsnmp9 5.2.3-7etch4 [1839kB]
取得:5 http://dennou-h.gfd-dennou.org etch/main apcupsd 3.12.4-2 [316kB]
3479kB を 43s 秒でダウンロードしました (80.6kB/s)
未選択パッケージ libsysfs2 を選択しています。
(データベースを読み込んでいます ... 現在 50476 個のファイルとディレクトリがインストールさ れています。)
(.../libsysfs2_2.1.0-1_i386.deb から) libsysfs2 を展開しています...
未選択パッケージ libsensors3 を選択しています。
(.../libsensors3_1%3a2.10.1-3_i386.deb から) libsensors3 を展開しています...
未選択パッケージ libsnmp-base を選択しています。
(.../libsnmp-base_5.2.3-7etch4_all.deb から) libsnmp-base を展開しています...
未選択パッケージ libsnmp9 を選択しています。
(.../libsnmp9_5.2.3-7etch4_i386.deb から) libsnmp9 を展開しています...
未選択パッケージ apcupsd を選択しています。
(.../apcupsd_3.12.4-2_i386.deb から) apcupsd を展開しています...
libsysfs2 (2.1.0-1) を設定しています ...

libsensors3 (2.10.1-3) を設定しています ...
udev active, devices will be created in /dev/.static/dev/

libsnmp-base (5.2.3-7etch4) を設定しています ...

libsnmp9 (5.2.3-7etch4) を設定しています ...

apcupsd (3.12.4-2) を設定しています ...
Please check your configuration ISCONFIGURED in /etc/default/apcupsd

2009年1月28日水曜日

mysql データベース

少し前まで、管理しているデータベースは、MSのSQLサーバーとLinux上のPostgreSQLでしたが、最近は、転勤したこともあり、とんといじらなくなり、この頃このブログにも書いているように、この1週間近くはmysqlをさわっています。

で、ふと気になったのがユーザー管理です。
最初に、root@localhostにパスワードを設定し、空userは削除しました。
しかしmysql データベースのuser.userテーブルをみるとパスワードの無いものが1つある。
root@localhostにはパスワードを設定したんだが、もうひとつのrootユーザーがあって、パスワードが無い。もちろん速攻でsetpasswordをしました。

自分でいうのもなんだけど、インターネット上の情報でMovable TypeとかWord Pressのインストールしていると、ユーザー管理の甘いmysqlサーバーが沢山出来ている気がするなあ。

そういうサーバーは大丈夫なんだろうか(心配してもしょうがないか(^^;))

2009年1月27日火曜日

cpan メモ

職場は、httpポートしか接続できない少し厳しいプロクシがかかってます。
その中で、cpanでモジュールをインストールすると結構不便で、接続できないことが起こります。
で、現在はうまくいったのでメモしておきます。
~# perl -MCPAN -e shell
cpan>o conf init
で設定。
CPAN::Config options from /etc/perl/CPAN/Config.pm: commit
Commit changes to disk defaults
Reload defaults from disk init
Interactive setting of all options
build_cache 10
build_dir /root/.cpan/build
cache_metadata 1 cpan_home /root/.cpan
cpan_version_check 1
dontload_hash
ftp
ftp_proxy getcwd cwd
gpg /usr/bin/gpg
gzip /bin/gzip histfile /root/.cpan/histfile
histsize 100
http_proxy 192.168.***.***:8080
inactivity_timeout 0
index_expire 1
inhibit_startup_message 0
keep_source_where /root/.cpan/sources
lynx /usr/bin/lynx
make /usr/bin/make
make_arg
make_install_arg UNINST=1
makepl_arg
INSTALLDIRS=site
ncftpget
no_proxy
pager /usr/bin/less
prerequisites_policy ask
proxy_user
scan_cache atstart
shell /bin/bash
tar /bin/tar term_is_latin 1
unzip /usr/bin/unzip
urlist http://cpan.sarang.net/
urllist http://cpan.sarang.net/
wget /usr/bin/wget

cpanの設定を変更するときは
cpan>o conf
ですが、設定が面倒なので、手動で書き換えることも(^_^;)
CPAN/Config.pm
をnano やemacsで直接書きました。

ポイント
  1. lynxのプロクシ設定をしっかりやること。
  2. http経由のcpanサーバを選ぶこと

ですが、なんと日本は全滅でした。しょうがないので韓国のsarang.neにしましたが・・・