xdotool, ydotool, dotool या Playwright: एक Headless Server के लिए कौन सा ऑटोमेशन टूल उपयुक्त है?

xdotool, ydotool, dotool या Playwright: एक Headless Server के लिए कौन सा ऑटोमेशन टूल उपयुक्त है?

दैनिक सोशल-पोस्टिंग जॉब से एक वास्तविक तुलना, मापे गए CPU और मेमोरी आंकड़ों के साथ

यदि आपको कभी Linux मशीन पर अपनी ओर से क्लिक करने, टाइप करने और पोस्ट करने के लिए किसी स्क्रिप्ट की आवश्यकता पड़ी है, तो आपका सामना चार नामों से हुआ होगा: xdotool, ydotool, dotool और Playwright। वे दूर से देखने में एक जैसे लगते हैं, लेकिन वे बहुत अलग तरीकों से काम करते हैं। आज, 20 अक्टूबर, 2026 को यह सवाल पहले से कहीं अधिक महत्वपूर्ण है, क्योंकि कई Linux डेस्कटॉप अब पुराने X11 सिस्टम के बजाय Wayland चलाते हैं, और इससे यह बदल जाता है कि कौन सा टूल काम करेगा।

यह लेख बताता है कि हमने एक छोटी कंपनी के दैनिक सोशल-मीडिया पोस्टिंग जॉब को ऑटोमेट करते समय क्या सीखा। यह जॉब एक निजी, अदृश्य स्क्रीन वाले सर्वर पर चलती है, और यह कई साइटों पर प्रतिदिन एक लेख पोस्ट करती है। हमने इन टूल्स के बीच चयन किया, एक चरण को एक टूल से दूसरे टूल पर स्विच किया, और इसकी लागत को मापा।

संक्षिप्त उत्तर

एक अदृश्य X11 स्क्रीन पर चलने वाले जॉब के लिए, उपयोग करें Playwright जब साइट एक सामान्य वेब पेज हो, और रखें xdotool एक बैकअप के रूप में। ydotool और dotool एक अलग समस्या के लिए बनाए गए हैं। CPU और मेमोरी पर, Playwright और xdotool के बीच का अंतर बहुत कम है। विश्वसनीयता कहीं अधिक मायने रखती है।

प्रत्येक टूल वास्तव में क्या करता है

xdotool एक X11 डिस्प्ले से संचार करता है। यह माउस को स्थानांतरित कर सकता है, क्लिक कर सकता है, टाइप कर सकता है, कुंजियाँ दबा सकता है, और नाम से विंडोज़ ढूंढ सकता है। यह केवल उसी डिस्प्ले पर इनपुट भेजता है जिसकी ओर आप इसे निर्देशित करते हैं। यह स्क्रीन को नहीं देख सकता, इसलिए यदि आपको यह जानना है कि स्क्रीन पर क्या है तो आपको स्वयं स्क्रीनशॉट लेना होगा।

ydotool और dotool निचले स्तर पर काम करते हैं। वे कर्नेल के इनपुट डिवाइस (जिसे uinput कहा जाता है) पर लिखते हैं, इसलिए वे पूरी मशीन में प्लग किए गए एक वास्तविक कीबोर्ड और माउस की तरह व्यवहार करते हैं। यही कारण है कि वे Wayland पर काम करते हैं, जहाँ xdotool काम नहीं करता। इसका नुकसान यह है कि वे किसी विंडो का चयन नहीं कर सकते और वे वास्तविक डेस्कटॉप पर जिस भी चीज़ पर फोकस होता है, उस पर इनपुट भेज देते हैं। उन्हें आमतौर पर इनपुट डिवाइस का उपयोग करने के लिए अतिरिक्त अनुमति की भी आवश्यकता होती है।

Playwright अलग प्रकार का है। यह किसी माउस या कीबोर्ड की नकल नहीं करता है। यह ब्राउज़र से जुड़ता है और स्वयं वेब पेज को नियंत्रित करता है। यह किसी बटन के दिखाई देने की प्रतीक्षा कर सकता है, किसी बॉक्स में टेक्स्ट पढ़ सकता है, और आपको बता सकता है कि कोई संदेश दिखाई दिया या नहीं।

स्क्रीन का प्रकार ही अधिकांश निर्णय क्यों तय करता है

हमारा जॉब एक निजी वर्चुअल डिस्प्ले पर चलता है, जो एक ऐसी स्क्रीन है जो केवल मेमोरी में मौजूद होती है, ताकि कोई इसे देख न सके। यह X11 है, इसलिए xdotool काम करता है। ydotool और dotool अपना इनपुट पूरी मशीन को भेजेंगे, जो वास्तविक कंसोल डेस्कटॉप पर जा सकता है। हमारे मामले में उस डेस्कटॉप को लॉक रहना चाहिए, क्योंकि एक अन्य एडमिनिस्ट्रेटर इसकी स्क्रीन देख सकता है। इसलिए उन दोनों को सुरक्षा कारणों से बाहर रखा गया था, गति के कारण नहीं।

हमने इस परीक्षण में ydotool या dotool नहीं चलाया, इसलिए हमारे पास उनके लिए कोई CPU या मेमोरी आंकड़े नहीं हैं। हम जो कह सकते हैं वह उनके काम करने के तरीके पर आधारित है।

चरण 1: पता लगाएं कि पुरानी विधि कहाँ विफल होती है

हमारे पहले संस्करण में xdotool और स्क्रीन रीडिंग (OCR) का उपयोग किया गया था। इसने पोस्टिंग पेज खोला, भेजने के लिए एक कुंजी दबाई, फिर एक स्क्रीनशॉट लिया और "Your post was sent" खोजने के लिए टेक्स्ट पढ़ा।

समस्या पुष्टिकरण की थी। कई बार पोस्ट लाइव हो चुकी थी, लेकिन स्क्रिप्ट संदेश पकड़ने से चूक गई और उसने "FAILED" रिपोर्ट किया। इसके बाद किसी व्यक्ति को मैन्युअल रूप से प्रोफ़ाइल की जाँच करनी पड़ती थी। केवल इनपुट भेजने वाले किसी भी टूल की मुख्य कमजोरी यही है: यह नहीं जान सकता कि क्या हुआ, इसलिए आप एक तस्वीर से अनुमान लगाते हैं।

चरण 2: इस चरण को Playwright पर स्थानांतरित करें

हमने Playwright को उस ब्राउज़र से जोड़ा जो पहले से ही निजी स्क्रीन पर चल रहा था, उसके स्थानीय डिबगिंग पोर्ट के माध्यम से। स्क्रिप्ट अब कंपोज़ बॉक्स की प्रतीक्षा करती है, जाँचती है कि हमारा टेक्स्ट उसमें मौजूद है, जाँचती है कि Post बटन सक्षम है, उस पर क्लिक करती है, और पुष्टिकरण की प्रतीक्षा करती है। यदि संदेश छूट जाता है, तो किसी भी चीज़ को विफलता घोषित करने से पहले यह एक नई पोस्ट के लिए प्रोफ़ाइल को देखती है।

हमने पुराने xdotool मार्ग को एक फ़ॉलबैक के रूप में बनाए रखा। यदि Playwright चरण किसी भी कारण से विफल हो जाता है, तो एक चेतावनी भेजी जाती है और उसके स्थान पर पुराना मार्ग प्रयास करता है।

चरण 3: लागत को मापें

हमने प्रत्येक मार्ग का एक ड्राई रन चलाया, जिसमें पोस्ट को अंत में छोड़ दिया गया, और इसे मानक time कमांड से मापा।

/usr/bin/time -f "wall %es  cpu %U+%Ss  peak RAM %M KB" <command>
Playwright xdotool प्लस OCR
वॉल टाइम 9.3 सेकंड 20.2 सेकंड
CPU समय (user प्लस system) 1.4 सेकंड 1.1 सेकंड
पीक मेमोरी लगभग 165 MB लगभग 51 MB

ये एकल माप हैं, औसत नहीं, इसलिए इन्हें एक अनुमानित मार्गदर्शिका के रूप में लें।

Playwright लगभग 110 MB अधिक मेमोरी का उपयोग करता है, क्योंकि यह एक Node प्रोसेस शुरू करता है। CPU लगभग समान है। Playwright जल्दी समाप्त होता है, क्योंकि यह केवल तब तक प्रतीक्षा करता है जब तक कि पेज तैयार न हो जाए, जबकि xdotool मार्ग निश्चित प्रतीक्षा का उपयोग करता है।

सबसे बड़ी लागत दोनों में से कोई भी टूल नहीं था। ब्राउज़र ने स्वयं अपने सभी प्रोसेस में लगभग 4.6 GB का उपयोग किया, और दोनों मार्ग इसे साझा करते हैं। इन टूल्स के बीच चयन करने से वह संख्या नहीं बदलती है।

चरण 4: एक सरल नियम से निर्णय लें

  1. यदि लक्ष्य एक वेब पेज है और एक ब्राउज़र उपलब्ध है, तो Playwright का उपयोग करें। यह पेज को पढ़ता है, इसलिए यह जानता है कि क्या हुआ।
  2. यदि आपको X11 डिस्प्ले पर किसी ऐसी चीज़ को नियंत्रित करना है जो वेब पेज नहीं है, तो xdotool का उपयोग करें और परिणामों की जाँच करने के लिए स्क्रीन पढ़ें।
  3. यदि आपको एक वास्तविक Wayland डेस्कटॉप को नियंत्रित करना है, तो ydotool या dotool का उपयोग करें, और स्वीकार करें कि इनपुट पूरी मशीन में जाता है।
  4. जहाँ कोई साइट निःशुल्क आधिकारिक API प्रदान करती है, वहाँ इनमें से किसी का भी उपयोग करने से पहले उसका उपयोग करें।

निष्कर्ष

संसाधनों के मामले में, xdotool लगभग 110 MB मेमोरी हल्का है, और CPU का अंतर इतना कम है कि कोई मायने नहीं रखता। विश्वसनीयता के मामले में, Playwright स्पष्ट रूप से जीतता है, क्योंकि यह तस्वीर से अनुमान लगाने के बजाय पेज की जाँच करता है। दिन में एक बार चलने वाले जॉब के लिए, CPU का एक सेकंड और थोड़ी सी मेमोरी वास्तविक लागत नहीं है। एक गलत "failed" रिपोर्ट, जो किसी व्यक्ति को हाथ से जाँचने के लिए भेजती है, वह वास्तविक लागत है।

लाभ

  • Playwright पेज को पढ़ता है, इसलिए यह पुष्टि कर सकता है कि कोई क्रिया सफल रही।
  • Playwright स्क्रीन स्थितियों से बंधा नहीं है, इसलिए लेआउट में छोटे बदलाव इसे कम ही तोड़ते हैं।
  • xdotool बहुत हल्का है और इसे X11 के अलावा किसी अतिरिक्त सॉफ़्टवेयर की आवश्यकता नहीं है।
  • xdotool केवल आपके द्वारा चुने गए डिस्प्ले पर इनपुट भेजता है, जिससे लॉक किया गया डेस्कटॉप सुरक्षित रहता है।
  • ydotool और dotool Wayland पर काम करते हैं, जहाँ xdotool काम नहीं कर सकता।
  • फ़ॉलबैक के रूप में दूसरा मार्ग रखने का मतलब है कि एक विफलता जॉब को नहीं रोकती है।

कमियां

  • Playwright एक साधारण xdotool कॉल की तुलना में अधिक मेमोरी का उपयोग करता है।
  • Playwright पेज के एलिमेंट नामों पर निर्भर करता है, जिन्हें कोई साइट बिना किसी सूचना के बदल सकती है।
  • xdotool स्क्रीन को नहीं देख सकता, इसलिए इसे OCR या स्क्रीनशॉट की आवश्यकता होती है और यह गलत विफलताओं की रिपोर्ट कर सकता है।
  • ydotool और dotool पूरी मशीन को इनपुट भेजते हैं और किसी विंडो को नहीं चुन सकते।
  • ydotool और dotool को आमतौर पर कर्नेल इनपुट डिवाइस तक पहुंच की आवश्यकता होती है।
  • किसी साइट का ब्राउज़र ऑटोमेशन उस साइट की शर्तों के विरुद्ध हो सकता है, इसलिए वॉल्यूम कम रखें।

सावधानी

यह लेख शैक्षिक है और एक सेटअप का वर्णन करता है। ये आंकड़े एक मशीन पर एकल ड्राई रन से आए हैं और आपकी मशीन पर भिन्न होंगे। किसी भी प्लेसहोल्डर मान को अपने मानों से बदलें, उस पर निर्भर होने से पहले जाँचें कि प्रत्येक टूल आपके डिस्प्ले सिस्टम पर कैसा व्यवहार करता है, और जिस भी साइट को आप ऑटोमेट करते हैं उसकी शर्तें पढ़ें। हमने ydotool या dotool को नहीं मापा, इसलिए उनकी लागत को स्वयं सत्यापित करें।

अक्सर पूछे जाने वाले प्रश्न

  • Linux सर्वर पर ऑटोमेशन के लिए कौन सा सबसे अच्छा है? — वेब पेजों के लिए, Playwright। X11 डिस्प्ले पर गैर-वेब प्रोग्रामों के लिए, xdotool। चुनाव इस बात पर निर्भर करता है कि आप क्या नियंत्रित कर रहे हैं।
  • क्या xdotool Wayland पर काम करता है? — वास्तविक Wayland डेस्कटॉप के लिए नहीं। इसे एक X11 डिस्प्ले की आवश्यकता होती है, जैसे कि एक वर्चुअल डिस्प्ले।
  • ydotool और dotool के बीच क्या अंतर है? — दोनों कर्नेल इनपुट डिवाइस पर लिखते हैं और Wayland पर काम करते हैं। वे मुख्य रूप से इस बात में भिन्न हैं कि आप उन्हें कमांड कैसे देते हैं और वे कैसे सेट अप किए जाते हैं।
  • कौन सा कम CPU और RAM का उपयोग करता है? — हमारे परीक्षण में, xdotool ने लगभग 110 MB कम मेमोरी का उपयोग किया, और CPU समय लगभग समान था।
  • क्या Playwright धीमा है? — नहीं। हमारे परीक्षण में यह 20.2 सेकंड के मुकाबले 9.3 सेकंड में पूरा हुआ, क्योंकि यह निश्चित प्रतीक्षा पर निर्भर नहीं करता है।
  • क्या ये टूल्स बिना मॉनिटर के चल सकते हैं? — हाँ। Xvfb जैसा एक वर्चुअल डिस्प्ले उन्हें ऐसी स्क्रीन देता है जो केवल मेमोरी में मौजूद होती है।
  • फ़ॉलबैक मार्ग क्यों रखें? — कोई साइट किसी भी समय अपना पेज बदल सकती है। दूसरा मार्ग कार्य को पूरा करने की अनुमति देता है जबकि आप पहले को ठीक करते हैं।
  • क्या इन्हें किसी साझा डेस्कटॉप पर चलाना सुरक्षित है? — सावधान रहें। कर्नेल इनपुट डिवाइस का उपयोग करने वाले टूल्स पूरी मशीन पर इनपुट भेजते हैं, इसलिए एक निजी वर्चुअल डिस्प्ले को प्राथमिकता दें।

टैग

#automation #linux #playwright #xdotool #ydotool #dotool #wayland #x11 #browserautomation #devops

Free field guide

Docker Security Checklist

Lock down your containers from build to runtime — 29 practical controls covering images, runtime flags, secrets, and the daemon. Enter your email — you'll get the PDF instantly, plus new posts on Docker, Linux & security.