2020年10月30日星期五

硬盘测速命令

 winstat disk -drive c:\




 

Server 2016 Server2019上禁用/启用 SMB 1.0

 从Windows Server 2016 1709(和Windows 10 Fall Creators)开始,默认情况下禁用SMBv1组件(客户端和服务器)(也禁用来自SMBv2的访客访问)。要使用过时版本的协议访问旧系统,必须单独安装。您需要安装SMB 1.0 / CIFS文件共享支持功能并使用以下命令启用SMB 1.0:

Add-WindowsFeature FS-SMB1
Set-SmbServerConfiguration -EnableSMB1Protocol $true

 

禁用

 

Set-SmbServerConfiguration -EnableSMB1Protocol $false


How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows

Summary

This article describes how to enable and disable Server Message Block (SMB) version 1 (SMBv1), SMB version 2 (SMBv2), and SMB version 3 (SMBv3) on the SMB client and server components. 

 Important

We recommend that you do not disable SMBv2 or SMBv3. Disable SMBv2 or SMBv3 only as a temporary troubleshooting measure. Do not leave SMBv2 or SMBv3 disabled.

In Windows 7 and Windows Server 2008 R2, disabling SMBv2 deactivates the following functionality:

  • Request compounding - allows for sending multiple SMB 2 requests as a single network request
  • Larger reads and writes - better use of faster networks
  • Caching of folder and file properties - clients keep local copies of folders and files
  • Durable handles - allow for connection to transparently reconnect to the server if there is a temporary disconnection
  • Improved message signing - HMAC SHA-256 replaces MD5 as hashing algorithm
  • Improved scalability for file sharing - number of users, shares, and open files per server greatly increased
  • Support for symbolic links
  • Client oplock leasing model - limits the data transferred between the client and server, improving performance on high-latency networks and increasing SMB server scalability
  • Large MTU support - for full use of 10-gigabye (GB) Ethernet
  • Improved energy efficiency - clients that have open files to a server can sleep

In Windows 8, Windows 8.1, Windows 10, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, and Windows Server 2019, disabling SMBv3 deactivates the following functionality (and also the SMBv2 functionality that's described in the previous list):

  • Transparent Failover - clients reconnect without interruption to cluster nodes during maintenance or failover
  • Scale Out – concurrent access to shared data on all file cluster nodes 
  • Multichannel - aggregation of network bandwidth and fault tolerance if multiple paths are available between client and server
  • SMB Direct – adds RDMA networking support for very high performance, with low latency and low CPU utilization
  • Encryption – Provides end-to-end encryption and protects from eavesdropping on untrustworthy networks
  • Directory Leasing - Improves application response times in branch offices through caching
  • Performance Optimizations - optimizations for small random read/write I/O

More Information

The SMBv2 protocol was introduced in Windows Vista and Windows Server 2008.

The SMBv3 protocol was introduced in Windows 8 and Windows Server 2012.

For more information about the capabilities of SMBv2 and SMBv3 capabilities, see the following articles:

Server Message Block overview

What's New in SMB

How to gracefully remove SMB v1 in Windows 8.1, Windows 10, Windows 2012 R2, Windows Server 2016, and Windows Server 2019

PowerShell methods

SMB v1 (client and server)
  • Detect:

    PowerShell
    Get-WindowsOptionalFeature -Online -FeatureName smb1protocol
    
  • Disable:

    PowerShell
    Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol
    
  • Enable:

    PowerShell
    Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol


2020年10月8日星期四

在synology的DHCP中加入新的dhcp option

created a file in here which i called "dhcpd-extras.conf" and added the extra options i wanted for the dhcp server. use the same tags as you can see in the /etc/dhcpd/dhcpd.conf file, which should be like "dhcp-option=tag:eth00,option:tftp-server-name,192.168.0.12" unless you have some exotic setup.

编辑 /etc/rc.network

find the part that looks like:

if [ "${CONF_LIST}" = "" ]; then

    return 1;

fi

在其后加入以下代码:

local CONF_EXTRAS="/path/dhcpd-extras.conf"

if [ -e ${CONF_EXTRAS} ]; then

    CONF_LIST="${CONF_LIST} ${CONF_EXTRAS}"

fi

 保存后退出

重启DSM

 just remember to add the changes to the rc.network file each time you update the disk station firmware/os

内容修改后:

    if [ "${CONF_LIST}" = "" ]; then

        return 1;

    fi

####################################################################################

local CONF_EXTRAS="/etc/dhcpd/dhcpd-extras.conf"

if [ -e ${CONF_EXTRAS} ]; then

    CONF_LIST="${CONF_LIST} ${CONF_EXTRAS}"

fi

######################################################################################

    DNS_INFO_FILE="/etc/dhcpd/dhcpd-dns-dns.info"

    DNS_CONF_FILE="/etc/dhcpd/dhcpd-dns-dns.conf"

    isEnable=`/bin/get_key_value ${DNS_INFO_FILE} enable`

    if [ "x${isEnable}" = "xyes" ] && [ -f ${DNS_CONF_FILE} ]; then

        CONF_LIST="${CONF_LIST} ${DNS_CONF_FILE}"

    fi

可能会因版本等原因,上面代码会有所出入





2020年8月31日星期一

HP Procurve Switch 2824

 

Default Password HP Procurve Switch 2824

Hi

NO default password is set when the switch is new.

The default configuration is quit simple:

One default Vlan (Vlan1) with IP DHCP enabled on this Vlan, and it has 2 users built in: Manager & Operator with NO password set but you can configure other user names (Optional).

If you have a password already set on this switch, and you have physical access to the switch,
press and hold the Clear button (on the front of the switch) for a minimum of one second to clear all password protection.

You can also use the Reset button together with the Clear button (Reset+Clear) to restore the factory default configuration for the switch. To do this:
1. Press and hold the Reset button.
2. While holding the Reset button, press and hold the Clear button.
3. Release the Reset button and wait for about one second for the Self-Test LED to start flashing.
4. When the Self-Test LED begins flashing, release the Clear button

This process restores the switch configuration to the factory default settings.

You can have a look on the following link that explains with pictures how to do so:
ftp://ftp.hp.com/pub/networking/software/Security-Oct2005-59906024-Chap02-Passwords.pdf




2020年8月13日星期四

Dnsmasq 介绍与使用

 

通用配置项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 服务运行的网卡,如果有多个话,可在再次添加一条记录
interface=eth1
interface=wlan0
# 指定服务不在以下网卡上运行
except-interface=eth0
# 指定监听的 IP 地址,多个 IP 地址可用 `,` 分割(默认是监听所有网卡)
listen-address=192.168.8.132
# 开启日志选项,记录在 /var/log/debug 中
log-queries
# 指定日志文件的路径,路径必须存在,否则会导致服务启动失败
log-facility=/var/log/dnsmasq.log
# 异步log,缓解阻塞。
log-async=20

DNS 服务配置参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 指定 DNS 服务的端口(默认53),设置为 0 表示关闭 DNS 服务,只使用 DHCP 服务
port=53
# 指定一个 hosts 文件,默认是从 /etc/hosts 中获取
addn-hosts=/etc/banner_add_hosts
# 表示不使用 /etc/hosts 配置文件来解析域名
no-hosts
# 指定上游 DNS 服务列表的配置文件,默认是从 /etc/resolv.conf 中获取
resolv-file=/etc/dnsmasq.d/upstream_dns.conf
# 表示严格按照上游 DNS 服务列表一个一个查询,否则将请求发送到所有 DNS 服务器,使用响应最快的服务器的结果
strict-order
# 不使用上游 DNS 服务器的配置文件 /etc/resolv.conf 或者 resolv-file 选项
no-resolv
# 不允许 Dnsmasq 通过轮询 /etc/resolv.conf 或者其他文件来动态更新上游 DNS 服务列表
no-poll
# 表示对所有 server 发起查询请求,选择响应最快的服务器的结果
all-servers
# 指定 dnsmasq 默认查询的上游服务器
server=8.8.8.8
server=114.114.114.114
# 指定 .cn 的域名全部通过 114.114.114.114 这台国内DNS服务器来解析
server=/cn/114.114.114.114
# 给 *.apple.com 和 taobao.com 使用专用的 DNS
server=/taobao.com/223.5.5.5
server=/.apple.com/223.6.6.6
# 增加一个域名,强制解析到所指定的地址上,dns 欺骗
address=/taobao.com/127.0.0.1
# 设置DNS缓存大小(单位:DNS解析条数)
cache-size=500

/etc/resolv.conf 文件样例

1
2
nameserver 114.114.114.114
nameserver 8.8.8.8

/etc/hosts 文件样例

1
2
3
127.0.0.1 localhost
192.168.101.107 web.gz.cvte.com web01
192.168.101.103 hrm.gz.cvte.com web02

DHCP 服务配置参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 指定分配的 IP 端和续约时间
dhcp-range=192.168.1.50,192.168.1.100,12h
# 同上,指定了子网掩码
dhcp-range=192.168.8.50,192.168.8.150,255.255.255.0,12h
# 指定网关地址
dhcp-option=3,192.168.0.1
# 指定 DNS 服务器,net:eth1 用来指定网卡
dhcp-option=net:eth1,6,114.114.114.114,8.8.8.8
dhcp-option=net:wlano,6,114.114.114.114,8.8.8.8
# DHCP 所在的 domain
domain=gz.cvte.com
# 静态地址绑定
dhcp-host=00:0C:29:5E:F2:6F,192.168.1.201,os02
dhcp-host=00:0C:29:15:63:CF,192.168.1.202,os03
# 忽略一下 MAC 地址主机的请求
dhcp-host=11:22:33:44:55:66,ignore
# 租期保存文件
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

dhcp-option 常用取值及含义

optionoption 作用
1设置子网掩码选项
3设置网关地址选项
6设置DNS服务器地址选项
12设置域名选项
15设置域名后缀选项
33设置静态路由选项。该选项中包含一组有分类静态路由(即目的地址的掩码固定为自然掩码,不能划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。如果存在Option121,则忽略该选项
44设置NetBios服务器选项
46设置NetBios节点类型选项
50设置请求IP选项
51设置IP地址租约时间选项
52设置Option附加选项
53设置DHCP消息类型
54设置服务器标识
55设置请求参数列表选项。客户端利用该选项指明需要从服务器获取哪些网络配置参数。该选项内容为客户端请求的参数对应的选项值
58设置续约T1时间,一般是租期时间的50%
59设置续约T2时间。一般是租期时间的87.5%
60设置厂商分类信息选项,用于标识DHCP客户端的类型和配置
61设置客户端标识选项
66设置TFTP服务器名选项,用来指定为客户端分配的TFTP服务器的域名
67设置启动文件名选项,用来指定为客户端分配的启动文件名
77设置用户类型标识
121设置无分类路由选项。该选项中包含一组无分类静态路由(即目的地址的掩码为任意值,可以通过掩码来划分子网),客户端收到该选项后,将在路由表中添加这些静态路由
148EasyDeploy中Commander的IP地址
149SFTP和FTPS服务器的IP地址
150设置TFTP服务器地址选项,指定为客户端分配的TFTP服务器的地址

dhcp-option 遵循RFC 2132(Options and BOOTP Vendor Extensions),可以通过 dnsmasq –help dhcp 来查看具体的配置很多高级的配置,如 iSCSI 连接配置等同样可以由 RFC 2132 定义的 dhcp-option 中给出。






dnsmasq的pxe配置

 # Custom user conf file for dnsmasq

# Please add needed params only!

pxe-service=0,"Raspberry Pi Boot"

dhcp-option=3,192.168.188.1

dhcp-option=150,192.168.188.10

dhcp-option=66,192.168.188.10

##指定tftp服务器地址

#dhcp-option=tag:eth00,option:tftp-server-name,192.168.0.12

#dhcp-option=option:66,192.168.188.10

#dhcp-boot=pxelinux.0,192.168.188.10

#dhcp-option=net:br0,150,192.168.188.10

#dhcp-option=net:br0,66,oyzjinhome.com

#dhcp-range=192.168.188.255,proxy


### Web Proxy Automatic Discovery (WPAD)

dhcp-option=252,"\n"


### Set the limit on DHCP leases, the default is 150

#dhcp-lease-max=150


### Add local-only domains, queries are answered from hosts or DHCP only

#local=/router/localdomain/


### Examples:


### Enable built-in TFTP server

#enable-tftp


### Set the root directory for files available via TFTP.

#tftp-root=/opt/srv/tftp

#tftp-root=/,192.168.188.10


### Make the TFTP server more secure

#tftp-secure


### Set the boot filename for netboot/PXE

#dhcp-boot=pxelinux.0


# 过滤 IPv6(AAAA)查询请求

#filter-aaaa


2020年8月11日星期二

raspberry pi 4 安装共享打印机

共享打印机 软件包 CUPS 就是为共享打印机而生。我们要做的只是将打印机用 USB 线缆连接树莓派,然后安装并配置 CUPS。 sudo apt-get install cups Raspbian 系统会自动安装相关依赖,包括打印机驱动。安装完成后,需要将用户加入到 lpadmin 用户组,然后开启 CUPS 的远程访问权限。 sudo usermod -a -G lpadmin pi sudo cupsctl --remote-any 这时候,在局域网内任何一台电脑或手机的浏览器中,访问树莓派的 631 端口,如:http://192.168.1.XX:631,就可以进入基于网页的 CUPS 配置界面。

2020年8月3日星期一

安装usb 打印机


如何使用 LP 打印命令添加打印机描述

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。
  2. 添加打印机描述。 
    # lpadmin -p printer-name -D "comment"
    -p printer-name

    指定要为其添加描述的打印机的名称。

    -D "comment"

    指定打印机的特征,如位置或管理联系人。将 shell 可能解释的字符(如 *?\!^)用单引号引起来。

    有关更多信息,请参见 lpadmin(1M) 手册页。

  3. 验证 Description 信息是否正确。
    # lpstat -p printer-name -l

示例 6-1 添加打印机描述

以下示例说明如何为打印机 luna 添加打印机描述。

# lpadmin -p luna -D "Nathans office"

如何使用 LP 打印命令设置系统的缺省打印机目标

  1. 在要在其中设置缺省打印机的系统上以超级用户 lp 或同等角色的身份登录。
  2. 设置系统的缺省打印机。
    # lpadmin -d [printer-name]

    -d printer-name 指定要用作系统缺省打印机的打印机的名称。如果您不指定 printer-name,则系统将设置为没有缺省打印机。

  3. 检查系统的缺省打印机。
    # lpstat -d

示例 6-2 设置系统的缺省打印机目标

以下示例说明如何将打印机 luna 设置为系统的缺省打印机。如果未设置 LPDEST  PRINTER 环境变量,则将打印机 luna 用作系统的缺省打印机。

# lpadmin -d luna
# lpstat -d
system default destination: luna

如何使用 LP 打印命令使标题页成为可选

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。
  2. 使标题页成为可选。
    # lpadmin -p printer-name -o banner=optional
    -p printer-name

    指定要使其标题页成为可选的打印机的名称。

    -o banner=optional

    使用户可以在提交打印请求时不指定标题页。

  3. 验证标题页是否可选。命令输出包含以下行:Banner not required
    # lpstat -p printer-name -l

示例 6-3 使标题页成为可选

以下示例说明如何在打印机 luna 上使标题页成为可选。

# lpadmin -p luna -o banner=optional

如何使用 LP 打印命令关闭标题页

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。
  2. 关闭标题打印。
    # lpadmin -p printer-name -o banner=never
    -p printer-name

    指定要关闭其标题页的打印机的名称。

    -o banner=never

    在所有情况下禁用标题页打印。

  3. 验证标题打印是否已关闭。 
    # lpstat -p printer-name -l

    命令输出包含以下行:Banner not printed

  4. 向打印机提交打印请求以确保不打印标题页。

示例 6-4 关闭标题页的打印

以下示例说明如何在打印机 luna 上禁用标题页的打印。

# lpadmin -p luna -o banner=never

使用 LP 打印命令设置打印机故障警报

如果选择此任务,则 LP 打印服务可以在检测到打印机故障时通知您。通过 lpadmin -A 命令或 Oracle Solaris Print Manager,可以选择以下任一方法来接收打印机故障通知:

  •  root 登录的终端发送消息

  •  root 发送电子邮件

  • 不发送任何通知

但是,lpadmin -A 命令为您提供了接收所选程序指定的消息的其他选项。通过 lpadmin -A 命令,您还可以有选择地关闭已知错误的通知。

除非指定一个程序传送故障通知,否则故障警报的内容是预定义的消息,该消息指明打印机已停止打印并需要进行修理。

下表列出了可以使用 lpadmin -A 命令为打印机设置的警报值。也可以为打印轮、字体盒和表单设置这些警报值。 

表 6-4 打印机故障警报值

-A alert 的值
说明
'mail [username]'
通过电子邮件将警报消息发送到打印服务器上的 root  lp,或者发送到指定的 username(它是用户的名称)。
'write [user-name]'
将警报消息发送到打印服务器上的 root  lp 控制台窗口,或者发送到指定 username(它是用户的名称)的控制台窗口。指定的用户必须登录到打印服务器才能获取警报消息。
'command'
运行每个警报的指定 command 文件。在执行该文件时,保存并恢复环境变量和当前目录。
quiet
在修复故障之前停止警报。当您、root 或指定用户收到重复警报时使用该值。
none
不发送任何警报。如果您不指定打印机的故障警报,则该值为缺省值。

如何使用 LP 打印命令为打印机设置故障警报

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。
  2. 为打印机设置故障警报。 
    # lpadmin -p printer-name -A alert [-W minutes]
    -p printer-name

    指定要为其指定打印机故障警报的打印机名称。

    -A alert

    指定当打印机发生故障时会发出哪种警报。其中一些有效值包括 mailwrite  quiet 

    -W minutes

    指定出现故障警报的间隔时间(分钟)。如果不指定此选项,则发送警报一次。

  3. 验证是否已正确发送故障警报。
    # lpstat -p printer-name -l

示例 6-6 设置打印机的故障警报

以下示例说明如何设置打印机 mars,以将故障警报通过电子邮件发送到名为 joe 的用户。每隔 5 分钟发送一次提醒。

# lpadmin -p mars -A 'mail joe' -W 5

以下示例说明如何设置打印机 venus,以将故障警报发送到控制台窗口。每隔 10 分钟发送一次提醒。

# lpadmin -p venus -A write -W 10

以下示例说明如何停止打印机 mercury 的故障警报。

# lpadmin -p mercury -A none

以下示例说明如何在修复打印机 venus 故障之前停止故障警报。

# lpadmin -p venus -A quiet

使用 LP 打印命令设置打印机故障恢复

如果您选择不发送任何故障通知,仍可以找出有关打印机故障的原因并更正问题。LP 打印服务不会继续使用有故障的打印机。除打印机故障警报外,您还可以在打印请求需要时,提供指示装载打印轮、字体盒和表单的警报。

您只能使用 lpadmin -F 命令来定义打印机的故障恢复选项。此任务在 Oracle Solaris Print Manager 中不可用。

打印机故障可能很简单,如纸张不足或者需要更换碳粉盒等。更严重的问题可能包括打印机整体故障或电源故障。

修复打印机故障后,在出现故障时处于活动状态的打印请求将采用以下三种方式之一开始打印:

  • 从头开始打印

  • 从打印停止时所在页的顶部继续打印

  • 启用打印机后,从打印停止时所在页的顶部继续打印

LP 打印服务需要有单独的打印过滤器,才能从打印停止时所在页的顶部继续打印。此打印过滤器记录由缺省打印过滤器设置的控制序列。打印机使用这些控制序列跟踪页边界。如果使用指定的打印过滤器无法进行恢复,则 LP 打印服务将通知您。有关创建打印过滤器的信息,请参见如何创建新的打印过滤器 

如果您希望在修复打印机故障之后立即恢复打印,请通过使用 enable 命令启用打印机。 

下表列出了可以使用 lpadmin -F 命令为打印机设置的故障恢复值。 

表 6-5 打印机故障恢复值

-F recover-options 的值
说明
beginning
在故障恢复之后,从文件开头重新开始打印。
continue
在故障恢复之后,将从停止打印的页面的顶部开始进行打印。此恢复选项需要打印过滤器。 
wait
在故障恢复之后,打印停止,直到您启用打印机。在通过使用 enable 命令启用打印机之后,从打印停止时所在页的顶部开始打印。此恢复选项需要打印过滤器。

如何使用 LP 打印命令设置打印机故障恢复

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。
  2. 为打印机设置故障恢复。 
    # lpadmin -p printer-name -F recovery-options
    -p printer-name

    指定要为其指定故障恢复的打印机的名称。

    -F recovery-options

    指定以下三个有效恢复选项之一: beginning continue  wait 

    有关更多信息,请参见 lpadmin(1M) 手册页。

  3. 验证是否正确设置了打印机故障恢复。
    # lpstat -p printer-name -l

示例 6-7 设置打印机故障恢复

以下示例说明如何设置打印机 luna,以从打印停止时所在页的顶部继续打印。

# lpadmin -p luna -F continue

使用 LP 打印命令限制用户对打印机的访问

您可以控制哪些用户可以访问某些打印机或所有可用打印机。例如,您可以禁止一些用户在高品质打印机上打印,以便最大限度地减少开支。要限制用户对打印机的访问,可以通过在打印服务器上使用 lpadmin -u 命令创建 allow  deny 列表。通过 Oracle Solaris Print Manager 仅能创建 allow 列表。如果不创建上述任一列表,则打印机对所有可对其进行访问的用户均可用。

allow 列表包含允许访问指定打印机的用户的名称。deny 列表包含被拒绝访问指定打印机的用户的名称。

allow  deny 列表的规则在下表中进行了说明。

允许列表和拒绝列表的规则
用户结果
不创建 allow  deny 列表。或者,让两个列表留空。
所有用户均可以访问打印机。
 allow 列表中指定 all
所有用户均可以访问打印机。
 deny 列表中指定 all
拒绝服务器上除 root  lp 用户之外的所有用户访问打印机。
 allow 列表中建立任何项。
忽略 deny 列表。仅有列出的用户才能访问打印机。
创建拒绝列表,但是不创建 allow 列表或者将 allow 列表保留为空。
拒绝 deny 列表中列出的用户访问打印机。

由于打印服务器负责控制对打印机的访问,因此只能在打印服务器上创建 allow  deny 列表。如果创建 allow  deny 列表,则打印服务器将以排它方式控制用户对打印机的访问。

下表列出了可以添加到 allow 列表或 deny 列表中以用于限制用户对打印机的访问的值。

表 6-6 允许列表和拒绝列表的值

user-list 的值 
说明
user
任何系统上的 User
all
所有系统上的全部用户
none
不包括任何系统上的用户
system!user
 system 上的 User
!user
仅本地系统上的 User
all!user
任何系统上的 User
all!all
所有系统上的全部用户
system!all
system 上的所有用户
!all
本地系统上的所有用户

如何使用 LP 打印命令限制用户对打印机的访问

  1. 在打印服务器上以超级用户 lp 或同等角色的身份登录。
  2. 允许或拒绝用户访问打印机。 
    # lpadmin -p printer-name -u allow:user-list [deny:user-list]
    -p printer-name

    指定对其应用 allow  deny 访问列表的打印机的名称。

    -u allow:user-list

    指定要添加到 allow 访问列表的用户名。您可以使用此命令指定多个用户名。使用空格或逗号来分隔名称。如果使用空格,请用引号将名称列表引起来。

    -u deny:user-list

    指定要添加到拒绝用户访问列表的用户名。您可以使用此命令指定多个用户名。使用空格或逗号来分隔名称。如果使用空格,请用引号将名称列表引起来。

    指定的用户将会添加到打印服务器上以下某个文件中打印机的 allow  deny 列表中:


    注 - 如果将 none 指定为 allow 列表中 user-list 的值,则在打印服务器上不会创建以下文件:


  3. 验证以下命令输出中 Users allowed  Users denied 标题下的信息是否正确:
    # lpstat -p printer-name -l

示例 6-8 限制用户对打印机的访问

以下示例说明如何仅允许用户 nathan  george 访问打印机 luna 

# lpadmin -p luna -u allow:nathan,george

以下示例说明如何拒绝用户 nathan  george 访问打印机 asteroid 

# lpadmin -p asteroid -u deny:"nathan george"






LP 打印服务

本节介绍 LP 打印服务的目录结构、文件和日志。

LP 打印服务命令


注 - LP 打印服务客户机命令已经过修改,可以使用 FSG OpenPrinting 开放标准打印 API (Print API, PAPI)。这些打印命令位于 PAPI 的上面一层。有关更多信息,请参见PAPI 在 Oracle Solaris OS 中的实现方式


下表列出经常使用的 LP 打印服务命令。

表 12-2 LP 打印服务命令

命令
任务
手册页
enable
激活打印机
cancel
取消打印请求
lp
将一个或多个文件发送到打印机
lpstat
报告 LP 打印服务的状态
disable
取消激活一台或多台打印机
accept
允许打印请求为特定目标进行排队
reject
阻止打印请求为特定目标进行排队
lpadmin
设置或更改打印机配置
lpfilter
设置或更改过滤器定义
lpforms
设置或更改预先打印的表单
lpadmin
挂载表单
lpmove
将输出请求从一个目标移动到另一个目标
lpsched
启动 LP 打印服务调度程序
lpshut
停止 LP 打印服务调度程序
lpusers
设置或更改用户可以请求的 LP 打印服务的缺省优先级和优先级限制

有关已经过修改可用于 PAPI 的打印命令的信息,请参见PAPI 在 Oracle Solaris OS 中的实现方式

LP 打印服务的功能

LP 打印服务可执行以下功能:

  • 管理文件和调度本地打印请求

  • 接收和调度网络请求

  • 如有必要,过滤文件,以便正确打印它们

  • 启动作为打印机接口的程序

  • 跟踪打印作业的状态

  • 跟踪打印机上挂载的表单

  • 跟踪当前挂载的打印轮

  • 传送要求挂载新表单或其他打印轮的警报

  • 传送有关打印问题的警报

守护进程和 LP 内部文件

/usr/lib/lp 目录包含由 LP 打印服务使用的守护进程和文件,如下表所述。

表 12-3 /usr/lib/lp 目录的内容

文件
类型
说明
bin
目录
包含用于生成打印警报、慢速过滤器和队列管理程序的文件。
model
目录
包含标准打印机接口程序。
postscript
目录
包含 LP 打印服务提供的所有 PostScript 过滤器程序。这些过滤器随 /etc/lp/fd 目录中的描述符文件一起提供。这些文件会通知 LP 打印服务过滤器的特征以及它们的位置。

LP 打印服务目录

LP 打印服务的文件分布在下表中显示的目录中。

表 12-4 LP 打印服务的目录

目录
内容
/usr/bin
LP 打印服务的用户命令。
/etc/lp
LP 服务器配置文件的分层结构。
/usr/share/lib
terminfo 数据库目录。
/usr/lib/print
lp 转换脚本、in.lpd 守护进程和 printd 守护进程。printd 守护进程每分钟传输一次 /var/spool/print 目录中的所有暂挂作业。当没有要传输的剩余作业时,printd 守护进程将退出。
/usr/sbin
LP 打印服务管理命令。
/usr/lib/lp
lpsched 程序、二进制文件、PostScript 过滤器以及包含标准打印机接口程序的 model 目录。
/var/lp/logs
LP 日志文件,如 lpsched.n(它包括来自 lpsched 的消息)和 requests.n(它包括有关已完成的打印请求的信息)。
/var/spool/lp
其中的文件排队等待打印的假脱机目录。
/var/spool/print
LP 打印服务客户端请求的暂存区域。
/etc/lp/model/uri
用于处理 device-uri 信息的接口脚本的位置。

LP 打印服务配置文件

lpsched 守护进程在 /etc/lp 目录中存储配置信息,如下表所述。


注意

注意 - 此表中列出的配置文件是专用接口。这些文件在将来的发行版中可能会更改。您不应生成依赖于当前位置的这些文件或依赖于当前所用格式的数据的软件。


表 12-5 /etc/lp 目录的内容

文件
类型
说明
classes
目录
标识 lpadmin -c 命令提供的类的文件。
fd
目录
现有过滤器的说明。
filter.table
文件
打印过滤器查找表。
forms
目录
用于放置每个表单的文件的位置。此目录最初为空。
interfaces
目录
打印机接口程序文件。
logs
到 /var/lp/logs 的链接
打印活动的日志文件。
model
到 /usr/lib/lp/model 的链接
标准打印机接口程序。
printers
目录
每台本地打印机的目录。每个目录都包含单台打印机的配置信息和警报文件。
pwheels
目录
打印轮文件或盒文件。
ppd
目录
使用 PPD 文件配置的每个本地队列都在此处放置了 PPD 文件的一个副本。

这些配置文件提供与基于 LPD 的打印服务器上的 /etc/printcap 文件类似的功能。


注 - 您可以检查配置文件的内容,但是不应直接编辑这些文件,而应改用 lpadmin 命令进行配置更改。更改将写入 /etc/lp 目录中的配置文件。lpsched 守护进程可管理和更新配置文件。


/etc/lp/printers 目录包含系统可识别的每个本地打印机的子目录。以下示例显示了打印机 sparc1 和 luna 的 /etc/lp/printers 子目录。

$ ls -l /etc/lp/printers
drwxrwxr-x 2 lp lp 512 Jan 23 23:53 luna
drwxrwxr-x 2 lp lp 512 Jan 11 17:50 sparc1

下表介绍了每个打印机特定的目录内的文件。

文件名
说明
alert.sh
在响应警报时要执行的 Shell
alert.vars
警报变量
configuration
配置文件
users.deny
拒绝其访问打印机的用户的列表
comment
打印机描述

打印机 luna 的配置文件 /etc/lp/printers/luna/configuration 通常如下所示:

Banner: on: Always
Content types: PS
Device: /dev/term/b
Interface: /usr/lib/lp/model/standard
Printer type: PS
Modules: default

terminfo 数据库

/usr/share/lib 目录包含 terminfo 数据库目录。此目录包含许多类型的终端和打印机的定义。LP 打印服务使用 terminfo 数据库中的信息执行以下任务:

  • 初始化打印机

  • 建立选定的页面大小、字符间距、行间距和字符集

  • 将代码序列传送到打印机

每台打印机在 terminfo 数据库中使用短名称标识。如有必要,可以向 terminfo 数据库中添加一些项,但是这样做很单调乏味且很耗时。有关更多信息,请参见为不支持的打印机添加 terminfo 项

terminfo 数据库中的打印机名称

有关每种打印机类型的信息存储在 terminfo 数据库 (/usr/share/lib/terminfo) 中。此信息包括打印机功能和初始化控制数据。您安装的打印机必须对应于 terminfo 数据库中的项。

$ pwd
/usr/share/lib/terminfo
$ ls
1  3  5  7  9  B  H  P  a  c  e  g  i  k  m  o  q  s  u  w  y
2  4  6  8  A  G  M  S  b  d  f  h  j  l  n  p  r  t  v  x  z
$ 

每个子目录都包含终端或打印机的已编译数据库项。这些项按打印机或终端类型的第一个字母进行组织。例如,如果具有 Epson 打印机,则在 /usr/share/lib/terminfo/e 目录中查找,以找出特定型号的 Epson 打印机。

$ cd /usr/share/lib/terminfo/e
$ ls
emots           ep2500+high   ep48            ergo4000      exidy2500
env230          ep2500+low    epson2500       esprit
envision230     ep40          epson2500-80    ethernet
ep2500+basic    ep4000        epson2500-hi    ex3000
ep2500+color    ep4080        epson2500-hi80  exidy
$ 

Epson 打印机的项以 epson 开头。

如果具有 NEC 打印机,则在 /usr/share/lib/terminfo/n 目录中查找 NEC 打印机型号。

$ cd /usr/share/lib/terminfo/n
$ ls
ncr7900        ncr7900iv      netronics      network        nuc
ncr7900-na     ncr7901        netty          netx           nucterm
ncr7900i       nec            netty-Tabs     newhp
ncr7900i-na    net            netty-vi       newhpkeyboard
$ 

此目录中的 nec 项用于 NEC 打印机。

打印机必需的 terminfo 项

以下三个表列出打印机必需的 terminfo 项。

表 12-6 打印机的必需 terminfo 项(布尔值)

项目
说明
布尔值:
cpix
更改字符间距会更改分辨率
daisy
打印机需要一个用于更改字符集的运算符
lpix
更改行间距会更改分辨率

表 12-7 打印机的必需 terminfo 项(数字)

项目
说明
数字:
bufsx
打印之前缓冲的字节数
cols
一行中的列数
cps
平均打印速度(字符/秒)
it
将制表符初始设置为 n 个空格
lines
每页的行数
orc
水平分辨率,以字符为单位
orhi
水平分辨率,以英寸为单位
orl
垂直分辨率,以行为单位
orvi
垂直分辨率,以英寸为单位

表 12-8 打印机的必需 terminfo 项(字符串)

项目
说明
字符串:
chr
更改水平分辨率
cpi
更改每英寸字符数
cr
回车
csnm
字符集名称列表
cudl
回车下移一行
cud
回车下移 n 行
cuf
回车右移 n 列
cvr
更改垂直分辨率
ff
弹出页面
hpa
水平绝对位置
ht
按 Tab 键跳至下一个 8 空格制表位
if
初始化文件名
iprog
初始化程序的路径名
is1
打印机初始化字符串
is2
打印机初始化字符串
is3
打印机初始化字符串
lpi
更改每英寸行数
mgc
清除所有页边距(上、下和左右)
rep
将一个字符重复 n 次
rwidm
禁用倍宽打印
scs
选择字符集
scsd
开始定义字符集
slines
将页长设置为每页 n 行
smgl
设置当前列的左页边距
smglp
设置左页边距
smgr
设置当前列的右页边距
smgrp
设置右页边距
smglr
同时设置左页边距和右页边距
msgt
设置当前行的上页边距
smgtp
设置上页边距
smgb
设置当前行的下页边距
smgbp
设置下页边距
smgtb
同时设置上页边距和下页边距
swidm
启用倍宽打印
vpa
将垂直位置设置为绝对位置

LP 打印服务日志文件

LP 打印服务维护下表中介绍的两组日志文件。

日志文件名称
说明
syslogd
将 /etc/syslog.conf 中的 lpr.debug 设置为启用 LP 打印服务日志记录
/var/spool/lp
排在打印队列中的当前请求的列表
/var/lp/logs/requests
打印请求的进展历史记录

打印队列日志

每个系统的调度程序都将打印请求日志保留在 /var/spool/lp/tmp/system 和 /var/spool/lp/requests/system 目录中。每个打印请求都有两个文件,用于包含有关请求的信息,每个目录中各有一个文件。只有超级用户或 lp 才能访问 /var/spool/lp/requests/system 目录中的信息。只有已提交请求的用户、超级用户或 lp 才能访问 /var/spool/lp/tmp/system 目录中的信息。

以下示例显示了 /var/spool/lp/tmp/starbug 目录的内容:

$ ls /var/spool/lp/tmp/starbug
5     5-0
# cat 5-0
C 1
D print1
F /etc/profile
P 20
T /etc/profile
t simple
U root
s 0000
v 2

只要打印请求排在队列中,这些文件就仅保留在其目录中。完成打印请求后,将对文件中的信息进行合并,并附加到 /var/lp/logs/requests 文件。此文件将在下一节中介绍。

如果需要跟踪当前队列中打印请求的状态,请使用 /var/spool/lp/logs 目录中的信息。

历史记录日志文件

LP 打印服务在以下两个日志文件中记录打印服务的历史记录:lpsched 和 requests。这些日志文件位于 /var/lp/logs 目录中。您可以使用这些日志文件中的信息诊断和排除打印故障。以下是 /var/lp/logs 目录内容的一个示例:

# cd /var/lp/logs
# ls
lpsched.1    requests    requests.2
lpsched      lpsched.2   requests.1
# 

以下是用于排除故障的两个最重要的日志文件:

  • lpsched 日志文件-包含有关本地打印请求的信息。

  • requests 日志文件-包含有关已完成且已不在打印队列中的打印请求的信息。

requests 日志文件具有简单的结构,以便您可以使用常见的 UNIX shell 命令提取数据。请求将按其打印的顺序列出。另外,请求由显示其请求 ID 的行分隔。分隔行(以 = 开头的行)下方的每行标记有单个字母,以标识该行中所包含信息的种类。每个字母由单个空格与数据分隔开。

以下示例显示了 requests 日志文件的内容:

# pwd
/var/lp/logs
# tail requests.2
= print1-3, uid 0, gid 1, size 206662, Wed Mar 14 08:56:30 MST 2003
z print1
C 1
D print1
F /usr/dict/words
P 20
T /usr/dict/words
t simple
U root
s 0x0014
v 2
#

下表显示了 requests 日志文件中的字母代码及其对应行的内容。

表 12-9 requests 日志文件中的代码

字母
行的内容
=
分隔行,该行包含以下各项: 请求 ID、用户 ID (user ID, UID) 和用户组 ID (group ID, GID)、原始(未过滤的)文件大小的总字节数以及将请求排队的时间。
z
打印机的名称。
C
打印的份数。
D
打印机或类的目标,或者 any 一词。
F
已打印文件的名称。对每个已打印的文件,重复该行。文件按所显示的顺序打印。
f
(可选的)所用表单的名称。
H
(可选的)以下三种特殊处理类型之一: 恢复、暂挂和立即。
N
(可选的)在成功完成打印请求时使用的警报类型。如果通过电子邮件通知用户,则类型用字母 M 表示;如果通过将消息发送到终端来通知用户,则类型用字母 W 表示。
O
(可选的)与打印机有关的 -o 选项。例如 nobanner
P
打印请求的优先级。
p
已打印页的列表。
r
(可选的)当用户使用 lp -r 命令请求对文件进行“原始”处理时包括的单个字母行。
S
(可选的)所用的字符集、打印轮或打印盒。
T
放置在标题页上的标题。
t
在文件中找到的内容类型。
U
提交打印请求的用户的名称。
s
请求的结果,显示为以十六进制格式表示的单个位的组合。多个位由打印服务在内部使用。下表介绍了各个位及其含义。
v
  • 0-标识打印作业源自 in.1pd 打印守护进程或网络上的其他系统。
  • 2-标识打印作业源自 /usr/bin/lp 或 /usr/ucb/lpr 命令。

  • 1-标识打印作业源自打印软件的较旧版本。

x
(可选的)用于打印请求的慢速过滤器。
Y
(可选的)用于打印请求的打印过滤器的特殊模式列表。
z
(可选的)用于请求的打印机。如果已为任何打印机或打印机类请求排队,或者请求已移动到其他目标,则该打印机与目标(D 行)不同。

下表显示了 LP requests 日志文件中的结果代码及其说明。

表 12-10 requests 日志文件中的结果代码

结果代码
说明
0x0001
请求处于暂挂状态,直到进行恢复。
0x0002
慢速过滤正在运行。
0x0004
慢速过滤已成功完成。
0x0008
请求位于打印机上。
0x0010
已成功完成打印。
0x0020
请求处于暂挂状态,直到用户进行更改。
0x0040
请求已取消。
0x0080
接下来将打印请求。
0x0100
请求无法过滤或打印。
0x0200
请求正在传输到远程打印机(过时)。
0x0400
用户将接到通知。
0x0800
通知正在运行。
0x1000
远程系统已接受请求(过时)
0x2000
管理员暂挂了请求。
0x4000
打印机必须更改过滤器。
0x8000
请求暂时停止。

假脱机目录

排队打印的文件在打印之前存储在 /var/spool/lp 目录中,这可能仅需几秒。下表显示了 /var/spool/lp 目录的内容。

表 12-11 /var/spool/lp 目录的内容

文件
类型
说明
SCHEDLOCK
文件
调度程序的锁定文件。如果调度程序终止且不会重新启动,请检查此文件。
admins
目录
到 /etc/lp 的链接。
bin
目录
到 /usr/lib/lp/bin 的链接。
logs
链接
到 ../lp/logs(在其中记录已完成的打印请求)的链接。
model
链接
到 /usr/lib/lp/model 的链接。
requests
目录
包含每台已配置打印机的子目录的目录,其中记录了尚未打印的打印请求。用户无法访问此日志。
system
目录
系统的打印状态文件。
temp
链接
到 /var/spool/lp/tmp/hostname(包含已假脱机的请求)的链接。
tmp
目录
每台已配置打印机的目录,其中记录了尚未打印的打印请求。对现有打印请求进行的更改也记录在此目录中。

过滤打印文件

打印过滤器是打印服务器上的程序,用于将已排队文件的内容从一种格式转换为另一种格式。

打印过滤器可以很简单,也可以很复杂,具体视需要而定。Oracle Solaris OS 在 /usr/lib/lp/postscript 目录中提供了打印过滤器,这些过滤器涵盖了目标打印机要求数据为 PostScript 格式的大多数情况。如果您需要用于非 PostScript 打印机的过滤器,则必须创建这些过滤器并将其添加到需要过滤器的系统。

/etc/lp/fd 目录中提供了一组打印过滤器描述符文件。这些描述符文件描述了过滤器的特征(例如,快速过滤器或慢速过滤器)。这些描述文件指向过滤器程序(例如,指向 /usr/lib/lp/postscript/postdaisy)。

打印机接口程序的工作原理

LP 打印服务与 Oracle Solaris OS 的其他部件进行交互。打印服务使用标准打印机接口程序执行以下操作:

  • 初始化打印机端口(如有必要)。标准打印机接口程序使用 stty 命令初始化打印机端口。

  • 初始化打印机。标准打印机接口程序使用 terminfo 数据库和 TERM shell 变量查找相应的控制序列。

  • 打印标题页(如有必要)。

  • 按打印请求指定的份数正确地打印。

LP 打印服务使用在 /usr/lib/lp/model 目录中找到的标准接口程序,除非您指定了其他程序。您可以创建定制接口程序。但是,必须确保定制程序不会终止与打印机的连接或干扰正常的打印机初始化。
















Printing Files

CUPS understands many different types of files directly, including text, PostScript, PDF, and image files. This allows you to print from inside your applications or at the command-line, whichever is most convenient! Type either of the following commands to print a file to the default (or only) printer on the system:

lp filename
lpr filename

Choosing a Printer

Many systems will have more than one printer available to the user. These printers can be attached to the local system via a parallel, serial, or USB port, or available over the network. Use the lpstat(1) command to see a list of available printers:

lpstat -p -d

The -p option specifies that you want to see a list of printers, and the -d option reports the current default printer or class.

Use the -d option with the lp command to print to a specific printer:

lp -d printer filename

or the -P option with the lpr command:

lpr -P printer filename

Setting the Default Printer

If you normally use a particular printer, you can tell CUPS to use it by default using the lpoptions(1) command:

lpoptions -d printer

Printing Multiple Copies

Both the lp and lpr commands have options for printing more than one copy of a file:

lp -n num-copies filename
lpr -#num-copies filename

Copies are normally not collated for you. Use the -o collate=true option to get collated copies:

lp -n num-copies -o collate=true filename
lpr -#num-copies -o collate=true filename

Canceling a Print Job

The cancel(1) and lprm(1) commands cancel a print job:

cancel job-id
lprm job-id

The job-id is the number that was reported to you by the lp command. You can also get the job ID using the lpq(1) or lpstat commands:

lpq
lpstat

Standard Printing Options

The following options apply when printing all types of files.

Selecting the Media Size, Type, and Source

The -o media=xyz option sets the media size, type, and/or source:

lp -o media=Letter filename
lp -o media=Letter,MultiPurpose filename
lpr -o media=Letter,Transparency filename
lpr -o media=Letter,MultiPurpose,Transparency filename

The available media sizes, types, and sources depend on the printer, but most support the following options (case is not significant):

  • Letter - US Letter (8.5x11 inches, or 216x279mm)
  • Legal - US Legal (8.5x14 inches, or 216x356mm)
  • A4 - ISO A4 (8.27x11.69 inches, or 210x297mm)
  • COM10 - US #10 Envelope (9.5x4.125 inches, or 241x105mm)
  • DL - ISO DL Envelope (8.66x4.33 inches, or 220x110mm)
  • Transparency - Transparency media type or source
  • Upper - Upper paper tray
  • Lower - Lower paper tray
  • MultiPurpose - Multi-purpose paper tray
  • LargeCapacity - Large capacity paper tray

The actual options supported are defined in the printer's PPD file in the PageSize, InputSlot, and MediaType options. You can list them using the lpoptions(1) command:

lpoptions -p printer -l

When Custom is listed for the PageSize option, you can specify custom media sizes using one of the following forms:

lp -o media=Custom.WIDTHxLENGTH filename
lp -o media=Custom.WIDTHxLENGTHin filename
lp -o media=Custom.WIDTHxLENGTHcm filename
lp -o media=Custom.WIDTHxLENGTHmm filename

where "WIDTH" and "LENGTH" are the width and length of the media in points, inches, centimeters, or millimeters, respectively.

Setting the Orientation

The -o landscape option will rotate the page 90 degrees to print in landscape orientation:

lp -o landscape filename
lpr -o landscape filename

The -o orientation-requested=N option rotates the page depending on the value of N:

  • -o orientation-requested=3 - portrait orientation (no rotation)
  • -o orientation-requested=4 - landscape orientation (90 degrees)
  • -o orientation-requested=5 - reverse landscape or seascape orientation (270 degrees)
  • -o orientation-requested=6 - reverse portrait or upside-down orientation (180 degrees)

Printing On Both Sides of the Paper

The -o sides=two-sided-short-edge and -o sides=two-sided-long-edge options will enable two-sided printing on the printer if the printer supports it. The -o sides=two-sided-short-edge option is suitable for landscape pages, while the -o sides=two-sided-long-edge option is suitable for portrait pages:

lp -o sides=two-sided-short-edge filename
lp -o sides=two-sided-long-edge filename
lpr -o sides=two-sided-long-edge filename

The default is to print single-sided:

lp -o sides=one-sided filename
lpr -o sides=one-sided filename

Selecting the Banner Page(s)

The -o job-sheets=start,end option sets the banner page(s) to use for a job:

lp -o job-sheets=none filename
lp -o job-sheets=standard filename
lpr -o job-sheets=classified,classified filename

If only one banner file is specified, it will be printed before the files in the job. If a second banner file is specified, it is printed after the files in the job.

The available banner pages depend on the local system configuration; CUPS includes the following banner files:

  • none - Do not produce a banner page.
  • classified - A banner page with a "classified" label at the top and bottom.
  • confidential - A banner page with a "confidential" label at the top and bottom.
  • secret - A banner page with a "secret" label at the top and bottom.
  • standard - A banner page with no label at the top and bottom.
  • topsecret - A banner page with a "top secret" label at the top and bottom.
  • unclassified - A banner page with an "unclassified" label at the top and bottom.












在PVE使用虚拟 USB 存储设备 + ARPL 引导 DSM

  部分内容来自: https://blog.myds.cloud/archives/synoboot-usb-image-in-pve-virtual-machine.html 虚拟机建好之后,打开配置文件 nano /etc/pve/qemu-server/100.conf ...