「Sambaをプリントサーバとして設定する」の版間の差分

提供:雑廉堂Wiki
 
(同じ利用者による、間の9版が非表示)
20行目: 20行目:
するには、次を入力します。
するには、次を入力します。


<pre>#smbd -b | grep &quot;HAVE_CUPS&quot;
<pre># smbd -b | grep &quot;HAVE_CUPS&quot;
   HAVE_CUPS</pre>
   HAVE_CUPS</pre>
出力が表示されない場合:
出力が表示されない場合:
57行目: 57行目:
* スプールディレクトリを作成するには、次のように入力します。
* スプールディレクトリを作成するには、次のように入力します。


<pre>#checkpc -f</pre>
<pre># checkpc -f</pre>
* LPRngサービスを再起動します。
* LPRngサービスを再起動します。


64行目: 64行目:
Samba spoolssdは、smbdサービスに統合されたサービスです。 Sambaをプリントサーバーとして構成した場合は、spoolssdをさらに有効にして、
Samba spoolssdは、smbdサービスに統合されたサービスです。 Sambaをプリントサーバーとして構成した場合は、spoolssdをさらに有効にして、


<ul>
 
<li>パッケージ対応のWindowsドライバをサポートします。</li>
* パッケージ対応のWindowsドライバをサポートします。
<li><p>多数のジョブまたはプリンタでプリントサーバーのパフォーマンスを向上させます。</p>
* 多数のジョブまたはプリンタでプリントサーバーのパフォーマンスを向上させます。
<p>spoolssdがなければ、Sambaはsmbdプロセスまたは各印刷ジョブをフォークし、printcapキャッシュを初期化します。多数のプリンタの場合、キャッシュを初期化するときにsmbdサービスが複数秒間応答しなくなることがあります。 spoolssdサービスを使用すると、印刷ジョブを処理す
: spoolssdがなければ、Sambaはsmbdプロセスまたは各印刷ジョブをフォークし、<code>printcap</code>キャッシュを初期化します。多数のプリンタの場合、キャッシュを初期化するときにsmbdサービスが複数秒間応答しなくなることがあります。 <code>spoolssd</code>サービスを使用すると、印刷ジョブを処理する前処理済みの<code>smbd</code>プロセスを遅延なく開始することができます。主な<code>spoolssd </code> <code>smbd</code>プロセスは、少量のメモリを使用し、子プロセスをフォークして終了します。
る前処理済みのsmbdプロセスを遅延なく開始することができます。主なspoolssd smbdプロセスは、少量のメモリを使用し、子プロセスをforkし
て終了します。</p></li></ul>


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>
必要に応じて、次のパラメータを設定できます。


^ パラメータ ^ デフォルト ^ 説明 ^ | 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秒が最小です。 |
:* 必要に応じて、次のパラメータを設定できます。
 
:: {| 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を再起動します。
86行目: 109行目:
再起動後、Sambaは自動的にsmbdのサブプロセスを開始します。
再起動後、Sambaは自動的にsmbdのサブプロセスを開始します。


<pre>#ps axf
<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でのプリントサーバーサポートの有効化 ==


107行目: 131行目:
* pathパラメータに設定されたスプールディレクトリを作成します。
* pathパラメータに設定されたスプールディレクトリを作成します。


<pre>#mkdir -p / var / spool / samba /
<pre># mkdir -p / var / spool / samba /
#chmod 1777 / var / spool / samba /</pre>
# chmod 1777 / var / spool / samba /</pre>
* Sambaをリロードする:
* Sambaをリロードする:


<pre>#smbcontrol all reload-config</pre>
<pre># smbcontrol all reload-config</pre>
 
== プリンタの共有 ==
== プリンタの共有 ==


128行目: 153行目:
* Sambaをリロードする:
* Sambaをリロードする:


<pre>#smbcontrol all reload-config</pre>
<pre># smbcontrol all reload-config</pre>
 
=== プリンタの手動共有 ===
=== プリンタの手動共有 ===


プリンタを手動で共有するには:
プリンタを手動で共有するには:


* 自動プリンタ共有が無効になっていることを確認します。 「自動プリンタ共有を無効にする」を参照してください。
* 自動プリンタ共有が無効になっていることを確認します。 「[[#自動プリンタ共有を無効にする|自動プリンタ共有を無効にする]]」を参照してください。
* smb.confファイルにプリンタの共有を追加します。
* <code>smb.conf</code>ファイルにプリンタの共有を追加します。


<pre>[Samba_printer_name]
<pre>[Samba_printer_name]
140行目: 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>#smbcontrol all reload-config</pre>
<pre># smbcontrol all reload-config</pre>
 
== Windowsクライアント用のプリンタドライバの自動ダウンロードを設定する ==
== Windowsクライアント用のプリンタドライバの自動ダウンロードを設定する ==


「[[svradmin/samba4/transdoc/setting_up_automatic_printer_driver_downloads_for_windows_clients|Windowsクライアントのプリンタドライバ自動ダウンロードの設定]]」を参照してください。
「[[Windowsクライアント用の自動プリンタドライバのダウンロードをセットアップする]]」を参照してください。

2018年3月25日 (日) 11:56時点における最新版

前書き

Sambaをプリントサーバーとして設定すると、ネットワーク内のクライアントは、SMB(サーバーメッセージブロック)プロトコルを使用してSambaホストに印刷ジョブを送信できます。このドキュメントに示されている例は、バックエンドのraw のプリンタを使用しています。この構成では 、印刷ジョブがクライアント上のドライバによってフォーマットされているため、それ以上の処理やフィルタリングを行わずにプリンタで処理することができます。

サポートされているプリントサーバーのバックエンド

Sambaは、CUPSLPRngなどの複数のプリントサーバーバックエンドをサポートしています。完全なリストについては、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以降を実行するプリントサーバーにジョブを転送するには、認証が必要です。

  • プリンタの名前を入力します。この名前は、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クライアント用の自動プリンタドライバのダウンロードをセットアップする」を参照してください。