ScanSnap を共有する

[戻る]

ちょっと前仕事場が変わったんですが, 新しい職場の困った点に ScanSnapが無いことがありました. もともと整理整頓は得意じゃない性格のため, 従来は会議等で配布された資料はどっかの山に埋もれ, 数年後に発掘されていたのですが, 古い職場で ScanSnap を使うようになってからは 会議が終わった後すぐにペペッと取り込んで破棄 (リサイクル) してました. 机もすっきりしますし, 後日必要になった際, 何時あった会議ということさえ覚えていれば簡単に取り出せます.

っというわけで, 新しい職場でも「欲しい」と申請し入手に成功しました (S500). とは言えそんなに安い品ではありません. できれば職場のみなさんと共有したいです.

まぁ, 24 時間起動中の共用パソコン (Windows) があれば楽でしょうがありません. しかたないので私が普段使っている PC に繋ぎました. この PC の HDD の一区画を共有すれば, それで済むという話もありますが, せっかく共有させてる LANDISK があるのでそれを使うようにしてみました.

以下その手順です.

  1. LANDISK の無制限共有領域に適当な名前のディレクトリを掘る
  2. インストールと接続はマニュアル通り行います.
  3. ScanSnapManager を開く.
  4. 「アプリ選択」タグで 「読み込みが終わった後で使用するアプリケーション」を 「起動しません(ファイル保存のみ)」にする.

    これは, 私が仕事中に誰かが取り込んだ際, 画面に変なアプリが立たない ためです.

  5. さらに「保存先」タグで保存先を 1. のディレクトリにする.

まぁこれだけだったら別に目新しくもなんとも無く, 別にローカルディスクを共有してもいいんですが, せっかく LANDISK (Linux-box) を使っているんだからもう少し便利にしてみました.

ここなどて書いてきたように, 私は LANDISK 標準の WEB 設定を止め, 独自のページを作ってブックマークや資料公開, 収拾ページ文献の namazu 検索などに使っています. まずはそこから見えるようにしてみました.

要は独自ページのディレクトリから上記 1. で設定した保存先へシンボリックリンクを はるだけなんですが, ちょっとヤヤこしいんで私の環境を絵にしてみます. LANDISK に特化してますが, 必要に応じ各自の環境に読み替えてください. 場所によってはパーミッションを開放しないとブラウザから見えませんので 気を付けてください.

/usr/local/apatch/html.org      ← もともとあった html ディレクトリ
                 /html          ← /mnt/hda3/share/html へシンボリックリンク
/mnt/hda3/share/html            ← WEB トップディレクトリ
/mnt/hda3/share/html/index.html ← WEB トップページ
               /html/ScanSnap   ← /mnt/hda3/share/open/ScanSnap へシンボリックリンク
/mnt/hda3/share/foo             ← 私個人の共有ディレクトリ
               /foo/htdocs/     ← /mnt/hda3/share/html へシンボリックリンク
/mnt/hda3/share/open            ← アクセス無制限の共有ディレクトリ
               /open/ScanSnap   ← 上記 1. で掘ったディレクトリ
さらに /mnt/hda3/share/html/bin というディレクトリを掘り, その下に以下のようなファイルを scan.cgi という名前で保存します.
#!/usr/bin/perl

printf ("Content-type: text/html\n\n");
printf ("< html >\n< head >\n");
printf ("< title > Scan Snap < /title >\n");
printf ("< META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=shift-jis\" >");
printf ("< /head><body >\n");

$path = $BASEDIR . "../ScanSnap/";

opendir(THIS, $path);
@all = grep(!/^\./, readdir(THIS));
closedir(THIS);

printf ("< OL >\n");
foreach $a (@all){
    if ($a=~/.pdf$/i){
	$file = $path . "/" . $a;
	printf ("< LI > < A HREF=\"%s\"> %s < /A > \n", $file, $a);
    }
}
printf ("< /OL >\n");
printf ("< HR >\n");
printf ("< A HREF=\"../index.html\">[Back]</A >\n");

printf ("< /BODY > < /HTML >\n");

後は http://landisk の IP アドレス/bin/scan.cgi へアクセスすると一覧が見れる ため, 「ネットワークコンピュータ」が使えない端末からもスキャンができます.

続いて消去し忘れる人が出てくるため, 生成後 1 週間経過したら自動消去しちゃいましょ. 以下のようなファイルを bin/rmoldpdf という名で保存します.

#!/usr/bin/perl

$WAITTIME=604800;

$path = $BASEDIR . "/mnt/hda3/share/html/ScanSnap/";

opendir(THIS, $path);
@all = grep(!/^\./, readdir(THIS));
closedir(THIS);

$rmtime = time()-$WAITTIME;

foreach $a (@all){
    if ($a=~/.pdf$/i){
	$file = $path . "/" . $a;
	@st = stat($file);
	if ($st[8] < $rmtime){
	    unlink($file);
	}
    }
}
そうそう, 改行コードは CR のみじゃないと駄目ですから気を付けてください. 後, パーミッションもね.

んで, 定期的に起動するように設定します. LANDISK の場合 ここで書いたように crontab -e じゃなく, /home/LANDISK/crontab か /home/LANDISK/script/crontab-ntp に以下のように記述し再起動します.

3 1 * * 0 /mnt/hda3/share/html/bin/rmoldpdf
上記例では毎週土曜の深夜 (日曜の朝) に動かしてます. 必要に応じ書き換えてください.

とまぁこんな感じで環境構築してますが, そもそも LANDISK (Linux マシン) は 常時起動しているわけですから LANDISK の USB ポートに ScanSnap が繋がれば 丸く収まるわけです. というわけで Linux から動けばいいんですが, SANEを見ると サポートされて無いようですね. PFU さんにはがんばって欲しい所です. こりゃこりゃ


2006.3