"lpadmin -m"で使用する既存のプリンタのモデル/ドライバ/ppdを取得するコマンドはありますか?

あるサーバーのCUPSが他のCUPSサーバーと同じプリンターセットを持つように設定しています。私は主にCLIを使用していますが、プリンタのリストが多すぎてこれがどれほど簡単になるのか疑問に思います。コマンドに関するドキュメントを見ると、次のようにプリンタを追加できることがわかりました。

lpadmin -p $printer_name -E -v $printer_location -m $printer_model

以下を使用して$printer_namesとsを取得できます$printer_location

lpstat -v

$printer_modelしかし、各プリンタを知らせるコマンドが見つからないようです。私は人間が読めるモデルを手に入れるhttp://localhost:631ために傷を付け、それから一致するものを手にcurl入れたいlpinfo -mlpadmin -mですが、もっと伝統的なものが欲しいのです。

ベストアンサー1

/etc/cups/ppd/ppdファイルと(保護された)ファイルからいくつかのコンテンツをgrepできますが、/etc/cups/printers.confcupライブラリには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-statepycupsrpmパッケージで見つかりましたpython3-cups

おすすめ記事