ファックス・プリンタサーバとは、複数のプログラムを組み合わせて 構築したサーバのことです。efax とプリントサーバを組み合わせると、 プリンタにプリントアウトする要領で簡単にコンピュータからファックス を送ることができます。
efax をファックス・プリントサーバとして設定する際には、いくつか 問題があります。私は何度か構築に成功したので、そのノウハウを 集めて、簡単な mini-HOWTO を作ることにしました。コメントは、 <erez@newplaces.com> までお願いします。 以下で順を追って構築方法と利用方法、その他の注意点等を述べます。
まず、efax パッケージがインストールされているか 確認します。
RPM ベースのシステムなら、コマンド 'rpm -qv efax
' を
使ってください。
tar.gz 形式の efax ソースファイルは、 ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm/fax/efax08a.tar.gz から、バイナリの rpm パッケージは、 ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/efax-0.8a-3.i386.rpm から入手できます。
printcap
ファイルのエントリefax 付属文書では、printcap エントリの行末の :
が抜けています。
この問題を解決するには、/etc/printcap
に以下のエントリを
追加してください。
fax:\
:lp=/dev/null:\
:sd=/var/spool/fax:\
:if=/usr/bin/faxlpr:
fax コマンドへはハードリンクを使い、シンボリックリンクは使わないで ください。
次のコマンドを実行してください。
ln /usr/bin/fax /usr/bin/faxlpr
/usr/bin/fax
ファイルをご使用の環境に合わて編集します。
モデムに応じたファックスクラスを選択します。
CLASS=2.0
FROM
フィールドには、あなたの国際電話番号を設定します。
NAME
フィールドには、名前を設定してください。
NAME="Your Name"
そして、国際電話番号を国内番号に変換するための一行を加えます。 イスラエルから発信する場合は、以下のようになります。
TELCVT='sed -e s/+972/0/ -e s/+/00/' # Israel
/usr/bin/fax
ファイルの 586 行目には問題があるので、
cfile=.../
の部分を以下のように変更してください。
cfile=`/usr/bin/tail -1 lock`
cfile=`cat $cfile`
586, 587 行目の - (マイナス)記号は取り去る必要があります。
0) echo "$l" | mail -s "fax to $num succeeded" $user@$host ;;
*) echo "$l" | mail -s "fax to $num failed " $user@$host ;;
/var/spool/fax
ディレクトリ次のようにして /var/spool/fax
というディレクトリを作成します。
mkdir /var/spool/fax
chmod 777 /var/spool/fax
ロックファイル (lock file) (/var/spool/fax/lock
) を作成します。
作成されたファイルのパーミションは適切ではないので、次のコマンドを使って
正しく設定してください。
touch /var/spool/fax/lock ; chmod 644 /var/spool/fax/lock
/dev/modem
スペシャルファイルefax プログラムは、/dev/modem
ファイルが実際に存在することを前提
にしているので、シンボリックリンクを張っているだけでは動きません。
モデムが接続されている /dev/cua?
と同じメジャー番号とマイナー番号
が付いた /dev/modem
デバイスファイルを作成してください。
ls -lL /dev/modem
rm /dev/modem
mknod /dev/modem c Mj Mi
chmod 666 /dev/modem
Mj
の部分には 5 を、Mi
の部分には cua0
なら
64 を、cua1
なら 65 等を入れてください。それゆえ、モデムが
cua1
に接続されている場合は、次にようになります。
mknod /dev/modem c 5 65
/var/lock
ディレクトリ/var/lock
ディレクトリのモードを変更します。
chmod 1777 /var/lock
ファックスプリンタを使うときは -P
オプションを付け、
-J
オプションでファックス番号を指定します。
次のような lpr
コマンドを使ってください。
lpr -Pfax -J <Fax-Number> [file-names]
any command | lpr -Pfax -J <Fax-Number>
-J
オプションの後に、宛先の番号を指定してください。
/etc/printcap
に以下の項目を加え、クライアント側の Linux 機には
スプールディレクトリ等を追加します。
fax:\
:sd=/var/spool/fax:\
:mx#0:\
:sh:\
:rm=host.domain:\
:rp=fax:
さらに、クライアントのホスト名をサーバー側の /etc/hosts.lpd
に
書き加えます。
使い方はいままで通りです。
注意:
efax がファックス各ページに書き込むヘッタ文字列は、ファックスを送付する ユーザー名が変わっても同じです。(これは、アップデートの際に修正される かもしれません。)
LPRng 印刷管理ソフトウェアでは、コントロールファイルの扱いが異なって います。
この問題点に気づき解決策を提供してくれた Montecchiani <m.luca@usa.net>
に感謝します。以下に /usr/bin/fax
ファイルの更新個所を記載します。
以下の行を 586, 587 行にある cfile=.../ 部分と置き換えてください。
# Modified to work also with the LPRng package
# Luca Montecchiani (08/11/97 m.luca@usa.net)
if [ !-z "$CONTROL_FILE" ]
then
cfile=`cat tail -1 lock`
cfile=`cat $cfile`
else
cfile=$CONTROL_FILE
fi