More from: linux

止まったサーバー

土曜日(4/3)に止まったサーバー、今日になって回収に行ったら・・・・・・・・・・・

なんと電源ユニットのメインスイッチがOFFになっているじゃないかぁ!!!
回収しようとして何気に電源ユニットを見ると、シーソースイッチが○印(切)のほうに倒れていたので、-印(入)側に倒して電源スイッチを押すと無事に通電して起動した、、、orz
なんでこのスイッチがOFFになっていたかは不明だけど、ハードウェアの故障とかHDDの破損とかが無くて助かった。
スイッチの場所から考えて不用意に人が触るような場所じゃないと思うが、近くにマウスが落ちていたので、筐体の上に乗せていたマウスがなにかの弾みで落ちた時にスイッチに当たったのかなぁ?
まぁなんにせよなにも壊れてなくて良かった。
OS(Linux)も無事に起動して業務に復帰させることが出来た。

←クリックしてくれると嬉しいです。

LogWatchからのmailが大きすぎるので

サーバで毎日LogWatchの出力がroot宛にmailで届く。
まぁこれはそうなるように設定したからで、そのこと自体には問題は無いのだが、問題はそのmailの大きさ。
そのサーバは多数のユーザが登録されており、それぞれが短い間隔(2~10分程度)でとある処理を行うためにcrontabにその処理を登録している。
そのためcrondのlogが大量に吐き出され、それら全てがLogWatchによってrootに報告されてくるので、mailのサイズが少なくとも数メガバイト、多い日には20メガバイトにもなる。
これでは読み出すにも少々時間がかかるので、crondのlogだけは少なく出来ないかと考えた。
他の処理(sendmail,samba等)のlogは比較的少ないので、今回はcrondのみに絞って調べてみた。
最初はcrondそのものが吐き出すlogをwarningレベル以上のものだけに出来ないかと思ったが、それはやめてLogWatchが吐き出す出力を減らすことにした。
ところが/etc/log.d/logwatch.confを見ても個別のサービス単位でのlog-levelの設定は出来なさそうなので、少々悩んでしまった。
どのサービスのlogを出力するかは個別に選べ、そうするには/etc/log.d/logwatch.conf 内の「Service = All」になっている部分のAllをそれぞれのサービス名に書き換え、それを必要なサービス分書けば良いが、今回はAllのままにした。
というのは、いちいち出力するサービスを記述するのは面倒なうえ、出力漏れがあると少々困ってしまう。
今回はcrondだけのlogを減らしたいので、最終的は出力するscriptを修正してしまった。

修正したscriptは/etc/log.d/scripts/services/cronで、なにも出力させないのなら最初にexit(0)を書いて強制的に処理を終わらせれば良いのだろうが、それでは重大なメッセージがあった場合に見逃してしまうので、圧倒的に多く出力されている”Unmatched Entries”を減らすために、それを出力する行をコメントアウトした。
具体的にはscriptの最後の下記の部分
——————————————–
if ($#OtherList >= 0) {
print “\n**Unmatched Entries**\n”;
print @OtherList;
}

exit(0);
——————————————–
の3行目の”print @OtherList;”の行をコメントアウトした。
これで明日の朝に来るmailのサイズが小さくなることを期待しよう。

←クリックしてくれると嬉しいです。

samba

職場で昨年暮れに買ったLinuxサーバのセットアップをしている人間から「Windowsからネットワークドライブとして接続できない。」と言われたので、アカウントを作ってもらって少々調べてみた。
/var/log/samba/hoge.logには「’/home/hoge’ does not exist or permission denied when connecting to [hoge] Error was Permission denied」というエラーが出ている。
/etc/samba/smb.confを見てもきちんと定義してあるし、自分のホームディレクトリなので、パーミッションがおかしいとか存在しないということも有り得ない。
WindwosXPのマイネットワークから見るとサーバ名は見えるが、アクセスしようとすると「名前が重複しています。」と言われて接続できない。
確かにhostnameでホスト名を見ると未設定のままなので「localhost.localdomain」となっている。
最初はこれが原因だと考えてとりあえずhostnameコマンドで適当な(他と重複しない)ホスト名を設定して、
#/etc/rc.d/init.d/smb restart
でsambaを再起動。
これで大丈夫と思いサーバにアクセスすると共有名とホームディレクトリが見えるようになったが、どちらもアクセスしようとすると、アクセスする権限が無いと言われてアクセス出来ない。
サーバのログに出ているエラーをキーワードにして探したところ、どうもSELinuxが原因らしいということが判り、/etc/selinux/configファイルを見るとSELinuxが有効になっていた。
SELinuxを無効にするのが簡単だがセキュリティ上不安があるので、SELinuxを有効にしたままsambaを使えるようにするには
#/usr/sbin/setsebool -P samba_enable_home_dirs 1 (homeディレクトリのみ開放)
#/usr/sbin/setsebool -P samba_export_all_rw on (sambaで開放したいディレクトリ全てを開放)
を実行する必要があった(2行目を実行すれば1行目は実行不要)。
“-P”オプションを付けているのは再起動後も設定が有効になるようにするためで、試験的にアクセスを許可する等一時的に設定する場合は”-P”オプションは不要。
これでWindowsPCからsambaでアクセス出来るようになった。
SELinuxに関してはもっと沢山のbool値があり、
#/usr/sbin/getsebool -a
でbool値の名前と現在の状態を調べることが出来るので、おいおい調べていこう。

でもまだまだいろんなことがありそうだなぁ(笑)。

←クリックしてくれると嬉しいです。

明日から帰省

今年最後の(休日出勤での)仕事も無事終了!
去年はLinuxサーバをshutdownせずに電源ケーブルを抜かれたおかげで、1台はHDDが壊れ、もう一台は電源ユニットが壊れて結局2台のサーバを作り直す羽目になったけど、今年は自分でshutdownして電源を切ったのでその手のトラブルは皆無(ってこれが当たり前)。
まぁWindows2000Serverでどうやってリモートデスクトップ接続を有効にするのかを忘れてしまったけど、その設定は年明けでもいいし。
とりあえず年内の作業は終了!
というわけで明日から帰省できる。まぁ、明日はのんびり行こうっと。

←クリックしてくれると嬉しいです。

Linuxでプリンタのステータスが正しく表示されない(?)

Linux上で使われている印刷システムは現在CUPSが主流だと思うが、未だにlpdを使っているサーバが少なからずある。
印刷キューの状態は「lpc status ”プリンタ名”」で見ることが出来るが、ちょっと面白い現象に出くわした。
プリンタサーバ側にトラブルがあって複数のキューが溜まってしまったプリンタのステータスを見たら、
queuing is enabled
printing is enabled
21 entries in spool area
no daemon present
と出ていた。まぁこの表示自体には問題が無い(no daemon presentとなっているがプリンタサーバの応答が無いのでdaemonが止まっているため)。
止まっていたプリンタサーバを再起動し、lpc restart ”プリンタ名”で印刷を再開させてから再度ステータスを見ると、相変わらず「no daemon present」となっている。
ところがプリンタサーバ側にはデータが送られていて印刷が始まっている。
他の端末でステータスを見ると「sending to ”プリンタサーバ名”」となっていて正常に印刷データを送っていることになっている。
同じサーバの同じプリンタのステータスを見ているのに違う結果が表示されている。
不思議に思ったがこの違いは一般ユーザーで見ているかスーパーユーザーで見ているかというところにあった。
一般ユーザーで見ると「no daemon present」と表示され、スーパーユーザーで見ると「sending to ”プリンタサーバ名”」と正しく表示される。
/etc/printcapで指定するスプールディレクトリ(一般的には「/var/spool/lpd/”プリンタ名”/」)にあるstatusというファイルの内容もsending to ”プリンタサーバ名”となっていたが、一般ユーザーだときちんと読み取れなかったらしい。
パーミッションも644になっているので何故読み取れなかったは不明。こんなこともあるんだなぁ?

←クリックしてくれると嬉しいです。

←クリックしてくれると嬉しいです。

CUPSの設定

外部からCUPSの設定が出来ないのは初期状態ではlocalhostからのアクセスしか許可していないため。
/etc/cups/cupsd.confファイルを修正すれば他のホストから631番ポートにアクセスできるようになる。
(もちろんファイヤーウォール等で631番ポートを閉じていれば開けなくてはならないが)
修正するのは
<Location /admin>
    :
</Location>
の間にアクセスを規制している箇所があるので、そこにアクセスを許可したいホストのIPアドレスを追加すれば良い。
具体的には
Order Deny,Allow
Deny From All
Allow From 127.0.0.1 (注:localhostのこと)
となっているので、
Allow From 192.168.0.100
のように許可したいホストのIPアドレスを記述した行を追加する。
また、ポートの監視の設定が
Listen 127.0.0.1:631
と設定されている(このため他のホストからは接続できない)ので、ここを
port 631
とするか、もしくは
Listen 自ホストのIPアドレス:631
とすれば良い。

←クリックしてくれると嬉しいです。

サーバ構築の続き

昨日Linuxをインストールしたサーバ(というか普通のPCなんだけど)。
目的がファイルサーバとプリンタサーバなので、基本的なネットワークの設定を除けば、sambaとCUPSの設定をするくらい。
で、プリンタの設定は昨日の内にやっておいたので、今日はsambaの設定をした。
今のディストリビューションはX上で動く設定ツールがあるので、それを使ってやるんだろうけど(実際プリンタの設定はそうした)、普段はターミナルで設定をしている。
今回は試しにX上の設定ツールでsambaの設定をしてみたが、クライアントからなかなかつながらない。
sambaユーザーのパスワードが上手く設定されないようで、何回パスワードを設定し直しても
「ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。」
のメッセージが出て接続できない。
ターミナル上からsmbpasswdで設定しても変化が無い。
試しに別のユーザーをsambaユーザーに追加しても同じだったが、一度設定ツールを終了させたら新しいユーザーでは接続できるようになった。
どうも一度終了させないと設定が反映されないようだ。
#今まで手動で/etc/samba/smb.confファイルを書き換えた後はsmbdのリスタートをかけているが、設定ツールを使った場合は設定を保存すれば勝手にやってくれるものだと思っていた。
ところが最初に設定してあるユーザーではやはり接続できず、仕方が無いので一度sambaユーザーから削除して再度追加したらあっさり接続出来た。
sambaに関しては解決したが、今度はCUPSの設定画面に他のPCから接続出来なくなっているのを解決しなくてはならない。
調べてみると多少の設定が必要そうなので、これからPEPSI Azukiを飲みながら試してみるつもり。

←クリックしてくれると嬉しいです。

サーバ構築

久々にLinuxサーバの構築をしている。
以前ハードウェアの障害で回収してきたサーバを再度使用することになったので、障害が発生している箇所(電源ユニットとHDD)を交換して復旧させることに。
最初はHDDの障害だけだと思っていたので廃棄するPCから外したHDDを取り付けて起動しようとしたが、電源が入らず他のPCの電源をつないでみると起動したので、電源も交換することになった。
早速特売品の電源を購入してきて交換し、無事起動するようになったのでLinuxのインストールCDから起動してインストールを始めようとしたが、起動途中でハングしてしまいインストールできない。
CDに障害があるのかと思い他のインストールメディアを探したが、DVD-ROMだったのでCD-ROMドライブをDVD-Rドライブに交換した。
駄目元で元のCDを入れて起動したら無事にインストーラが起動してしまったので、そのままインストールすることにした。
起動途中でハングしたのはどうもCD-ROMドライブの読み取りが悪かったためらしい。
一度始めてしまえば後はインストールパッケージの選択で手間がかかった程度で無事にインストールは終了。
あぁー、後は細かい設定だなぁー。

←クリックしてくれると嬉しいです。

ICカード

理想科学工業の大型プリンタを導入した。
多人数で使うことが前提の機種なので、使用者を限定したりすることが出来る。
使用するにはプリンタ本体へのユーザー登録が必要で、ICカードやお財布携帯での認証が必要となる。
ICカードはメーカー純正品の他、FeliCaに対応しているカードなら使用できるらしく、試したところSAPICA(札幌市交通局のICカード)や、WAONカードも使えた。
#SAPICAがOKならKITACA(JR北海道のICカード)やSUICAも使えると思う。
他にもマンションのカードキー(のブランクキー)とか、変わったところではtaspoも使用可能だった。
要はICカードの個別の情報が読み取れればOKみたい。
携帯電話もアプリのダウンロード等は不要で、翳すだけで認証が可能だった。
メーカー純正のカードが¥3,000もするのに比べれば、ブランクのカードキーが原価¥1,600程、SAPICAのデポジット料金が¥500、WAONカードなら¥300、taspoに至っては無料(!)なので、喫煙者ならtaspoを使うのが一番安く済む。
共通規格ってのはこんな時に便利なんだなぁ、と思ってしまった。
そうそう、このプリンタのOSはLinuxだそうで、電源投入時にGRUBのカーネル選択画面やLinuxの起動画面が一瞬表示される。
LinuxはDebianGNULinuxらしい。
コントローラーのスペックだけ見るとまるでPC(笑)。

←クリックしてくれると嬉しいです。