« 2013年5月 | トップページ | 2013年7月 »

2013年6月

2013年6月29日 (土)

ファイルサイズの監視とバックアップとリストア

職場でパソコンを使った行き先掲示板を使っているのだが、掲示板のデータが時々壊れるので対策をしてみた。根本的な対策ではなくて、場当たり的なものだけど (^_^;)

「デジボード」や「今どこボード」という、ネットワーク上の共有ファイルに居場所が書き込まれ、各クライアントPCから共有ファイルを読み書きする行き先掲示板を使っている。掲示板のユーザが30人以上になったあたりから、共有ファイルが壊れてしまうことが起こるようになった。壊れないまでも、共有ファイルの更新(書き込み)がなかなか出来ないということも多い。共有ファイルはWindows Server(バージョンはよく知らないが)に置いてある。

デジボードの場合は共有ファイルの中身がなくなり、ファイルサイズが0になる。そこで、ファイルサイズをチェックして、サイズが0でなければバックアップフォルダにバックアップ、0になっていたらバックアップから復元するバッチファイルを書き、Windowsのタスクスケジューラで5分毎に繰り返し実行することにした。

バッチファイルの中身はこんなの。

@echo off
set DATAPATH=サーバー上の共有ファイルのあるフォルダ、例えば\\Server\public\digiboard
set FNAME=共有ファイルの名前、例えばtest.dbd
set BUPPATH=バックアップファイルの保存先、例えば\\Server\public\digiboard\backup
set OUTFILE=復元のログファイルの名前、例えばRESTORE.LOG

for %%i in ( %DATAPATH%\%FNAME% ) do set size=%%~zi
echo %size%
if %size%==0 goto RESTORE

if exist %BUPPATH%\NUL goto BACKUP
md %BUPPATH%

:BACKUP
copy %DATAPATH%\%FNAME% %BUPPATH% /y
goto END

:RESTORE
copy %BUPPATH%\%FNAME% %DATAPATH% /y
SET DTSTR=%DATE% %TIME%
ECHO %DTSTR%>>%BUPPATH%\%OUTFILE%

:END
EXIT

ファイルの復元を行った時は、バックアップフォルダのログファイルに復元日時が書き込まれる

今どこボードの方はファイルが壊れた時に中身が空になるようなのだが、その時にアクセスしていた数名の情報が書き込まれるようで、ファイルサイズは0にならない。職場の使用状況だと、共有ファイルは通常は4KB程度で、おかしくなった時は150バイト程度のサイズになっているので、とりあえず異常のしきい値として2000バイトとしてファイルサイズのチェックをかけてみた。

@echo off
REM データフォルダ
set DATAPATH=サーバー上の共有ファイルのあるフォルダ、例えば\\Server\public\imadokoboard
REM データファイル名
set FNAME=共有ファイルの名前、今どこボードの場合はStatus.txt
REM バックアップフォルダ
set BUPPATH=バックアップファイルの保存先、例えば\\Server\public\imadokoboard\backup
REM ログファイル名
set OUTFILE=復元のログファイルの名前、例えばRESTORE.LOG
REM 異常ファイルサイズのしきい値。このサイズを下回ったら異常と判断。
set THRESHOLD=異常ファイルサイズのしきい値、例えば2000

for %%i in ( %DATAPATH%\%FNAME% ) do set size=%%~zi
echo %size%
if /I %size% LSS %THRESHOLD% goto RESTORE

if exist %BUPPATH%\NUL goto BACKUP
md %BUPPATH%

:BACKUP
copy %DATAPATH%\%FNAME% %BUPPATH% /y
goto END

:RESTORE
copy %BUPPATH%\%FNAME% %DATAPATH% /y
SET DTSTR=%DATE% %TIME%
ECHO %DTSTR%>>%BUPPATH%\%OUTFILE%

:END
EXIT

| | コメント (1) | トラックバック (0)

2013年6月22日 (土)

Windowsのスタートアップフォルダの項目の起動時にエラーが

Windowsにログインした時に実行されるスタートアップフォルダ内のソフトが、たまにエラーで異常終了することがある。タスクトレイにアイコンを登録するものがダメなことがあるようで、タスクトレイへの登録が4秒以内に完了しないとタスクトレイにアイコンが表示されないという制限(?)に関係しているのかもしれない。ログイン直後はサービスが立ち上がったりしてシステムが忙しいので、登録が間に合わないというのはありうる話だと思う。

対策としてはスタートアップに登録してあるアイコンを全てバッチファイルからの起動に変更し、バッチファイルにはソフトを起動する度にpingで少し時間間隔を開けるようにしてみた。スタートアップにはこのバッチファイルだけ登録する。このように変更してからは、スタートアップ(に登録していた)ソフトが立ち上がるときにエラーで落ちることはなくなった。

| | コメント (0) | トラックバック (0)

2013年6月15日 (土)

Excel 2003のファイルを2007で開いたらテキストボックスの文字に影が

これはMicrosoftのサイトにもある有名な話のようで、Excel 2010では文字に影はつかない。

Excel 2003でファイルを作った時にテキストボックス自身に影がつく設定にしておくと、Excel 2007で開いた時にテキストボックス内の文字に影がつくという話。

職場ではExcel 2003/2007/2010が混在していて(会社指定の共通フォーマットは2003形式)、時々わけの分からない事故(?)が起こる。

| | コメント (0) | トラックバック (0)

2013年6月 8日 (土)

Mac OS Xでログアウト、再起動ができなくなったとき

ベージュG3のMac OS X Tigerで、たまにログアウトや再起動、システム終了ができなくなることがある。

このときは、キーボードのパワーオンキーを押しても「コンピュータを今すぐシステム終了してもよろしいですか?」の確認ダイアログが出ないし、アップルメニューから再起動やシステム終了、ログアウトを選んでも何も起きない。ログアウトに関係する動作ができないだけで、コンピュータは普通に使える。このマシンはほかのユーザを設定していないので、ファーストユーザースイッチでユーザーの切り替えが行えるかどうかはわからないが。

以前はしょうがないのでcontrol + command + PowerOnで強制的に再起動をかけていた。

今回はアクティビティモニタでloginwindowを終了させてみた。loginwindowを終了させようとすると、「“loginwindow”を終了すると、ログアウトしてしまいます。」という確認メッセージが表示される。ここで表示されている「終了」ボタンを押すと無事にログアウトできた。

次からもloginwindowを終了させることにしよう。

| | コメント (0) | トラックバック (0)

2013年6月 1日 (土)

Windows 7 ノートPCの不具合

同僚のPCの障害。

ノートPC, Windows 7 SP1でポートリプリケータを使用して外部ディスプレイと有線LANとHDDに接続。

症状は、

  • ポートリプリケータに接続した状態ではアクティブディレクトリへのログオンに失敗する
  • ノートPC本体だけで無線接続でアクティブディレクトリへログオンできる
  • ポートリプリケータに接続した状態でPCをスリープさせ、スリープから復帰させるときにアクティブディレクトリへの再接続に失敗して再ログオンできず強制再起動せざるを得ない

というもので、どうやらアクティブディレクトリがらみの問題のようだ。使用者が言うには、最近挙動がおかしかったのでデバイスマネージャのあたりをいじっていたらよけいひどくなったとのことだが、具体的に何をしたのかは不明 (^^;)

ログオンに失敗したときのメッセージは、「ドメインコントローラとの接続の信頼性に問題があります」というようなもの(ちょっと不正確)。XPでの問題と同じだろうと推測して、やはり同じようにアクティブディレクトリから外してワークグループに所属させ、再度アクティブディレクトリに参加させる。

一応、問題は解決した模様。

| | コメント (0) | トラックバック (0)

« 2013年5月 | トップページ | 2013年7月 »