あるサーバーのCUPSが他のCUPSサーバーと同じプリンターセットを持つように設定しています。私は主にCLIを使用していますが、プリンタのリストが多すぎてこれがどれほど簡単になるのか疑問に思います。コマンドに関するドキュメントを見ると、次のようにプリンタを追加できることがわかりました。
lpadmin -p $printer_name -E -v $printer_location -m $printer_model
以下を使用して$printer_name
sとsを取得できます$printer_location
。
lpstat -v
$printer_model
しかし、各プリンタを知らせるコマンドが見つからないようです。私は人間が読めるモデルを手に入れるhttp://localhost:631
ために傷を付け、それから一致するものを手にcurl
入れたいlpinfo -m
のlpadmin -m
ですが、もっと伝統的なものが欲しいのです。
ベストアンサー1
/etc/cups/ppd/
ppdファイルと(保護された)ファイルからいくつかのコンテンツをgrepできますが、/etc/cups/printers.conf
cupライブラリにはpycups
情報を取得するためにサーバーと通信できるPythonインターフェースがあります。例えば、
#!/usr/bin/python3
import cups
conn = cups.Connection()
printers = conn.getPrinters()
for printer in printers:
p = printers[printer]
print(printer, p['printer-make-and-model'])
返されるプリンタ辞書には、次の項目が含まれていますprinter-make-and-model
printer-is-shared
printer-type
device-uri
printer-location
printer-uri-supported
printer-state-message
printer-info
printer-state-reasons
printer-state
。pycups
rpmパッケージで見つかりましたpython3-cups
。