Làm cách nào để xóa hàng trăm máy in mạng được thêm tự động?


16

Tôi rất khó thực hiện in, vì hộp thoại của máy in có hàng trăm máy in được thêm tự động, vì vậy tôi không thể tìm thấy máy in mà tôi muốn sử dụng, xem ảnh chụp màn hình bên dưới.

Hình ảnh đối thoại máy in hiển thị thanh cuộn rất dài

Các máy in xuất phát từ mạng làm việc của tôi, nơi rõ ràng có rất nhiều người (bao gồm cả sinh viên, tôi đoán vậy) đang "chia sẻ" máy in tại nhà của họ, mà máy tính xách tay của tôi sau đó tự động nhặt lên. (ngẫu nhiên đôi khi tôi vô hiệu hóa avahi-daemon tại nơi làm việc, đơn giản vì nó đang sử dụng một lượng lớn CPU).

Khi tôi đến http://localhost:631/printers/, nó nói có 131 máy in và tất cả chúng đều là Make và Model 'Local Raw Printer'. Với hai ngoại lệ: 1 là một máy in mạng đang hoạt động mà tôi tự cấu hình. Một cái khác là máy in mạng của bố mẹ tôi, cũng được thêm tự động và tôi đang ở trên cùng một mạng như bây giờ. Nhưng phần còn lại chỉ là rác mà tôi thực sự muốn tránh. Lời khuyên về cách làm điều đó sẽ được đánh giá cao.

Mặc dù vậy, tôi sẽ không quay trở lại nơi làm việc của mình một chút thời gian, vì vậy bây giờ, tôi chỉ muốn những máy in này (đó sẽ là máy in tự động thêm 129/130). Có cách nào làm được việc này không? Tôi đoán tôi có thể làm điều đó bằng cách nhấp qua trong giao diện web cốc, nhưng đối với 129 máy in, đó là một chút nhiều. Vì vậy, tôi đang tìm kiếm một lệnh hoặc lời khuyên về cách đạt được nó với một kịch bản sắp xếp.


1
xem /etc/cups/printers.conf. dừng cốc và sau đó loại bỏ các máy in từ tập tin.
Rinzwind

2
Nó không phải là một bản sao bởi vì tôi đang hỏi làm thế nào để loại bỏ các máy in đã được cài đặt, trong khi câu hỏi khác là về việc ngăn chặn cài đặt của chúng. Ngoài ra, đó là một câu hỏi có một mớ hỗn độn các câu trả lời lỗi thời không hoạt động. Tôi biết điều này bởi vì tôi đã nhìn thấy nó trước đây và đã thử một số trong đó.
jonaslb

1
Hiểu, rút ​​lại :)
NGRhodes

Câu trả lời:


13

Sử dụng lệnh này: lpstat -achúng ta có thể thấy các máy in đã cài đặt và xác định tên của máy in mong muốn để giữ, chúng ta cũng có thể sử dụng greplệnh để lọc các kết quả như vậy : lpstat -a | grep <probable_name_of_printer>.

Sau đó, kịch bản nhỏ này có thể giúp:

  1. Chạy lệnh này để kiểm tra xem máy in mong muốn không được liệt kê:

    lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d' | grep <NAME_OF_PRINTER>
    
    • Điều này sẽ không trả lại bất cứ điều gì như nó làm như sau:

      • lpstat -a: danh sách máy in được cài đặt
      • cut -d" " -f1: chỉ trả lại tên của máy in
      • sed -E '/<NAME_OF_PRINTER>/d': xóa tên của máy in để tránh đầu ra của các lệnh trước đó
      • grep <NAME_OF_PRINTER>: đảm bảo máy in mong muốn không có trong danh sách
  2. Nếu kiểm tra ở trên; sau đó chạy lệnh này để xóa mọi máy in khác mà bạn không cần:

    sudo bash -c 'for i in $(lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d'); do lpadmin -x "$i"; done'
    

Điều này có vẻ đầy hứa hẹn. Tôi nghĩ rằng có thể có một vấn đề mặc dù (với lệnh liệt kê nên có lẽ cũng là lệnh cuối cùng). lpstat -akết quả trong <printer_name> not accepting request since <some date> -\n reason unknown(với reason unknownmột dòng mới!). Vì vậy, bằng cách sử dụng lệnh liệt kê của bạn, tôi nhận được rất nhiều "máy in" có tên là `reason` (có một vết lõm).
jonaslb

Vui lòng phần nào trong các bước bạn gặp sự cố và thêm bất kỳ kết quả nào vào câu hỏi của bạn để tôi có thể làm theo! Lệnh này lpstat -acung cấp cho bạn những gì?
George Udosen

1
Nó hoạt động tốt, nhưng tôi đã thêm một sedlệnh khác trong "chuỗi ống": sed -E /reason/dđể loại bỏ các dòng phụ.
jonaslb

Công việc tuyệt vời và vui mừng vì nó đã làm việc!
George Udosen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.