我们最近将 RHEL8 服务器上的域名和主机名从 更改old.domain.name
为more.better.name
。
我碰巧注意到/etc/printcap
对 的引用old.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
?
答案1
检查文件的修改时间戳/etc/printcap
。如果它早于服务器的当前正常运行时间,则它可能是由旧版本的 CUPS 编写的,并且当前版本可能由于某种原因根本没有在启动时更新它。
您还可以尝试移走 printcap 文件并重新启动 CUPS。至少在 Debian 11 上,当前的 CUPS 似乎会在文件不存在时创建该文件,但如果该文件存在但已过时则不会更新该文件。
显然正因为如此,现在是Debian 11 中的/etc/printcap
符号链接,并且由于是 tmpfs 文件系统,因此它显然无法在重新启动后幸存。/run/cups/printcap
/run
systemctl stop cups
mv /etc/printcap /etc/printcap.old
systemctl start cups
diff -u /etc/printcap.old /etc/printcap
答案2
/etc/printcap
由 - 自动生成cupsd
,它是为了 BSD 打印兼容性而存在的,因此在使用 CUPS 时不要直接编辑该文件。
# mv /etc/printcap{,.bk}
# systemctl restart cups
# ls -l /etc/printcap{,.bk}
-rw-r--r-- 1 root root 261 Aug 31 09:51 /etc/printcap
-rw-r--r-- 1 root root 261 Jul 18 08:02 /etc/printcap.bk