USB डिवाइस कनेक्ट करने पर स्क्रिप्ट चलाना


13

कृपया इसे डुप्लिकेट के रूप में चिह्नित न करें क्योंकि यह एक अलग प्रश्न है!

जब भी कोई पेनड्राइव मेरे सिस्टम से जुड़ा होता है, तो मैं एक स्क्रिप्ट चलाने की कोशिश कर रहा हूं। मैं इसके बाद यह और इस सवाल और यह काम कर रहा है, लेकिन अभी भी वहाँ कुछ समस्याएं हैं।

यह मेरी udv नियम फ़ाइल है:

ACTION=="add", ATTRS{idVendor}=="8564", ATTRS{idProduct}=="1000", RUN+="/usr/local/my_script.sh"

और यह मेरी स्क्रिप्ट है:

#!/ Bin / bash

env> /tmp/env.out
cp -r / media / * डिवाइस-नाम * / * ~ / परीक्षण /

मेरे 2 सवाल हैं:

1. जब भी मैं अपने USB डिवाइस स्क्रिप्ट में प्लग करता हूं, तो निष्पादित होता है क्योंकि एक फ़ाइल env.out / tmp में जेनरेट होता है, लेकिन USB डिवाइस से डेटा का परीक्षण निर्देशिका में कॉपी नहीं किया जाता है , अगर मैं स्क्रिप्ट को मैन्युअल रूप से चलाता हूं तो यह ठीक काम करता है! क्यों??

2. कैसे मेरे नियम फ़ाइल को अधिक सामान्य बना सकते हैं ताकि यह किसी भी USB डिवाइस के लिए काम करेगा जो कि इसकी आईडी को जाने बिना जुड़ा हुआ है?

इसके पीछे मेरा विचार कनेक्टेड USB डिवाइस से सभी डेटा को अपने कंप्यूटर पर स्वचालित रूप से कॉपी करना है, जब यह जुड़ा हुआ है।

अग्रिम धन्यवाद!


क्या आप ऐसा करने की कोशिश नहीं कर रहे हैं? askubuntu.com/questions/474/…
virtualxtc

@virtualxtc इस सुझाव के लिए धन्यवाद! लेकिन मैं जानना चाहता हूं कि इस दृष्टिकोण में क्या गलत है?
अशक्त सूचक

क्या आप मुझे बता सकते हैं कि मेरी स्क्रिप्ट में क्या गलत है? यह काम क्यों नहीं कर रहा है
अशक्त सूचक

इसके अलावा, बस एक सिर - मैंने कठिन तरीका सीखा है कि इस तरह के विशिष्ट प्रश्न आम तौर पर आस्कुबंटू की तुलना में सुपरयूजर के लिए बेहतर होते हैं।
virtualxtc

यदि यह अनुमतियों की समस्या होती तो यह तब दिखाई देता, जब मैंने इसे मैन्युअल रूप से चलाने की कोशिश की, है न?
अशक्त सूचक

जवाबों:


8

मेरे अपने प्रश्न का उत्तर देने के लिए:

1.स्क्रिप्ट नहीं चल रही थी क्योंकि इसे sudoचलाने के लिए अधिकारों की आवश्यकता थी ।

इसका समाधान:

इस लिपि को sudoअमल में लाएं!

EDIT sudoers फ़ाइल का उपयोग कर

sudo visudo

25 लाइन (यानी %sudo ALL=(ALL)) के बाद इसे जोड़ें

username ALL=(ALL) NOPASSWD: /home/username/my_script.sh

अब हम sudoइस स्क्रिप्ट में बिना sudo पासवर्ड के उपयोग कर सकते हैं

लेकिन यह कुछ सुरक्षा समस्याओं का कारण हो सकता है इसलिए कृपया इस लिंक को देखें

2. मेरे दूसरे सवाल का जवाब दें:

इस स्क्रिप्ट को किसी भी USB डिवाइस के लिए काम करने के लिए जो जुड़ा हुआ है इसे नियम फ़ाइल बदलें

ACTION=="add", ATTRS{idVendor}=="****", ATTRS{idProduct}=="****", RUN+="/usr/local/my_script.sh"

तारक (*) बताता है कि यह जुड़े हुए प्रत्येक USB डिवाइस के लिए किया जाना चाहिए!

बस! सुनिश्चित करें कि स्क्रिप्ट निष्पादन योग्य है और अपने USB में प्लग करें !!

का आनंद लें!


0

अपने होम डाइरेक्टरी में पूरे रास्ते के साथ टिल्ड को बदलने का प्रयास करें। मुझे नहीं पता कि यह काम करेगा, लेकिन आप कहते हैं कि स्क्रिप्ट काम करती है जब आप इसे सीधे चलाते हैं लेकिन जब यह स्वचालित रूप से चलाया जाता है तो यह नहीं होता है: इससे मुझे लगता है कि समस्या यह हो सकती है कि इसे अलग से चलाया जाए। उपयोगकर्ता जब यह स्वचालित रूप से चलाया जाता है, और टिल्ड अलग-अलग उपयोगकर्ताओं के लिए अलग-अलग मानों को हल करता है।


कृपया प्रश्न का उत्तर देने से पहले टिप्पणियों को पढ़ें
नल सूचक

मैंने टिप्पणियाँ पढ़ीं, फिर मैंने प्रश्न का उत्तर दिया। क्या मैंने कुछ गलत किया? आप किस संदर्भ में विशेष रूप से टिप्पणी कर रहे हैं?
टॉबी 1 केनोबी

टिप्पणियों में ये सुझाव पहले से ही दिए गए थे और उन्होंने मेरे लिए काम नहीं किया..इसलिए मैंने कहा कि टिप्पणियों को पढ़ें
अशक्त सूचक

अरे हाँ, क्षमा करें, पिछली 5 टिप्पणियाँ मुझसे छिपी हुई थीं और मैंने उन्हें नोटिस नहीं किया। मेरी गलती!
टोबी 1 केनोबी

@ नलपॉइंट: कृपया अपना प्रश्न संपादित करें और पूरी जानकारी को प्रश्न में रखें ताकि लोगों को टिप्पणियों को पढ़ने की आवश्यकता न हो ... टिप्पणियाँ प्रश्न का हिस्सा नहीं हैं ... ;-)
Fabby

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