자동으로 추가된 수백 개의 네트워크 프린터를 어떻게 제거합니까?

자동으로 추가된 수백 개의 네트워크 프린터를 어떻게 제거합니까?

프린터 대화 상자에 자동으로 추가된 수백 개의 프린터가 있어서 사용하려는 프린터를 찾을 수 없기 때문에 인쇄를 수행하는 것이 매우 어렵습니다. 아래 스크린샷을 참조하세요.

매우 긴 스크롤 막대를 표시하는 프린터 대화상자 이미지

프린터는 내 작업 네트워크에서 유래했는데, 분명히 많은 사람들(학생 포함)이 가정용 프린터를 "공유"하고 있으며 내 노트북이 자동으로 이를 선택합니다. (우연히도 avahi-daemon이 많은 양의 CPU를 사용하고 있다는 이유만으로 직장에서 avahi-daemon을 비활성화할 때도 있습니다.)

에 가보니 http://localhost:631/printers/프린터가 131대라고 나오네요. 제조사와 모델은 모두 '로컬 RAW 프린터' 입니다. 두 가지 예외가 있지만 1은 내가 수동으로 구성한 직장의 네트워크 프린터입니다. 또 하나는 부모님 집에 있는 네트워크 프린터인데, 이 프린터도 자동으로 추가되어 지금과 같은 네트워크에 연결되어 있습니다. 하지만 나머지는 정말 피하고 싶은 쓰레기일 뿐입니다. 이를 수행하는 방법에 대한 팁을 주시면 감사하겠습니다.

하지만 한동안 직장으로 돌아가지 않을 것이므로 지금은 이 프린터(129/130 자동 추가 프린터)를 제거하고 싶습니다. 그렇게 할 수 있는 방법이 있나요? 컵 웹 인터페이스를 클릭하면 할 수 있을 것 같지만 129개 프린터의 경우에는 약간 많은 양입니다. 그래서 저는 일종의 스크립트를 사용하여 이를 달성하는 방법에 대한 단일 명령이나 팁을 찾고 있습니다.

답변1

이 명령을 사용하면 lpstat -a설치된 프린터를 확인하고 유지하려는 프린터의 이름을 식별할 수 있으며, grep명령을 사용하여 다음과 같이 결과를 필터링 할 수도 있습니다 lpstat -a | grep <probable_name_of_printer>.

그렇다면 이 작은 스크립트가 도움이 될 수 있습니다.

  1. 원하는 프린터가 목록에 없는지 확인하려면 다음 명령을 실행하세요.

    lpstat -a | cut -d" " -f1 | sed -E '/<NAME_OF_PRINTER>/d' | grep <NAME_OF_PRINTER>
    
    • 이는 다음을 수행하므로 아무것도 반환하지 않습니다.

      • lpstat -a: 설치된 프린터 목록
      • cut -d" " -f1: 프린터 이름만 반환
      • sed -E '/<NAME_OF_PRINTER>/d': 이전 명령의 출력에서 ​​유지할 프린터 이름을 제거합니다.
      • grep <NAME_OF_PRINTER>: 원하는 프린터가 목록에 없는지 확인하세요.
  2. 위 내용을 확인하면; 그런 다음 이 명령을 실행하여 필요하지 않은 다른 모든 프린터를 제거하십시오.

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

관련 정보