मैं सैकड़ों स्वचालित रूप से जोड़े गए नेटवर्क प्रिंटर कैसे निकालूं?


16

मेरे लिए मुद्रण करना बहुत कठिन है, क्योंकि प्रिंटर संवाद सैकड़ों स्वचालित रूप से जोड़े गए प्रिंटर से भरा हुआ है, इसलिए मुझे वह नहीं मिल सकता है जिसका मैं उपयोग करना चाहता हूं, नीचे स्क्रीनशॉट देखें।

प्रिंटर संवाद की छवि बहुत लंबी स्क्रॉल पट्टी दिखाती है

प्रिंटर मेरे कार्य नेटवर्क से उपजा है, जहाँ जाहिर तौर पर बहुत सारे लोग (छात्रों सहित, मुझे लगता है) अपने घर के प्रिंटर को "साझा" कर रहे हैं, जिसे मेरा लैपटॉप फिर स्वचालित रूप से उठाता है। (संयोग से मैं कभी-कभी काम में अवही-डेमॉन को अक्षम करता हूं, बस इसलिए कि यह बड़ी मात्रा में सीपीयू का उपयोग कर रहा है)।

जब मैं जाता हूं http://localhost:631/printers/, तो यह कहता है कि 131 प्रिंटर हैं, और वे सभी मेक एंड मॉडल 'लोकल रॉ प्रिंटर' हैं। दो अपवादों के साथ: 1 काम पर एक नेटवर्क प्रिंटर है जिसे मैंने मैन्युअल रूप से कॉन्फ़िगर किया है। मेरे माता-पिता का एक अन्य नेटवर्क प्रिंटर है, जिसे स्वचालित रूप से जोड़ा गया था और जो मैं अभी उसी नेटवर्क पर हूं। लेकिन बाकी सिर्फ कचरा है जो मैं वास्तव में बचना चाहूंगा। कैसे करना है कि सराहना की जाएगी पर सुझाव।

मैं थोड़े समय के लिए अपने कार्य स्थल पर वापस नहीं जाऊंगा, इसलिए अभी के लिए, मैं सिर्फ इन प्रिंटरों को पसंद करूंगा (जो कि 129/130 स्वचालित रूप से जोड़े गए प्रिंटर होंगे)। क्या ऐसा करने के लिए कोई रास्ता है? मुझे लगता है कि मैं इसे कप वेब इंटरफेस में क्लिक करके कर सकता हूं, लेकिन 129 प्रिंटर के लिए, यह थोड़ा ज्यादा है। इसलिए मैं एक ही कमांड या सुझाव की तलाश कर रहा हूं कि इसे किस प्रकार की स्क्रिप्ट के साथ प्राप्त किया जाए।


1
/etc/cups/printers.conf देखें। कप बंद करें और फिर प्रिंटर को फ़ाइल से निकालें।
रिनजविंड

2
यह कोई डुप्लिकेट नहीं है क्योंकि मैं पूछ रहा हूं कि पहले से स्थापित प्रिंटर को कैसे हटाया जाए, जबकि अन्य प्रश्न उनकी स्थापना को रोकने के बारे में है। इसके अलावा, यह एक ऐसा प्रश्न है जिसमें पुराने उत्तरों की एक गर्म गड़बड़ी है जो काम नहीं करते हैं। मुझे यह पता है क्योंकि मैंने इसे पहले देखा है और इसके कुछ प्रयास किए हैं।
जोंसलेब

1
समझ गए, पीछे हट गए :)
NGRhodes

जवाबों:


12

इस आदेश का उपयोग करना: 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'
    

यह आशाजनक लग रहा है। मुझे लगता है कि एक समस्या हो सकती है (हालांकि लिस्टिंग कमांड के साथ संभवतः अंतिम कमांड भी)। lpstat -aमें परिणाम <printer_name> not accepting request since <some date> -\n reason unknown( reason unknownएक नई लाइन के साथ!)। इसलिए आपके लिस्टिंग कमांड का उपयोग करके मुझे "कारण" (वहाँ एक इंडेंटेशन) नाम के बहुत सारे "प्रिंटर" मिलते हैं।
जोनासलैब

कृपया चरणों के किस भाग में आप समस्याएँ हैं और अपने प्रश्न में कोई परिणाम जोड़ सकते हैं ताकि मैं अनुसरण कर सकूँ! कमांड lpstat -aआपको क्या देता है?
जॉर्ज उदेन

1
यह ठीक काम किया, लेकिन मैंने sed"पाइप श्रृंखला" में एक और कमांड जोड़ा : sed -E /reason/dअतिरिक्त लाइनों से छुटकारा पाने के लिए।
जोनासलैब

महान काम और खुशी से यह काम किया!
जॉर्ज उडेन ने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.