108.4 Bài 1
Chứng chỉ: |
LPIC-1 |
---|---|
Phiên bản: |
5.0 |
Chủ đề: |
108 Dịch vụ Hệ thống thiết yếu |
Mục tiêu: |
108.4 Quản lý Máy in và tác vụ In |
Bài: |
1 trên 1 |
Giới thiệu
Tính đến thời điểm hiện tại, những tuyên bố về một "xã hội không cần tới giấy tờ" từ sự ra đời của máy tính đã được chứng minh là hoàn toàn sai lầm. Rất nhiều tổ chức vẫn phải phụ thuộc vào các trang thông tin vật lý được in ra hay còn gọi là “bản cứng”. Với suy nghĩ này, chúng ta có thể thấy được tầm quan trọng của việc người dùng máy tính biết cách in từ hệ thống cũng như quản trị viên cần biết cách duy trì khả năng làm việc với máy in của máy tính.
Cũng như nhiều hệ điều hành khác, trên Linux, chồng phần mềm Hệ thống In Unix chung (CUPS) cho phép người dùng in và quản lý máy in từ máy tính. Dưới đây là một bản phác thảo rất đơn giản về cách in một tệp trong Linux bằng CUPS:
-
Người dùng chọn một tệp để in.
-
Trình nền CUPS là
cupsd
sau đó sẽ cuốn lệnh in. Lệnh in này sẽ được CUPS cấp một mã số lệnh in, thông tin về hàng đợi in nào sẽ phụ trách lệnh in đó cũng như tên của tài liệu cần in. -
CUPS sử dụng các bộ lọc được cài đặt trên hệ thống để tạo ra các tệp ở định dạng máy in có thể sử dụng được.
-
CUPS sau đó sẽ gửi tệp được định dạng lại tới máy in để in.
Chúng ta sẽ xem xét các bước này cũng như cách cài đặt và quản lý máy in trong Linux một cách chi tiết hơn.
Dịch vụ CUPS
Hầu hết các cài đặt máy tính Linux đều sẽ cài đặt sẵn các gói CUPS. Trên các bản cài đặt Linux tối giản, tùy thuộc vào bản phân phối mà các gói CUPS có thể sẽ không được cài đặt. Việc cài đặt CUPS cơ bản có thể được thực hiện trên hệ thống Debian bằng cách sau:
$ sudo apt install cups
Trên hệ thống Fedora, quá trình cài đặt cũng rất dễ dàng. Chúng ta sẽ phải khởi động dịch vụ CUPS theo cách thủ công sau khi cài đặt trên Fedora và các bản phân phối dựa trên Red Hat khác:
$ sudo dnf install cups ... $ sudo systemctl start cups.service
Sau khi quá trình cài đặt hoàn tất, chúng ta có thể xác minh rằng dịch vụ CUPS đang chạy bằng cách sử dụng lệnh systemctl
:
$ systemctl status cups.service ● cups.service - CUPS Scheduler Loaded: loaded (/lib/systemd/system/cups.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-06-25 14:35:47 EDT; 41min ago Docs: man:cupsd(8) Main PID: 3136 (cupsd) Tasks: 2 (limit: 1119) Memory: 3.2M CGroup: /system.slice/cups.service ├─3136 /usr/sbin/cupsd -l └─3175 /usr/lib/cups/notifier/dbus dbus://
Giống như nhiều trình nền Linux khác, CUPS cũng phụ thuộc vào một tập hợp các tệp cấu hình để hoạt động. Dưới đây là những vấn đề chính cần được quản trị viên hệ thống quan tâm:
/etc/cups/cupsd.conf
-
Tệp này có chứa các cài đặt cấu hình cho chính dịch vụ CUPS. Nếu đã hoàn toàn quen thuộc với tệp cấu hình máy chủ web Apache thì người dùng cũng sẽ thấy tệp cấu hình CUPS khá quen thuộc vì nó cũng sử dụng một cú pháp tương đồng. Tệp
cupsd.conf
có chứa các cài đặt cho những nội dung như kiểm soát quyền truy cập vào các hàng đợi in đang được sử dụng trên hệ thống, xem giao diện web CUPS có được bật hay không cũng như mức độ ghi nhật ký mà trình nền sẽ sử dụng. /etc/printcap
-
Đây là tệp kế thừa được sử dụng bởi giao thức LPD (Line Printer Daemon - Trình nền Máy in Dòng) trước khi CUPS ra đời. CUPS vẫn sẽ tạo tệp này trên các hệ thống để tương thích ngược và nó thường là một liên kết tượng trưng đến
/run/cups/printcap
. Mỗi dòng trong tệp này sẽ chứa một máy in mà hệ thống có quyền truy cập. /etc/cups/printers.conf
-
Tệp này có chứa từng máy in được cấu hình để hệ thống CUPS sử dụng. Mỗi máy in và hàng đợi in liên quan của nó trong tệp này được đặt trong một phần
<Printer></Printer>
. Tệp này cung cấp các danh sách máy in riêng lẻ được tìm thấy trong/etc/printcap
.WarningĐừng thực hiện sửa đổi nào đối với tệp
/etc/cups/printers.conf
tại dòng lệnh trong khi dịch vụ CUPS đang chạy. /etc/cups/ppd/
-
Đây không phải là một tệp cấu hình mà là một thư mục chứa các tệp Mô tả máy in PostScript (PPD) cho các máy in sử dụng chúng. Khả năng vận hành của mỗi máy in sẽ được lưu trữ trong tệp PPD (kết thúc bằng phần mở rộng
.ppd
). Đây là những tệp văn bản thuần túy và sẽ tuân theo một định dạng cụ thể.
Dịch vụ CUPS cũng sử dụng tính năng ghi nhật ký theo cách tương tự như dịch vụ Apache 2. Nhật ký sẽ được lưu trữ trong /var/log/cups/
và có chứa access_log
, page_log
và error_log
. access_log
lưu giữ bản ghi quyền truy cập vào giao diện web CUPS cũng như các hành động được thực hiện trong đó (chẳng hạn như quản lý máy in). page_log
sẽ theo dõi các lệnh in đã được gửi tới hàng đợi in do cài đặt CUPS quản lý. error_log
sẽ chứa các thông báo về lệnh in không thành công và các lỗi khác được giao diện web ghi lại.
Tiếp theo, chúng ta sẽ xem xét các công cụ và tiện ích được sử dụng để quản lý dịch vụ CUPS.
Sử dụng Giao diện Web
Như đã nêu ở trên, tệp cấu hình /etc/cups/cupsd.conf
sẽ xác định xem giao diện web cho hệ thống CUPS có được kích hoạt hay không. Tùy chọn cấu hình sẽ trông giống như sau:
# Web interface setting... WebInterface Yes
Nếu giao diện web được kích hoạt thì CUPS có thể được quản lý từ trình duyệt tại URL mặc định là http://localhost:631
. Theo mặc định, người dùng trên hệ thống có thể xem máy in và hàng đợi in nhưng mọi hình thức sửa đổi cấu hình đều sẽ yêu cầu người dùng có quyền gốc để xác thực bằng dịch vụ web. Đoạn cấu hình trong tệp /etc/cups/cupsd.conf
với mục đích hạn chế quyền truy cập vào các khả năng quản trị sẽ trông giống như sau:
# All administration operations require an administrator to authenticate... <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default> AuthType Default Require user @SYSTEM Order deny,allow </Limit>
Hãy cùng phân tích các tùy chọn này dưới đây:
AuthType Default
-
sẽ sử dụng dấu nhắc xác thực cơ bản khi một hành động yêu cầu quyền truy cập gốc.
Require user @SYSTEM
-
cho biết rằng người dùng có đặc quyền quản trị sẽ được yêu cầu cho hoạt động. Tuỳ chọn này có thể được thay đổi thành
@groupname
mà trong đó, các thành viên củagroupname
có thể quản lý dịch vụ CUPS hoặc một danh sách những người dùng cá nhân cụ thể (như trongRequire user carol, tim
) sẽ được cung cấp. Order deny,allow
-
hoạt động giống như tùy chọn cấu hình Apache 2 mà trong đó, hành động sẽ bị từ chối theo mặc định trừ khi người dùng (hoặc thành viên của một nhóm) được xác thực.
Giao diện web cho CUPS có thể được vô hiệu hoá bằng cách dừng dịch vụ CUPS, thay đổi tùy chọn WebInterface
từ Yes
thành No
và sau đó khởi động lại dịch vụ CUPS.
Giao diện web CUPS được xây dựng giống như một trang web cơ bản với các tab điều hướng cho các phần khác nhau của hệ thống CUPS. Các tab trong giao diện web bao gồm:
- Trang chủ (Home)
-
Trang chủ sẽ liệt kê phiên bản CUPS hiện tại được cài đặt. Nó cũng sẽ chia CUPS thành các phần như:
- CUPS dành cho Người dùng (CUPS for Users)
-
Cung cấp một mô tả về CUPS, các tùy chọn dòng lệnh để làm việc với máy in và hàng đợi in cũng như một liên kết đến diễn đàn người dùng CUPS.
- CUPS dành cho Quản trị viên (CUPS for Administrators)
-
Cung cấp các liên kết trong giao diện để cài đặt và quản lý máy in cũng như các liên kết đến thông tin về cách làm việc với các máy in trên mạng.
- CUPS dành cho Nhà phát triển (CUPS for Developers)
-
Cung cấp liên kết đến phần phát triển cho chính CUPS cũng như để tạo tệp PPD cho máy in.
- Quản trị (Administration)
-
Trang quản trị cũng được chia thành các phần:
- Máy in (Printers)
-
Tại đây, quản trị viên có thể thêm máy in mới vào hệ thống, định vị các máy in được kết nối với hệ thống và quản lý các máy in đã được cài đặt.
- Hạng (Classes)
-
Hạng là một cơ chế mà trong đó máy in có thể được thêm vào các nhóm với các chính sách cụ thể. Ví dụ: một hạng có thể chứa một nhóm máy in thuộc một tầng cụ thể của một tòa nhà mà chỉ những người dùng trong một bộ phận cụ thể mới có thể in được. Một hạng khác có thể có giới hạn về số lượng trang mà người dùng có thể in. Các hạng sẽ không được tạo theo mặc định khi cài đặt CUPS và phải được quản trị viên xác định. Đây là một phần trong giao diện web CUPS nơi các hạng mới có thể được tạo và quản lý.
- Lệnh in (Jobs)
-
Đây là nơi quản trị viên có thể xem tất cả các lệnh in hiện đang xếp hàng cho tất cả các máy in mà bản cài đặt CUPS này quản lý.
- Máy chủ (Server)
-
Đây là nơi quản trị viên có thể thực hiện các thay đổi đối với tệp
/etc/cups/cupsd.conf
. Ngoài ra, các tùy chọn cấu hình khác cũng có sẵn thông qua các hộp kiểm như cho phép chia sẻ máy in được kết nối với cài đặt CUPS này trên mạng, xác thực nâng cao và cho phép quản trị máy in từ xa.
- Hạng (Classes)
-
Nếu các hạng máy in được cấu hình trên hệ thống, chúng sẽ được liệt kê ở trang này. Mỗi hạng máy in sẽ có các tùy chọn để quản lý tất cả các máy in trong hạng cùng một lúc cũng như xem tất cả các công việc đang chờ cho các máy in trong hạng này.
- Trợ giúp (Help)
-
Tab này sẽ cung cấp các liên kết cho tất cả tài liệu có sẵn về CUPS được cài đặt trên hệ thống.
- Công việc (Jobs)
-
Tab Công việc cho phép người dùng tìm kiếm các lệnh in riêng lẻ cũng như liệt kê tất cả các lệnh in hiện tại do máy chủ quản lý.
- Máy in (Printers)
-
Tab Máy in sẽ liệt kê tất cả các máy in hiện được hệ thống quản lý cũng như một mô tả tổng quan ngắn về trạng thái của từng máy in. Mỗi máy in được liệt kê có thể được nhấp vào và quản trị viên sẽ được đưa đến trang nơi có thể quản lý rộng hơn từng máy in riêng lẻ. Thông tin về các máy in trên tab này đến từ tệp
/etc/cups/printers.conf
.
Cài đặt một Máy in
Việc thêm một hàng đợi máy in vào hệ thống là một tiến trình đơn giản trong giao diện web CUPS:
-
Nhấp vào tab Administration rồi nhấp vào nút Add Printer (Thêm máy in).
-
Trang tiếp theo sẽ cung cấp nhiều tùy chọn khác nhau tùy thuộc vào cách máy in được kết nối với hệ thống của người dùng. Nếu đó là máy in cục bộ, hãy chọn tùy chọn phù hợp nhất (chẳng hạn như máy in sẽ được kết nối vào cổng nào hoặc phần mềm máy in của bên thứ ba nào có thể được cài đặt). CUPS cũng sẽ cố gắng phát hiện các máy in được kết nối với mạng và hiển thị các máy in đó ở đây. Người dùng cũng có thể chọn tùy chọn kết nối trực tiếp với máy in kết nối mạng tùy thuộc vào giao thức in kết nối mạng mà máy in hỗ trợ. Sau khi chọn tùy chọn thích hợp, hãy nhấp vào nút Continue (Tiếp tục).
-
Trang tiếp theo sẽ cho phép người dùng cung cấp tên, mô tả và vị trí (chẳng hạn như “back office” hoặc “front desk”, v.v.) cho máy in. Nếu muốn chia sẻ máy in này qua mạng, người dùng cũng có thể chọn hộp kiểm cho tùy chọn đó trên trang này. Khi cài đặt đã được nhập, hãy nhấp vào nút Continue.
-
Trang tiếp theo là nơi người dùng có thể chọn nhãn hiệu và kiểu máy in. Điều này cho phép CUPS tìm kiếm cơ sở dữ liệu được cài đặt cục bộ để tìm trình điều khiển và tệp PPD phù hợp nhất để sử dụng với máy in. Nếu có tệp PPD do nhà sản xuất máy in cung cấp, hãy duyệt đến vị trí của tệp đó và chọn nó để sử dụng tại đây. Sau khi hoàn tất, hãy nhấp vào nút Add Printer.
-
Trang cuối cùng là nơi người dùng đặt các tùy chọn mặc định như kích thước trang mà máy in sẽ sử dụng và độ phân giải của các ký tự được in trên trang. Sau khi nhấp vào nút Set Default Options (Đặt tùy chọn mặc định), máy in hiện đã được cài đặt trên hệ thống.
Note
|
Nhiều bản cài đặt máy tính của Linux sẽ có các công cụ khác nhau có thể được sử dụng để cài đặt máy in. Môi trường máy tính Gnome và KDE có sẵn các ứng dụng riêng có thể được sử dụng để cài đặt và quản lý máy in. Ngoài ra, một số bản phân phối còn cung cấp các ứng dụng quản lý máy in riêng biệt. Tuy nhiên, khi xử lý việc cài đặt máy chủ mà nhiều người dùng sẽ in tới, giao diện web CUPS có thể cung cấp những công cụ tốt nhất cho tác vụ này. |
Hàng đợi của máy in cũng có thể được cài đặt bằng các lệnh LPD/LPR cũ. Sau đây là một ví dụ sử dụng lệnh lpadmin
:
$ sudo lpadmin -p ENVY-4510 -L "office" -v socket://192.168.150.25 -m everywhere
Chúng ta sẽ chia nhỏ lệnh để minh họa các tùy chọn được sử dụng ở đây:
-
Vì việc thêm máy in vào hệ thống yêu cầu người dùng có đặc quyền quản trị nên chúng ta sẽ thêm
sudo
vào trước lệnhlpadmin
. -
Tùy chọn
-p
là đích đến cho lệnh in. Về cơ bản, nó là một cái tên khá thân thiện để người dùng biết các lệnh in sẽ đi đến đâu. Thông thường, chúng ta có thể cung cấp tên của máy in. -
Tùy chọn
-L
là vị trí của máy in. Đây là tùy chọn không bắt buộc nhưng sẽ hữu ích nếu người dùng cần quản lý một số máy in ở nhiều địa điểm khác nhau. -
Tùy chọn
-v
dành cho URI của thiết bị máy in. URI thiết bị là thứ mà hàng đợi in CUPS cần để gửi các lệnh in được kết xuất tới một máy in cụ thể. Trong ví dụ, chúng ta đang sử dụng vị trí mạng bằng địa chỉ IP được cung cấp. -
Tùy chọn cuối cùng,
-m
, được đặt thành “everywhere” (mọi nơi). Tuỳ chọn này sẽ đặt kiểu máy in cho CUPS để xác định tệp PPD nào sẽ sử dụng. Trong các phiên bản CUPS hiện đại, tốt nhất là chúng ta nên sử dụng “where” để CUPS có thể kiểm tra URI thiết bị (được đặt bằng tùy chọn-v
trước đó) để tự động xác định đúng tệp PPD cho máy in. Trong các tình huống hiện đại, CUPS sẽ chỉ sử dụng IPP như được giải thích bên dưới.
Như đã nêu trước đây, tốt nhất là chúng ta để CUPS tự động xác định tệp PPD nào sẽ sử dụng cho hàng đợi in cụ thể. Tuy nhiên, lệnh lpinfo
kế thừa có thể được sử dụng để truy vấn các tệp PPD được cài đặt cục bộ để xem những gì đang có sẵn. Ta chỉ cần cung cấp tùy chọn --make-and-model
cho máy in cần cài đặt và tùy chọn -m
:
$ lpinfo --make-and-model "HP Envy 4510" -m hplip:0/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10 hplip:1/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10 hplip:2/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10 drv:///hpcups.crv/hp-envy_4510_series.ppd HP Envy 4510 Series, hpcups 3.17.10 everywhere IPP Everywhere
Hãy lưu ý rằng lệnh lpinfo
không còn được sử dụng nữa. Nó được hiển thị ở đây như một ví dụ về việc liệt kê các tệp trình điều khiển in mà một máy in có thể sử dụng.
Warning
|
Các phiên bản tương lai của CUPS không còn dùng trình điều khiển nữa và thay vào đó sẽ tập trung vào việc sử dụng IPP (Giao thức in Internet) và các định dạng tệp tiêu chuẩn. Đầu ra của lệnh trước sẽ minh họa điều này bằng khả năng in |
Chúng ta có thể đặt máy in mặc định bằng lệnh lpoptions
. Bằng cách này, nếu phần lớn (hoặc tất cả) các lệnh in đều được gửi đến một máy in cụ thể thì máy in được chỉ định bằng lệnh lpoptions
sẽ là mặc định. Chúng ta chỉ cần chỉ định máy in cùng với tùy chọn -d
:
$ lpoptions -d ENVY-4510
Quản lý Máy in
Khi máy in đã được cài đặt, quản trị viên có thể sử dụng giao diện web để quản lý các tùy chọn có sẵn cho máy in. Một cách tiếp cận trực tiếp hơn để quản lý máy in là sử dụng lệnh lpadmin
.
Có một tùy chọn cho phép một máy in có khả năng được chia sẻ ở bên trong mạng. Điều này có thể đạt được bằng tùy chọn printer-is-shared
và chỉ định máy in với tùy chọn -p
:
$ sudo lpadmin -p FRONT-DESK -o printer-is-shared=true
Quản trị viên cũng có thể định cấu hình hàng đợi in để chỉ chấp nhận lệnh in từ những người dùng cụ thể với mỗi người dùng được phân tách bằng một dấu phẩy:
$ sudo lpadmin -p FRONT-DESK -u allow:carol,frank,grace
Ngược lại, chỉ những người dùng cụ thể mới có thể bị từ chối truy cập vào hàng đợi in cụ thể:
$ sudo lpadmin -p FRONT-DESK -u deny:dave
Các nhóm người dùng cũng có thể được sử dụng để cho phép hoặc từ chối quyền truy cập vào hàng đợi của máy in với điều kiện tên của nhóm được đặt trước ký tự “at” (@
):
$ sudo lpadmin -p FRONT-DESK -u deny:@sales,@marketing
Hàng đợi in cũng có thể có chính sách lỗi nếu nó gặp phải sự cố khi in. Với việc sử dụng các chính sách, một lệnh in có thể bị hủy bỏ (abort-job
) hoặc một tác vụ in khác có thể xảy ra tại một thời điểm sau đó (retry-job
). Các chính sách khác bao gồm khả năng dừng máy in ngay lập tức nếu xảy ra lỗi (stop-printer
) cũng như khả năng thử lại lệnh in ngay sau khi phát hiện lỗi (retry-current-job
). Dưới đây là một ví dụ mà trong đó, chính sách máy in được đặt để hủy lệnh in nếu xảy ra lỗi trên máy in FRONT-DESK
:
$ sudo lpadmin -p FRONT-DESK -o printer-error-policy=abort-job
Hãy xem lại các trang hướng dẫn của lệnh lpadmin
tại lpadmin(8)
để biết thêm chi tiết về cách sử dụng lệnh này.
Gửi Lệnh In
Nhiều ứng dụng máy tính sẽ cho phép người dùng gửi lệnh in từ một mục menu hoặc bằng cách sử dụng phím tắt Ctrl+p. Nếu sử dụng hệ thống Linux không sử dụng môi trường máy tính, chúng ta vẫn có thể gửi tệp tới máy in bằng các lệnh LPD/LPR cũ.
Lệnh lpr
(“line printer remote”) được sử dụng để gửi lệnh in đến hàng đợi của máy in. Ở dạng cơ bản nhất của lệnh, tên tệp cùng với lệnh lpr
là tất cả những gì chúng ta cần:
$ lpr report.txt
Lệnh trên sẽ gửi tệp report.txt
đến hàng đợi in mặc định cho hệ thống (như được xác định bởi tệp /etc/cups/printers.conf
).
Nếu một cài đặt CUPS có nhiều máy in được cài đặt thì lệnh lpstat
có thể được sử dụng với tùy chọn -p
để in ra một danh sách các máy in khả dụng và tùy chọn -d
sẽ cho biết đâu là máy in mặc định:
$ lpstat -p -d printer FRONT-DESK is idle. enabled since Mon 03 Aug 2020 10:33:07 AM EDT printer PostScript_oc0303387803 disabled since Sat 07 Mar 2020 08:33:11 PM EST - reason unknown printer ENVY-4510 is idle. enabled since Fri 31 Jul 2020 10:08:31 AM EDT system default destination: ENVY-4510
Vì vậy, trong ví dụ của chúng ta, tệp report.txt
sẽ được gửi đến máy in ENVY-4510
vì nó được đặt làm mặc định. Nếu tệp cần được in ở một máy in khác, hãy chỉ định máy in cùng với tùy chọn -P
:
$ lpr -P FRONT-DESK report.txt
Khi lệnh in được gửi tới CUPS, trình nền này sẽ tìm ra phần liên quan nào phù hợp nhất để xử lý tác vụ. CUPS có thể sử dụng nhiều trình điều khiển máy in, bộ lọc, màn hình cổng kết nối phần cứng và các phần mềm khác để hiển thị tài liệu một cách chính xác. Sẽ có lúc người dùng cần in một tài liệu nơi cách thức in cần phải sửa đổi. Nhiều ứng dụng đồ họa có thể thực hiện nhiệm vụ này một cách khá dễ dàng. Ngoài ra, chúng ta còn có các tùy chọn dòng lệnh có thể được sử dụng để thay đổi cách in tài liệu. Khi lệnh in được gửi qua dòng lệnh, khoá chuyển -o
(“options”) có thể được sử dụng cùng với các thuật ngữ cụ thể để điều chỉnh bố cục của tài liệu khi in. Dưới đây là một danh sách ngắn các tùy chọn thường được sử dụng:
landscape
-
Tài liệu được in dưới dạng trang được xoay 90 độ theo chiều kim đồng hồ. Tùy chọn
orientation-requested=4
cũng sẽ đạt được kết quả tương tự. two-sided-long-edge
-
Máy in sẽ in tài liệu ở chế độ dọc trên cả hai mặt giấy (trong trường hợp máy in có hỗ trợ khả năng này).
two-sided-short-edge
-
Máy in sẽ in tài liệu ở chế độ ngang trên cả hai mặt giấy (trong trường hợp máy in có hỗ trợ khả năng này).
media
-
Máy in sẽ in lệnh in theo kích thước phương tiện được chỉ định. Kích thước phương tiện có sẵn cho lệnh in sử dụng sẽ tùy thuộc vào máy in, nhưng dưới đây là một danh sách các kích thước phổ biến:
Tùy chọn kích thước Ý nghĩa A4
ISO A4
Letter
Thư tiêu chuẩn Mỹ (US Letter)
Legal
Pháp lý tiêu chuẩn Mỹ (US Legal)
DL
Phong bì ISO DL (ISO DL Envelope)
COM10
Phong bì tiêu chuẩn Mỹ #10 (US #10 Envelope)
collate
-
sắp xếp tài liệu được in. Tuỳ chọn này rất hữu ích nếu người dùng có một tài liệu nhiều trang cần được in nhiều lần vì khi đó, tất cả các trang cho mỗi tài liệu sẽ được in theo thứ tự. Đặt tùy chọn này thành
true
để kích hoạt hoặcfalse
để vô hiệu hoá nó. page-ranges
-
Tùy chọn này có thể được sử dụng để chọn một trang để in hoặc một tập hợp các trang cụ thể để in từ tài liệu. Một ví dụ sẽ như sau:
-o page-ranges=5-7,9,15
. Lệnh này sẽ in các trang 5, 6 và 7 sau đó là trang 9 và 15. fit-to-page
-
In tài liệu sao cho tệp cân tỷ lệ vừa với giấy. Nếu tệp cần in không cung cấp thông tin về kích thước trang thì có thể lệnh in sẽ bị thu nhỏ một cách không chính xác và các phần của tài liệu có thể bị sai tỉ lệ trong trang hoặc bị thu lại còn rất nhỏ.
outputorder
-
In tài liệu theo chiều nghịch (
reverse
) hoặc chiều thuận (normal
) để bắt đầu in trên trang đầu tiên. Nếu một máy in in các trang theo chiều úp xuống, thứ tự mặc định sẽ là-o outorder=normal
trong khi các máy in in với các trang theo chiều hướng lên trên sẽ in với-o outorder=reverse
.
Lấy mẫu từ các tùy chọn ở trên, chúng ta có thể xây dựng lệnh ví dụ như sau:
$ lpr -P ACCOUNTING-LASERJET -o landscape -o media=A4 -o two-sided-short-edge finance-report.pdf
Chúng ta có thể in nhiều bản sao của một tài liệu bằng cách sử dụng tùy chọn số ở định dạng sau: -#N
, trong đó, N
bằng với số lượng bản sao cần in. Đây là một ví dụ với tùy chọn collate
mà trong đó bảy bản sao của một báo cáo sẽ được in trên máy in mặc định:
$ lpr -#7 -o collate=true status-report.pdf
Ngoài lệnh lpr
, lệnh lp
cũng có thể được sử dụng. Nhiều tùy chọn được sử dụng với lệnh lpr
cũng có thể được sử dụng với lệnh lp
nhưng sẽ có một số khác biệt. Hãy tham khảo trang hướng dẫn tại lp(1)
để nắm rõ hơn. Dưới đây sẽ là cách chúng ta có thể chạy lệnh lpr
trong ví dụ trước bằng cách sử dụng cú pháp của lệnh lp
, đồng thời chỉ định máy in đích với tùy chọn -d
:
$ lp -d ACCOUNTING-LASERJET -n 7 -o collate=true status-report.pdf
Quản lý Lệnh In
Như đã nêu trước đó, mỗi lệnh in được gửi tới hàng đợi in sẽ nhận được một ID công việc từ CUPS. Người dùng có thể xem các lệnh in mà họ đã gửi bằng lệnh lpq
. Việc truyền tùy chọn -a
sẽ hiển thị hàng đợi của tất cả các máy in được quản lý bởi cài đặt CUPS:
$ lpq -a Rank Owner Job File(s) Total Size 1st carol 20 finance-report.pdf 5072 bytes
Lệnh lpstat
tương tự được sử dụng trước đây cũng có tùy chọn để xem hàng đợi máy in. Bản thân tùy chọn -o
sẽ hiển thị tất cả các hàng đợi in hoặc hàng đợi in có thể được chỉ định theo tên:
$ lp -o ACCOUNTING-LASERJET-4 carol 19456 Wed 05 Aug 2020 04:29:44 PM EDT
ID lệnh in sẽ được thêm vào sau tên của hàng đợi nơi lệnh in được gửi, sau đó là tên của người dùng đã gửi lệnh in, kích thước tệp và thời gian lệnh in được gửi.
Nếu lệnh in bị kẹt trên máy in hoặc người dùng muốn hủy lệnh in của họ, hãy sử dụng lệnh lprm
cùng với ID công việc căn cứ từ lệnh lpq
:
$ lprm 20
Tất cả các công việc trong hàng đợi in có thể bị xóa cùng một lúc bằng cách chỉ cung cấp dấu gạch ngang -
:
$ lprm -
Ngoài ra, người dùng cũng có thể sử dụng lệnh CUPS cancel
để dừng lệnh in hiện tại của họ:
$ cancel
Một lệnh in cụ thể có thể bị hủy bằng ID lệnh in được thêm vào sau tên máy in:
$ cancel ACCOUNTING-LASERJET-20
Lệnh in cũng có thể được chuyển từ hàng đợi in này sang hàng đợi in khác. Điều này thường sẽ hữu ích khi máy in ngừng phản hồi hoặc tài liệu được in yêu cầu các tính năng có sẵn trên một máy in khác. Hãy lưu ý rằng quy trình này thường yêu cầu người dùng có đặc quyền nâng cao. Bằng cách sử dụng cùng một lệnh in từ ví dụ trước, chúng ta có thể di chuyển nó đến hàng đợi của máy in FRONT-DESK
:
$ sudo lpmove ACCOUNTING-LASERJET-20 FRONT-DESK
Xóa máy in
Để xóa một máy in, trước tiên chúng ta nên liệt kê tất cả các máy in hiện được dịch vụ CUPS quản lý. Điều này có thể được thực hiện bằng lệnh lpstat
:
$ lpstat -v device for FRONT-DESK: socket://192.168.150.24 device for ENVY-4510: socket://192.168.150.25 device for PostScript_oc0303387803: ///dev/null
Tùy chọn -v
không chỉ liệt kê các máy in mà còn cả vị trí (và cách thức) nơi chúng được gắn vào. Cách tốt nhất là trước tiên chúng ta sẽ từ chối bất kỳ một lệnh in mới nào được gửi tới máy in và đưa ra lý do tại sao máy in sẽ không nhận lệnh in mới. Điều này có thể được thực hiện bằng cách sau:
$ sudo cupsreject -r "Printer to be removed" FRONT-DESK
Hãy lưu ý việc sử dụng sudo
vì tác vụ này yêu cầu người dùng có đặc quyền nâng cao.
Để xóa một máy in, chúng ta có thể sử dụng lệnh lpadmin
với tùy chọn -x
:
$ sudo lpadmin -x FRONT-DESK
Bài tập Hướng dẫn
-
Một máy in mới vừa được cài đặt trên máy trạm cục bộ có tên
office-mgr
. Lệnh nào có thể được sử dụng để đặt máy in này làm mặc định cho máy trạm này? -
Lệnh và tùy chọn nào sẽ được sử dụng để xác định máy in nào có sẵn để in từ máy trạm?
-
Bằng cách sử dụng lệnh
cancel
, bạn sẽ xóa lệnh in có ID 15 bị kẹt trong hàng đợi của máy in có tên làoffice-mgr
như thế nào? -
Bạn có một lệnh in dành cho một máy in không có đủ giấy để in toàn bộ tệp. Bạn sẽ sử dụng lệnh nào để di chuyển lệnh in có ID 2 được xếp hàng đợi in trên máy in
FRONT-DESK
sang hàng đợi in cho máy inACCOUNTING-LASERJET
?
Bài tập Mở rộng
Bằng cách sử dụng trình quản lý gói của bản phân phối của bạn, hãy cài đặt các gói cups
và printer-driver-cups-pdf
. Hãy lưu ý rằng nếu bạn đang sử dụng bản phân phối dựa trên Red Hat (chẳng hạn như Fedora) thì trình điều khiển CUPS PDF sẽ được gọi là cups-pdf
. Hãy cài đặt đồng thời cả gói cups-client
để sử dụng các lệnh in kiểu System V. Chúng ta sẽ sử dụng các gói này để thực hành quản lý máy in CUPS mà không cần cài đặt vật lý một máy in thực.
-
Hãy xác minh rằng trình nền CUPS đang chạy, sau đó xác minh rằng máy in PDF đã được bật và đặt nó thành mặc định.
-
Hãy chạy lệnh sẽ in tệp
/etc/services
. Bây giờ, bạn sẽ có một thư mục có tênPDF
trong thư mục chính của bạn. -
Hãy sử dụng một lệnh mà chỉ tắt máy in, sau đó chạy một lệnh riêng để hiển thị tất cả các thông tin trạng thái để xác minh rằng máy in PDF đã bị tắt. Sau đó, hãy thử in một bản sao của tệp
/etc/fstab
của bạn. Điều gì sẽ xảy ra? -
Bây giờ, hãy thử in một bản sao của tệp
/etc/fstab
bằng máy in PDF. Điều gì sẽ xảy ra? -
Hãy hủy lệnh in, sau đó xoá máy in PDF.
Tóm tắt
Trình nền CUPS là một nền tảng được sử dụng rộng rãi để in dành cho các máy in cục bộ và từ xa. Mặc dù nó được sử dụng để thay thế cho giao thức LPD cũ nhưng nó vẫn cung cấp khả năng tương thích ngược cho các công cụ của mình.
Các tệp và lệnh đã được thảo luận trong bài học này là:
/etc/cups/cupsd.conf
-
Tệp cấu hình chính cho chính dịch vụ CUPS. Tệp này cũng kiểm soát quyền truy cập vào giao diện web dành cho CUPS.
/etc/printcap
-
Một tệp kế thừa được LPD sử dụng có chứa các dòng cho mỗi máy in được kết nối với hệ thống.
/etc/cups/printers.conf
-
Tệp cấu hình được CUPS sử dụng để nắm giữ thông tin máy in.
Bạn có thể tìm thấy giao diện web CUPS trong cài đặt mặc định tại http://localhost:631
. Hãy nhớ rằng, cổng mạng mặc định cho giao diện web là 631/TCP.
Các lệnh LPD/LPR kế thừa sau đây cũng đã được thảo luận:
lpadmin
-
Được sử dụng để cài đặt và gỡ bỏ máy in và các hạng máy in.
lpoptions
-
Được sử dụng để in ra các tùy chọn máy in và sửa đổi cài đặt của máy in.
lpstat
-
Được sử dụng để hiển thị thông tin trạng thái của máy in được kết nối với cài đặt CUPS.
lpr
-
Được sử dụng để gửi lệnh in tới hàng đợi của máy in.
lp
-
Được sử dụng để gửi lệnh in tới hàng đợi của máy in.
lpq
-
Được sử dụng để liệt kê các lệnh in trong hàng đợi in.
lprm
-
Được sử dụng để hủy lệnh in theo ID. ID cho một lệnh in có thể được lấy bằng đầu ra của lệnh
lpq
. cancel
-
Một thay thế cho lệnh
lprm
để hủy lệnh in bằng ID của chúng.
Hãy nhớ xem lại các trang hướng dẫn sau để biết về các công cụ và tiện ích khác nhau của CUPS: lpadmin(8)
, lpoptions(1)
, lpr(1)
, lpq(1)
, lprm(1)
, cancel(1)
, lpstat(1)
, cupsenable(8)
và cupsaccept(8)
. Bạn cũng nên xem lại tài liệu trợ giúp trực tuyến tại http://localhost:631/help
.
Đáp án Bài tập Hướng dẫn
-
Một máy in mới vừa được cài đặt trên máy trạm cục bộ có tên
office-mgr
. Lệnh nào có thể được sử dụng để đặt máy in này làm mặc định cho máy trạm này?$ lpoptions -d office-mgr
-
Lệnh và tùy chọn nào sẽ được sử dụng để xác định máy in nào có sẵn để in từ máy trạm?
$ lpstat -p
Tùy chọn
-p
sẽ liệt kê tất cả các máy in có sẵn và liệu chúng có đang được bật để sẵn sàng in hay không. -
Bằng cách sử dụng lệnh
cancel
, bạn sẽ xóa lệnh in có ID 15 bị kẹt trong hàng đợi của máy in có tên làoffice-mgr
như thế nào?$ cancel office-mgr-15
-
Bạn có một lệnh in dành cho một máy in không có đủ giấy để in toàn bộ tệp. Bạn sẽ sử dụng lệnh nào để di chuyển lệnh in có ID 2 được xếp hàng đợi in trên máy in
FRONT-DESK
sang hàng đợi in cho máy inACCOUNTING-LASERJET
?$ sudo lpmove FRONT-DESK-2 ACCOUNTING-LASERJET
Đáp án Bài tập Mở rộng
Bằng cách sử dụng trình quản lý gói của bản phân phối của bạn, hãy cài đặt các gói cups
và printer-driver-cups-pdf
. Hãy lưu ý rằng nếu bạn đang sử dụng bản phân phối dựa trên Red Hat (chẳng hạn như Fedora) thì trình điều khiển CUPS PDF sẽ được gọi là cups-pdf
. Hãy cài đặt đồng thời cả gói cups-client
để sử dụng các lệnh in kiểu System V. Chúng ta sẽ sử dụng các gói này để thực hành quản lý máy in CUPS mà không cần cài đặt vật lý một máy in thực.
-
Hãy xác minh rằng trình nền CUPS đang chạy, sau đó xác minh rằng máy in PDF đã được bật và đặt nó thành mặc định.
Một phương pháp để kiểm tra tính khả dụng và trạng thái của máy in PDF là chạy lệnh sau:
$ lpstat -p -d printer PDF is idle. enabled since Thu 25 Jun 2020 02:36:07 PM EDTi system default destination: PDF
-
Hãy chạy lệnh sẽ in tệp
/etc/services
. Bây giờ, bạn sẽ có một thư mục có tênPDF
trong thư mục chính của bạn.$ lp -d PDF /etc/services
sẽ có tác dụng. Bây giờ bạn sẽ có phiên bản PDF của tệp này trong thư mục PDF.
-
Hãy sử dụng một lệnh mà chỉ tắt máy in, sau đó chạy một lệnh riêng để hiển thị tất cả các thông tin trạng thái để xác minh rằng máy in PDF đã bị tắt. Sau đó, hãy thử in một bản sao của tệp
/etc/fstab
của bạn. Điều gì sẽ xảy ra?$ sudo cupsdisable PDF
sẽ vô hiệu hóa máy in.
Tiếp theo là chạy lệnh
lpstat -t
để có một danh sách đầy đủ về tình trạng của máy in. Nó sẽ trông giống như đầu ra sau:$ scheduler is running system default destination: PDFi device for PDF: cups-pdf:/ PDF accepting requests since Wed 05 Aug 2020 04:19:15 PM EDTi printer PDF disabled since Wed 05 Aug 2020 04:19:15 PM EDT - Paused
-
Bây giờ, hãy thử in một bản sao của tệp
/etc/fstab
bằng máy in PDF. Điều gì sẽ xảy ra?Sau khi thử lệnh
lp -d PDF /etc/fstab
, bạn sẽ nhận được kết quả hiển thị thông tin ID lệnh in. Tuy nhiên, nếu bạn kiểm tra thư mục PDF trong thư mục chính thì tệp mới sẽ không có ở đó. Tiếp theo, bạn có thể kiểm tra hàng đợi in bằng lệnhlpstat -o
và sẽ thấy lệnh in của mình được liệt kê ở đó. -
Hãy hủy lệnh in, sau đó xoá máy in PDF.
Bằng cách sử dụng đầu ra từ lệnh
lp
trước đó, bạn có thể sử dụng lệnhcancel
để xóa lệnh in. Ví dụ:$ cancel PDF-4
Sau đó chạy lệnh
lpstat -o
để xác minh rằng lệnh in đã bị xóa.Xóa máy in PDF bằng lệnh
sudo lpadmin -x PDF
, sau đó xác minh rằng máy in đã bị xóa bằnglpstat -a
.