Create  Edit  Diff  Mac OS X Serverで作る 小さな計算機室  Index  Search  Changes  RSS  Login

小さな計算機室 - PrinterMemo Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!!!ハングするCUPS

サーバー管理で「プリント」のところを選んだら、「いつまで経ってもクルクル」状態
に陥った。
G5にログインしてみると、/usr/sbin/cupsd -LがCPUを回し続けていたので、
killして、プリントサービスを立ち上げなおす。

/var/log/cups/error_logには
Unable to accept client connection - Too many open files.
なるメッセージが続いていた。

すぐにまた同じような状態になったので、サーバーを再起動。

時間がないので、ホントの原因は究明せず、そのまま放置。

!!!クオータが動かない

WgMでは、ユーザー毎にプリント枚数の上限が設定できることになっている。
ところが、この機能は全く正常に動作しない(サーバーのバージョンは
10.4.3)。
Appleのdiscussion board
[[http://discussions.apple.com/thread.jspa?threadID=132121&tstart=0]]
をみたら、このことはほとんどFAQみたいだった。

OS X Serverは細かいところがボロボロといった感じだ。

!!!不思議な設定

念のため/etc/cupsの中の設定を眺めていたら、/etc/cups/printers.confの中の
プリンターの設定が
QuotaPeriod 1
PageLimit 1
になっている。1秒おきにquotaをチェックして、各秒1枚を上限、というのが
プリンターのデフォルト設定らしい。
そこで、印刷枚数を制限するため、とりあえず1ヶ月100枚と設定してみる。
lpadmin -p プリンター名 -o job-quota-period=2592000
lpadmin -p プリンター名 -o job-page-limit=100
これが実際に有効になっているかどうかは後でチェックする。→ やっぱりダメみたいだ。

!!!気持ちの悪いエラー

そういえば、system.logを見ると、サーバーの起動時に
/usr/sbin/atprintd: cupsd's bootstrap server port not found
というエラーが沢山出ていて、気分が悪い。
そもそもAppleTalkでプリントする必要はないので、サーバ管理のプリントの中でAppleTalk
のチェックは外しておいた。

そうこうしているうちに、WgMで設定したクオータがちゃんと効いていることに
気づいた。
# プロトコルにAppleTalkは使わない
# CUPSのjob-page-limitを1より大きな数(例えば100)にしておく
と上手くいくのだろうか??。

!!!プリンタの利用状況

利用者毎のプリント枚数などは、プリントサーバの
/Library/Preferences/com.apple.printservicequotastats.plist
に書き込まれているようなので、CGIなどで利用者が情報を見られる
ようにしたい(いずれ)。

その後、日曜プログラミングで、プリントした枚数を確認するスクリプト
(CGI)を書いてみた:{{attach_anchor(printed-page.cgi)}}

plistをREXMLを使ってハッシュに変換して、その後で、該当するレコードを
順に検索しているので、はなはだ効率が悪い。
またユーザー認証もしていない、かなりの手抜き。
でも、枚数の確認なんてたまにしかやらないだろうし、他人のプリント枚数が
見えても差し支えはないだろうから、このまま使うことにする。

それにつけても、Mac OSで使われているXML形式で書かれたplistは、こういった用途には
とても使いにくい代物だ。
XML式のplistの有り難みを全く感じないのは、僕の理解不足なんだろうか・・・

などと思っていたらhttp://cakoose.com/wiki/plist_xml_is_pointlessなるページを
見つけた。

{{attach_src('printed-page.rb')}}

!!!プリントクォータ設定のポイント

これまでの経験から、以下が重要と思われる:

1.WgMでの設定枚数よりも、CUPSでのプリント枚数の上限が優先されるらしいので、プリンター毎に
lpadmin -p プリンター名 -o job-page-limit=とても大きな数
を設定しておくこと。デフォルトでは上限が1枚に設定されている(/etc/cups/printers.conf)。
ユーザーの通算プリント枚数がCUPSでの設定値を超えると、WgMでどのように設定しても
(枚数カウントをリセットしても)効かないみたいだ。

2,上記はプリントサーバーの設定をリセットすると書き換えられてしまうみたいなので要注意。

その後、OSが10.4.7になると、この方式は使えなくなってしまった(lpadminで設定しても、
printers.confに反映されていない)。一応quotasは効いているみたいなのだが、「XXX日あたりYYYY枚」
という設定をしておいても、XXX日が経過しても自動的にリセットされていない。困ったものだ。

!!!頂き物

物理の別の講座の方から、プリンター(EPSON LP-8700PS3)のトナーカートリッジを5本も分けていただいた。
何でも、そこの講座で2台所有していたプリンターがどちらも故障したので、それを期にリプレース
したとのこと。それで一気にストックを放出することになったのだそうだ。

思えば、端末室のLP-8700PS3は、1回修理に出して、その後はしばらく快調だったが、最近は
よくエラーを出すようになった。リセットすると復活するのでそのまま使い続けているけれども、
この様子では、頂いたカートリッジを使い切らないうちに、昇天してしまうかもしれない。

{{attach_form}}