「Sambaをプリントサーバとして設定する」の版間の差分
ページの作成:「== 前書き == Sambaをプリントサーバーとして設定すると、ネットワーク内のクライアントは、SMB(サーバーメッセージブロック...」 |
|||
(同じ利用者による、間の13版が非表示) | |||
6行目: | 6行目: | ||
== サポートされているプリントサーバーのバックエンド == | == サポートされているプリントサーバーのバックエンド == | ||
Sambaは、[https://www.cups.org/ CUPS]や[http://www.lprng.com/ LPRng]などの複数のプリントサーバーバックエンドをサポートしています。完全なリストについては、<code>smb.conf(5)</code>のマニュアルページの<code>printing</code>パラメータを参照してください。 | |||
{{imbox | |||
| style = margin:4px 2% | |||
| text = プリンタサーバのバックエンドをSambaホスト上にローカルに設定する必要があります。 Sambaは印刷ジョブをリモートホストに転送できません。ただし、ジョブをリモートプリントサーバーに転送するには、ローカルプリンタサーバーのバックエンドを構成することができます。 | |||
}} | |||
バックエンドの設定方法の詳細については、プリントサーバーのマニュアルを参照してください。 | バックエンドの設定方法の詳細については、プリントサーバーのマニュアルを参照してください。 | ||
== Samba | === Samba <code>CUPS</code>または<code>IPRINT</code>バックエンドのサポート === | ||
<code>CUPS</code>または<code>IPRINT</code>プリントサーバーのバックエンドを使用する場合、SambaはCUPSサポートを有効にしてビルドされている必要があります。確認 | |||
するには、次を入力します。 | するには、次を入力します。 | ||
<pre> | <pre># smbd -b | grep "HAVE_CUPS" | ||
HAVE_CUPS</pre> | HAVE_CUPS</pre> | ||
出力が表示されない場合: | 出力が表示されない場合: | ||
* Sambaは<code>--disable-cups</code>パラメータを使ってビルドされました。 | * Sambaは<code>--disable-cups</code>パラメータを使ってビルドされました。 | ||
* Sambaの<code>configure</code> | * Sambaの<code>configure</code>スクリプトは、CUPSサポートに必要なライブラリを見つけることができませんでした。詳細は、[[Sambaのビルドに必要なパッケージ依存関係]]を参照してください。 | ||
== プリントサーバーバックエンドへのプリンタの追加 == | == プリントサーバーバックエンドへのプリンタの追加 == | ||
49行目: | 54行目: | ||
<pre>printer_name:sd=/var/spool/lpd/printer_name/sh:mx=0:mc=0:rm=Printer_DNS_name_or_IP_address</pre> | <pre>printer_name:sd=/var/spool/lpd/printer_name/sh:mx=0:mc=0:rm=Printer_DNS_name_or_IP_address</pre> | ||
: プリンタ名は、Sambaを使用してプリンタを共有するときにsmb.confで使用されます。使用されるオプションの詳細については、printcap(5)のマニュアルページを参照してください。 | |||
* スプールディレクトリを作成するには、次のように入力します。 | * スプールディレクトリを作成するには、次のように入力します。 | ||
<pre> | <pre># checkpc -f</pre> | ||
* LPRngサービスを再起動します。 | * LPRngサービスを再起動します。 | ||
59行目: | 64行目: | ||
Samba spoolssdは、smbdサービスに統合されたサービスです。 Sambaをプリントサーバーとして構成した場合は、spoolssdをさらに有効にして、 | Samba spoolssdは、smbdサービスに統合されたサービスです。 Sambaをプリントサーバーとして構成した場合は、spoolssdをさらに有効にして、 | ||
< | |||
< | * パッケージ対応のWindowsドライバをサポートします。 | ||
< | * 多数のジョブまたはプリンタでプリントサーバーのパフォーマンスを向上させます。 | ||
< | : spoolssdがなければ、Sambaはsmbdプロセスまたは各印刷ジョブをフォークし、<code>printcap</code>キャッシュを初期化します。多数のプリンタの場合、キャッシュを初期化するときにsmbdサービスが複数秒間応答しなくなることがあります。 <code>spoolssd</code>サービスを使用すると、印刷ジョブを処理する前処理済みの<code>smbd</code>プロセスを遅延なく開始することができます。主な<code>spoolssd </code> <code>smbd</code>プロセスは、少量のメモリを使用し、子プロセスをフォークして終了します。 | ||
spoolssdサービスを有効にするには: | spoolssdサービスを有効にするには: | ||
* smb.confファイルの[global]セクションを編集します。 | * smb.confファイルの[global]セクションを編集します。 | ||
:* 次のパラメータを追加します。 | |||
<pre>rpc_server:spoolss = external | <pre>rpc_server:spoolss = external | ||
rpc_daemon:spoolssd = fork</pre> | rpc_daemon:spoolssd = fork</pre> | ||
:* 必要に応じて、次のパラメータを設定できます。 | |||
:: {| class = "wikitable" | |||
!パラメータ | |||
!デフォルト | |||
!説明 | |||
|- | |||
|spoolssd:prefork_min_children | |||
|5 | |||
|子プロセスの最小数 | |||
|- | |||
|spoolssd:prefork_max_children | |||
|25 | |||
|子プロセスの最大数 | |||
|- | |||
|spoolssd:prefork_spawn_rate | |||
|5 | |||
|新しい接続が確立された場合、Sambaはこの数の新しい子プロセスを<code>spoolssd:prefork_max_children</code>に設定された値までフォークします。 | |||
|- | |||
|spoolssd:prefork_max_allowed_clients | |||
|100 | |||
|子プロセスのクライアント数。 | |||
|- | |||
|spoolssd:prefork_child_min_life | |||
|60 | |||
|子プロセスの最小有効期間(秒単位)。 60秒が最小です。 | |||
|} | |||
* Sambaを再起動します。 | * Sambaを再起動します。 | ||
81行目: | 109行目: | ||
再起動後、Sambaは自動的にsmbdのサブプロセスを開始します。 | 再起動後、Sambaは自動的にsmbdのサブプロセスを開始します。 | ||
<pre> | <pre># ps axf | ||
... | ... | ||
30903 smbd | 30903 smbd | ||
30912 \ _ smbd | 30912 \_ smbd | ||
30913 \ _ smbd | 30913 \_ smbd | ||
30914 \ _ smbd | 30914 \_ smbd | ||
30915 \ _ smbd</pre> | 30915 \_ smbd</pre> | ||
== Sambaでのプリントサーバーサポートの有効化 == | == Sambaでのプリントサーバーサポートの有効化 == | ||
102行目: | 131行目: | ||
* pathパラメータに設定されたスプールディレクトリを作成します。 | * pathパラメータに設定されたスプールディレクトリを作成します。 | ||
<pre> | <pre># mkdir -p / var / spool / samba / | ||
# chmod 1777 / var / spool / samba /</pre> | |||
* Sambaをリロードする: | * Sambaをリロードする: | ||
<pre> | <pre># smbcontrol all reload-config</pre> | ||
== プリンタの共有 == | == プリンタの共有 == | ||
123行目: | 153行目: | ||
* Sambaをリロードする: | * Sambaをリロードする: | ||
<pre> | <pre># smbcontrol all reload-config</pre> | ||
=== プリンタの手動共有 === | === プリンタの手動共有 === | ||
プリンタを手動で共有するには: | プリンタを手動で共有するには: | ||
* 自動プリンタ共有が無効になっていることを確認します。 | * 自動プリンタ共有が無効になっていることを確認します。 「[[#自動プリンタ共有を無効にする|自動プリンタ共有を無効にする]]」を参照してください。 | ||
* smb. | * <code>smb.conf</code>ファイルにプリンタの共有を追加します。 | ||
<pre>[Samba_printer_name] | <pre>[Samba_printer_name] | ||
135行目: | 166行目: | ||
printable = yes | printable = yes | ||
printer name = printer_name_in_the_back_end</pre> | printer name = printer_name_in_the_back_end</pre> | ||
<code>printer name</code>パラメータに、ローカルプリントサーバーのバックエンドで使用されているプリンタの名前を設定します。 | |||
* Sambaをリロードする: | * Sambaをリロードする: | ||
<pre> | <pre># smbcontrol all reload-config</pre> | ||
== Windowsクライアント用のプリンタドライバの自動ダウンロードを設定する == | == Windowsクライアント用のプリンタドライバの自動ダウンロードを設定する == | ||
「[[ | 「[[Windowsクライアント用の自動プリンタドライバのダウンロードをセットアップする]]」を参照してください。 |
2018年3月25日 (日) 11:56時点における最新版
前書き
Sambaをプリントサーバーとして設定すると、ネットワーク内のクライアントは、SMB(サーバーメッセージブロック)プロトコルを使用してSambaホストに印刷ジョブを送信できます。このドキュメントに示されている例は、バックエンドのraw のプリンタを使用しています。この構成では 、印刷ジョブがクライアント上のドライバによってフォーマットされているため、それ以上の処理やフィルタリングを行わずにプリンタで処理することができます。
サポートされているプリントサーバーのバックエンド
Sambaは、CUPSやLPRngなどの複数のプリントサーバーバックエンドをサポートしています。完全なリストについては、smb.conf(5)
のマニュアルページのprinting
パラメータを参照してください。
{{#invoke:Message box|imbox}}
バックエンドの設定方法の詳細については、プリントサーバーのマニュアルを参照してください。
Samba CUPS
またはIPRINT
バックエンドのサポート
CUPS
またはIPRINT
プリントサーバーのバックエンドを使用する場合、SambaはCUPSサポートを有効にしてビルドされている必要があります。確認
するには、次を入力します。
# smbd -b | grep "HAVE_CUPS" HAVE_CUPS
出力が表示されない場合:
- Sambaは
--disable-cups
パラメータを使ってビルドされました。 - Sambaの
configure
スクリプトは、CUPSサポートに必要なライブラリを見つけることができませんでした。詳細は、Sambaのビルドに必要なパッケージ依存関係を参照してください。
プリントサーバーバックエンドへのプリンタの追加
CUPS
rawプリンタをCUPSプリントサーバに追加するには:\
- ブラウザでCUPS管理Webインターフェイスを開きます。たとえば、
https://servername:631/admin
- [管理]タブを選択し、[プリンタの追加]をクリックします。
接続タイプを選択し、プリンタのキューまたはリモートプリントサーバーのキューに対応するURLを入力します。例えば:
- LPDベースのプリンタ:
lpd:// printer_name / queue
- IPP(Internet Printing Protocol)ベースのプリンタ:
ipp://printer_name/ipp/port
SMB(Server Message Block)ベースのプリンタ:
smb://ユーザー名:パスワード@ドメイン/ windows_print_server_host_name/printer_name
Windows Vista以降またはWindows Server 2008以降を実行するプリントサーバーにジョブを転送するには、認証が必要です。
- LPDベースのプリンタ:
プリンタの名前を入力します。この名前は、Sambaを使用してプリンタを共有するときにsmb.confで使用されます。
プリンタのベンダーとモデルは
raw
を選択します。設定を保存します。
LPRng
rawプリンタをLPRngプリントサーバーに追加するには:
/etc/printcap
ファイルに次の行を追加します。
printer_name:sd=/var/spool/lpd/printer_name/sh:mx=0:mc=0:rm=Printer_DNS_name_or_IP_address
- プリンタ名は、Sambaを使用してプリンタを共有するときにsmb.confで使用されます。使用されるオプションの詳細については、printcap(5)のマニュアルページを参照してください。
- スプールディレクトリを作成するには、次のように入力します。
# checkpc -f
- LPRngサービスを再起動します。
spoolssdサービスの有効化
Samba spoolssdは、smbdサービスに統合されたサービスです。 Sambaをプリントサーバーとして構成した場合は、spoolssdをさらに有効にして、
- パッケージ対応のWindowsドライバをサポートします。
- 多数のジョブまたはプリンタでプリントサーバーのパフォーマンスを向上させます。
- spoolssdがなければ、Sambaはsmbdプロセスまたは各印刷ジョブをフォークし、
printcap
キャッシュを初期化します。多数のプリンタの場合、キャッシュを初期化するときにsmbdサービスが複数秒間応答しなくなることがあります。spoolssd
サービスを使用すると、印刷ジョブを処理する前処理済みのsmbd
プロセスを遅延なく開始することができます。主なspoolssd
smbd
プロセスは、少量のメモリを使用し、子プロセスをフォークして終了します。
spoolssdサービスを有効にするには:
- smb.confファイルの[global]セクションを編集します。
- 次のパラメータを追加します。
rpc_server:spoolss = external rpc_daemon:spoolssd = fork
- 必要に応じて、次のパラメータを設定できます。
パラメータ デフォルト 説明 spoolssd:prefork_min_children 5 子プロセスの最小数 spoolssd:prefork_max_children 25 子プロセスの最大数 spoolssd:prefork_spawn_rate 5 新しい接続が確立された場合、Sambaはこの数の新しい子プロセスを spoolssd:prefork_max_children
に設定された値までフォークします。spoolssd:prefork_max_allowed_clients 100 子プロセスのクライアント数。 spoolssd:prefork_child_min_life 60 子プロセスの最小有効期間(秒単位)。 60秒が最小です。
- Sambaを再起動します。
再起動後、Sambaは自動的にsmbdのサブプロセスを開始します。
# ps axf ... 30903 smbd 30912 \_ smbd 30913 \_ smbd 30914 \_ smbd 30915 \_ smbd
Sambaでのプリントサーバーサポートの有効化
プリントサーバーのサポートを有効にするには:
smb.conf
ファイルの[global]
セクションのprinting
パラメータにバックエンドを設定します。 例えば:
printing = CUPS
smb.conf
に次のセクションを追加します。
[printers] path = /var/spool/samba/ printable = yes
- pathパラメータに設定されたスプールディレクトリを作成します。
# mkdir -p / var / spool / samba / # chmod 1777 / var / spool / samba /
- Sambaをリロードする:
# smbcontrol all reload-config
プリンタの共有
プリントサーバーのバックエンドで構成されたすべてのプリンタの自動共有
デフォルト設定を使用すると、プリントサーバーのバックエンドで設定されたすべてのプリンタが自動的に共有されます。
自動プリンタ共有を無効にする
自動プリンタ共有を無効にするには:
smb.conf
ファイルの[global]
セクションに次のパラメータを追加します。
load printers = no
- Sambaをリロードする:
# smbcontrol all reload-config
プリンタの手動共有
プリンタを手動で共有するには:
- 自動プリンタ共有が無効になっていることを確認します。 「自動プリンタ共有を無効にする」を参照してください。
smb.conf
ファイルにプリンタの共有を追加します。
[Samba_printer_name] path = / var / spool / samba / printable = yes printer name = printer_name_in_the_back_end
printer name
パラメータに、ローカルプリントサーバーのバックエンドで使用されているプリンタの名前を設定します。
- Sambaをリロードする:
# smbcontrol all reload-config
Windowsクライアント用のプリンタドライバの自動ダウンロードを設定する
「Windowsクライアント用の自動プリンタドライバのダウンロードをセットアップする」を参照してください。