1.15.2. Samba でのプリントサーバーのサポートの有効化
デフォルトでは、プリントサーバーサポートは Samba で有効になっていません。Samba をプリントサーバーとして使用するには、Samba を適切に設定する必要があります。
印刷ジョブとプリンター操作には、リモートプロシージャコール (RPC) が必要です。デフォルトでは、Samba は RPC を管理するためにオンデマンドで rpcd_spoolss サービスを開始します。最初の RPC 呼び出し中、または Common UNIX Printing System (CUPS) でプリンターリストを更新するときに、Samba はプリンター情報を取得します。これには、プリンターごとに約 1 秒かかる場合があります。そのため、プリンターが 50 台を超える場合は、rpcd_spoolss 設定を調整してください。
前提条件
プリンターが CUPS サーバーで設定されている。
CUPS でプリンターを設定する方法は、プリントサーバーの CUPS Web コンソール (https://print_server_host_name:631/help) で提供されているドキュメントを参照してください。
手順
/etc/samba/smb.confファイルを編集します。Samba で印刷バックエンドを有効にするには、
[printers]セクションを追加します。[printers] comment = All Printers path = /var/tmp/ printable = yes create mask = 0600重要[printers]共有名はハードコーディングされており、変更はできません。CUPS サーバーが別のホストまたはポートで実行されている場合は、
[printers]セクションで設定を指定します。cups server = printserver.example.com:631多数のプリンターがある場合は、待機秒数を CUPS に接続されているプリンターの数よりも大きい数に設定します。たとえば、100 台のプリンターがある場合は、
[global]セクションに次のように設定します。rpcd_spoolss:idle_seconds = 200この設定が環境内でスケーリングされない場合は、
[global]セクションでrpcd_spoolssワーカーの数も増やします。rpcd_spoolss:num_workers = 10デフォルトでは、
rpcd_spoolssは 5 つのワーカーを開始します。
/etc/samba/smb.confファイルを検証します。# testparmfirewall-cmdユーティリティーを使用して必要なポートを開き、ファイアウォール設定を再読み込みします。# firewall-cmd --permanent --add-service=samba# firewall-cmd --reloadsmbサービスを再起動します。# systemctl restart smbサービスを再起動すると、Samba は CUPS バックエンドに設定したすべてのプリンターを自動的に共有します。特定のプリンターのみを手動で共有する場合:
検証
印刷ジョブを送信します。たとえば、PDF ファイルを印刷するには、次のように入力します。
# smbclient -Uuser //sambaserver.example.com/printer_name -c "print example.pdf"