Rhel

如何編輯 /etc/printcap?

  • August 31, 2021

我們最近將 RHEL8 伺服器上的域名和主機名old.domain.namemore.better.name.

我碰巧注意到/etc/printcapold.domain.name.

[user@box ~]# cat /etc/printcap 
# This file was automatically generated by cupsd(8) from the
# /etc/cups/printers.conf file.  All changes to this file
# will be lost.
office_printer_123|office_printer_123:rm=old.domain.name:rp=office_printer_123:
[user@box ~]# 

正確的主機名顯示

[user@box ~]# hostname
more.better.name
[user@box ~]# 

更改主機名後,伺服器已重新啟動幾次。

我發現零其他參考old.domain.name

[user@box ~]# grep -r "old.domain.name" /etc/
[user@box ~]# 

old.domain.name在 /etc/cups/printer.conf 中找不到

[user@box]# cat /etc/cups/printers.conf
# Printer configuration file for CUPS v2.2.6
# Written by cupsd on 2021-08-24 10:01
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<Printer office_printer_123>
UUID urn:uuid:e74ed8e4-e5e6-30b9-64b9-2283cc9c93e7
AuthInfoRequired none
Info office_printer_123
MakeModel HP LaserJet 600 M601 M602 M603 Postscript (recommended)
DeviceURI ipp://111.222.111.222
State Idle
StateTime 1629813648
ConfigTime 1618257051
Type 8425668
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
[user@box]# 

如何更改printcap文件中的內容?它會在哪里拉old.domain.name

檢查/etc/printcap文件的修改時間戳。如果它比伺服器的目前正常執行時間更早,那麼它可能是由舊版本的 CUPS 編寫的,並且目前版本可能由於某種原因根本沒有在啟動時對其進行更新。

您也可以嘗試將 printcap 文件移開並重新啟動 CUPS。至少在 Debian 11 上,目前的 CUPS 似乎會在文件不存在時創建文件,但如果文件存在但過時則不會更新它。

顯然正因為如此,/etc/printcap它現在是/run/cups/printcapDebian 11 中的符號連結,並且由於/run是 tmpfs 文件系統,它顯然無法在重新啟動後存活。

systemctl stop cups
mv /etc/printcap /etc/printcap.old
systemctl start cups
diff -u /etc/printcap.old /etc/printcap

引用自:https://unix.stackexchange.com/questions/666086