More from: linux

9時間のずれ

職場のサーバを仮想化した際に、一部のサーバのシステム時刻が9時間ほど進むようになってしまっていた。
9時間遅れるのであれば、ハードウェアクロックがUTCになっているにも関わらず設定上はlocaltimeになっていることが考えられるが、反対に9時間進んでいるのが不思議だ。
hwclock -r
でハードウェアクロックを確認してみると、システム時刻(正しく修正済み)に比べて9時間前の時刻を示していたので、ハードウェアクロックはUTCで設定されていた。
そこで
/etc/sysconfig/clock
というファイルの中を確認してみると、
UTC=false
となっていたので、これを
UTC=yes
にしておいた。
これで次回の起動時にどうなるかだな。

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

うまくいった!   と思ったらorz

一昨日から悩んでいるRISOのプリンタ「ORPHIS X7250A」へのLinuxサーバ経由での印刷が上手くいった!
サーバ側のSAMBAの設定でsmb.confのprinterセクションにあるguest ok=noをyesにしたら一度は印刷データをPCからサーバに送ることが出来、そのデータが正しくプリンタまで送られて印刷できた。

と思って実際に使用する部署のPCでチャレンジしたところ全く症状が改善していなかった・・・・・・orz
しかもその後一度(ならず数度)は印刷できたPC(私が普段使っているPC)でも印刷が出来なくなってしまっていた・・・・・
症状は昨日までと同じで、サーバへのデータ送信が出来ない状態。

うーん、どうしたものか・・・・・・・・

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

ちょっとだけ前進か?

RISOのカラープリンタ(「ORPHIS X7250A」)へLinux機からの印刷が出来なくて悩んでいる。
最初はlpdを使ったサーバから印刷させようとして/etc/printcapをいろいろ弄っていたが、どうやってもプリンタ側へのデータの送信が出来なかった。
「もしかしてlprに対応していないのか?」とも思ったが、仕様上は対応していることになっている。
それでも上手くいかないので次にcupsで運用しているサーバでRAWポート(9100番ポート)にデータを送ってみたが、データは送られたように見えるが印刷が出ない(これはプリンタ側に無いユーザーで送ったためと思われる)。

数時間の格闘の末lpdで運用しているサーバからのデータ送信に成功した(と思われる)。
/etc/printcapにはリモートホスト名とリモートホスト上のプリンタ名を記述するが、そのプリンタ名が違っていることが判明。
「ORPHIS X7250A」上のプリンタ名は単なる「lp」らしく、/etc/printcapのrpにlpを指定したところ、それまでスプールに溜まっていたデータが無くなった(プリンタに送られたと思われる)。
それまで「lpt1」やら「pr1」やらのプリンタ名を試していたけど、まさかこんな単純な名前だっとわ(汗)。
気付いたきっかけはWindowsXP上の「Standard TCP/IPポート」の詳細設定で、プロトコルをRAWからLPRに変えてLPR設定のキュー名を「lp」にしたら印刷が出来たこと。
このことで「ORPHIS X7250A」が持つプリンタ名は「lp」だろうと見当がついた。

これでサーバからプリンタへのデータ送信に関しては解決したと思われるが、サーバ上に定義したプリンタに対してクライアントであるWindowsPCから印刷データを送ることが出来ない・・・・・・
現在の接続方法はLPTポート(LPT1とかLPT2)に対してnet useコマンドでLinuxサーバ上のプリンタを接続していて、プリンタの使用するポートとしてLPT1等を指定している。
同じサーバ上の他のプリンタに対してはこの方法で問題無く印刷データを送ることが出来ている(印刷できている)。
ところがサーバ上に定義したRISOのカラープリンタ(「ORPHIS X7250A」)を接続したポートにはデータを送ることが出来ない。
テストページの印刷を試すと印刷開始から即座に
「このドキュメントの印刷に失敗しました。」
のメッセージが出てスプールに残ったままになってしまう。
サーバ上のスプールディレクトリのアクセス権とかもチェックしたが他のプリンタとの違いは無い。
PCからサーバにデータを送ることが出来なければ印刷されるかどうかも解らないままだ。
この問題に間しては昨夕から一歩も進んでいないなぁ・・・・・・・
明日もまたこの問題で悩むことになりそうだけど、多少思いついたことがあるので、明日はそれらを試して見ることにしよう。

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

ORPHIS X7250AにLinuxからの印刷が出来ない・・・・・・・

職場には大型のカラープリンタ「RISO ORPHIS X7250A」がある。
普段は高速のカラーコピー機として使われているが、本来はプリンタなので一部のPCからカラープリンタとして使いたいという希望があり、それらのPCにドライバをインストールした。
ネットワークはいくつかのサブネットに分割していて、その間ではファイルやプリンタの共有を許可していないので、同じサブネット内のPCからしか直接は接続できなくなっている。
なのでプリンタサーバとしているLinux機を経由して印刷しようとしているが、これがなかなか繋がらない。
最初はデータの転送に必要なポートが開いていないのかと思って設定を確認すると、サーバとプリンタの間は特に制限は無いことが判明したので、通信が出来ない訳では無さそう。
プリンタの仕様を見ると各種の印刷用プロトコル(lpr,http,IPP,RAW)に対応しているとなっているのでサーバ側の設定でlprとRAWを試してみた。
RAWに設定したときはサーバ側からはプリンタへのデータ送信が完了した(ように見える)が、プリンタ側のスプールにはデータは入っていなかった。

現在はここで手詰まり状態となっている。
引き続き調べて試せることは試してみよう・・・・・・・

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

昨夜の処理は終わっていたけど(汗)

昨日書いたスクリプトは無事に動作して、今朝見ると更新されたファイルだけをアーカイブすることに成功していた。
なので、それらのファイルを転送して展開することで更新されたファイルを新しいサーバに移すことは出来た。

ところが、同じ処理を毎日実行させようとしてスクリプトをコピーして多少手直ししてcrontabに登録しておいたのだが、こちらが動作していなかったorz
原因は単純で、なんとスクリプトのファイルに実行権限が無かった・・・・・・・・
コマンドラインからそのまま実行しようとして始めて気付くという(爆)。
慌てて
chmod +x スクリプト名
で実行権限を与え、さらにスクリプト内で使用している各種のコマンドの記述をフルパスに修正した。
以前コマンドラインからは実行すると動作するのに、crontabに登録すると動作しないことがあり、その時はコマンドパスが通っていないことが原因だったので、今回も同じことが無いようにしたということ。

最近は滅多にスクリプトを書くことも無くなったので、僅か数行のスクリプトを書くだけで苦労してしまった・・・・・・

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

スクリプトは書いたけど・・・・・・・・

データの移動の為に過去に転送した時以降に更新されたファイルをアーカイブするスクリプトを書いた。
きちんと動作することは確認できたのだけど、いざ実行するとかなり処理時間がかかってしまう、、、、、、、
これはfindコマンドが検索結果を毎回lhaに渡し、その度にlhaがアーカイブファイルのバックアップを取るためと思われる。
lhaに一括でファイル名を渡すことが出来ればバックアップを取らずに処理されるので、もっと処理速度を上げられる筈なのだがその手段が今のところ分からない。
なので、今日はこのままサーバに処理をさせたままにして引き上げることにした。
明日の朝には処理が終わっていることを期待しよう(汗)。

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

正確には-fぢゃなかった(汗)

昨日からfindコマンドのオプションについて書いているけど、”-f”というオプションではなく、”-type”オプションに”f”というパラメータを渡すことで、ファイルのみの検索が可能になるということだった。
自分では-typeオプションを使っていながら、ここの記事に書くときに取り違えていたという・・・・・・・・
先の記事の使用例にもちゃんと”-type f”と書いているにも関わらずタイトルには”-f”オプションって書いている。
なにを勘違いして書いたかなぁ?

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

“-f”オプションで

昨夜書いたけど、findでファイルのみを検索する場合は”-f”オプションを付けることで解決した。
ついでに”-exec”オプションでlhaを実行させて検索されたファイルだけをアーカイブすることも出来た。
これで差分のアーカイブが簡単に出来そうな気がしてきたよ。
ただなぁ、検索対象のディレクトリ(というかファイルシステム)が結構あるんだよなぁ、、、、、、
しかも転送と受け側での展開は未だに手動で実行するので、完全自動と言うわけにはいかないのが辛いとこだ(汗)。

結局
find . -mtime -3 -and -not -name \*.zip -not -name \*.lzh -not -name \*.bak -type f -exec lha a hoge.lzh {} \;
のようなコマンドを実行して、3日前以降に更新されたファイルで拡張子がzipとlzhとbak以外のファイルをhoge.lzhに固めるようにした。

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

“-f”オプションだったのか・・・・・・・

findコマンドの結果にディレクトリが出てくるのは除外したいと先の記事に書いたけど、”-f”オプションで”ファイルのみ”の検索が出来るらしい。
今は自宅のLinuxPCの電源を落としてしまったのですぐには検証できないが、明日職場で早速試してみよう。
うまくいけば差分を抽出したい全てのディレクトリに対するスクリプトを書くことが出来るかも(汗)。
そうなれば随分と楽になるなぁ。

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

差分を取るのがちと面倒

先日から行っているデータの転送は大きなデータを纏めて転送するのは今晩でひとまず終わりそう。
なので、今日からは前回転送後に更新されたり追加されたりしたファイルを抽出してアーカイブする作業を始めた。
更新されたファイルを探すにはfindコマンドを使えば出来る。
#find . -mtime -2 -print (カレントディレクトリ以下で二日以内に更新されたファイル及びディレクトリ名を出力する)
ところが上記のようなfindの出力をそのままlha等に渡すとディレクトリが更新されている場合にその中のファイルが全て対象になってしまうので、今のところfindの出力をテキストに吐き出してから手作業でファイル名を抜き出してlhaで圧縮している。
これに意外と手間がかかるので、なにか良い方法が無いかと思案中。
上手い方法が見つかればスクリプトでも書いて自動で処理させるんだけどなぁ、、、、、、、

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