কোনও উদেব নিয়ম বহিস্কার হয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


16

আমি উবুন্টু ১৩.১০ এর অধীনে উদেবের সাথে নিজেকে পরিচিত করার চেষ্টা করছি।

এখানে আমার প্রথম সাধারণ 95.usbbackup.rules বিধি:

ACTION=="add", SUBSYSTEMS="usb", RUN+="/usr/local/bin/my_backup.sh"

এবং এখানে স্ক্রিপ্টটি (যা chmodded + x হয়েছে) my_backup.sh:

#!/bin/bash
touch /tmp/test

আমি যখন বাহ্যিক ড্রাইভগুলি প্লাগ ইন করি তখন কিছুই হয় না। নিয়মটি নিষ্ক্রিয় করা হলে আমি কীভাবে (একটি লগ, একটি আদেশ, কিছু) চেক করতে পারি?

অনেক ধন্যবাদ


2
আমার মনে হয় তুমি বোঝাতে চাইছ SUBSYSTEMS=="usb"। অর্থাত দ্বিগুণ ==যা =কোন এককটির চেয়ে সাম্যের জন্য পরীক্ষা করে যা কোনও কীকে একটি মান নির্ধারণ করে।
Lqueryvg

উত্তর:


5

আমি নিশ্চিত যে এটি কাজ করা উচিত। আপনি আপনার নিয়মাবলী সম্পাদনা করার পরে আপনার udev নিয়মগুলি পুনরায় লোড করেছেন?

udevadm control --reload-rules && udevadm trigger রুট হিসাবে


আমি একটি সংক্ষিপ্ত নিয়ম তৈরি করেছি: KERNEL == "এসডিবি", যা কাজ করে। উদেব কি কেবল এমন কিছু নিয়ম ব্যবহার করে যা কিছু হার্ডওয়্যার অনন্যভাবে চিহ্নিত করে?
পাউজলার

না, চেষ্টা করুন KERNEL!="sdz*"এবং আপনার সমস্ত কিছু পাওয়া উচিত (এসডিজেড [1-9] ব্যতীত)
রেডসান্দ্রো

5
এটি আসলে প্রশ্নের উত্তর দেয় না। আপনি কীভাবে জানতে পারবেন যে বিধিগুলি ট্রিগার হয়েছিল?
ড্যানিয়েলস্যাঙ্ক

1
স্ক্রিপ্টটি চালিত হওয়ার কারণে আপনি জানেন। আপনি এটি কোনও লগফাইলে লিখতে পারেন। এছাড়াওudevadm monitor
রেডসান্দ্রো

2

আপনি রুট হিসাবে একটি কমান্ড দিতে পারেন:

udevadm মনিটর

এটি প্রদর্শিত হবে যখন কোনও নিয়ম বহিস্কার হবে।


11
udevadm monitorকেবল উদেব ঘটনাগুলি দেখায়, তবে যদি কোনও সম্পর্কিত নিয়ম বরখাস্ত করা হয় তা নয়। তবে, আপনি সেই ইভেন্টটি সন্ধান করতে পারেন যা নিয়মকে ট্রিগার করতে পারে তবে তার পরেও আপনি জানতে পারবেন না যে আপনার বিধি কাজ করে works
এফ.রাব

2

আমি কার্নেলটি 3.0.০.৩৫ চালাচ্ছি, তবে নিম্নলিখিতগুলি আমার পক্ষে কাজ করে।

ডিভাইসের পথ পাওয়ার জন্য আপনি এর মতো কিছু করতে পারেন:

udevadm info --name /dev/sda1 --query all

আপনার প্রয়োজনের তুলনায় আপনি আরও তথ্য পাবেন তবে আপনি ডেভপ্যাথে আগ্রহী। তারপরে ইউদেব বিধিগুলি কার্যকর করা হয় তা দেখতে আপনি এটি চালান:

udevadm test DEVPATH

আমি মনে করি না যে এটি আসলে নিয়মগুলি কার্যকর করে, ডকুমেন্টেশন বলে যে এটি প্রদত্ত ডিভাইসের জন্য ইভেন্টগুলিকে 'অনুকরণ' করে। আরও তথ্য পেতে, এই পুরুষ পৃষ্ঠাটি দেখুন: https://www.freedesktop.org/software/systemd/man/udevadm.html


1

Udev / systemd সংস্করণ 241 এবং অনুরূপ, মূল হিসাবে:

udevadm control --log-priority=debug
journalctl -f

বা এটিকে স্থায়ী করতে আবার মূল হিসাবে:

vi /etc/udev/udevd.conf
systemctl restart systemd-udevd
journalctl -f

পিএস: সর্বাধিক ঘন ঘন এখনও আইএমএইচওর ভুল উত্তরটি দেখে মনে হচ্ছে:

udevadm -d পরীক্ষা / ডিভাইস / যেখানে / আমার / ডিভাইস | আরও কম

... তবে এতে বেশ কয়েকটি সমস্যা রয়েছে। প্রধানগুলি:

  • where/is/my/device? ক্লান্তিকর, জটিল এবং ত্রুটি-প্রবণ।

  • পুরানো উত্তরগুলির তুলনায় সাম্প্রতিক উদেব সংস্করণ 241 আউটপুট তুলনা করা, এর আগে udevadm testকম তথ্য দেখায় বলে মনে হচ্ছে।

  • udevadm -d test কেবল একটি সিমুলেশন ! প্রতিবার এটি সতর্ক করে:

    এই প্রোগ্রামটি শুধুমাত্র ডিবাগিংয়ের জন্য, এটি কোনও আরএন কী দ্বারা নির্দিষ্ট কোনও প্রোগ্রাম চালায় না। এটি ভুল ফলাফলগুলি দেখায়, কারণ কিছু মান পৃথক হতে পারে, বা সিমুলেশন রানে উপলভ্য নয়।

udevadm test এটি একটি নতুন নিয়ম বিকাশের জন্য, এটি ভাঙ্গা, নিখোঁজ হওয়া বা ওভাররাইড করা নিয়মগুলির সমস্যা সমাধানের জন্য নয়।


0

রাস্পবেরি পাই 3 বি + এর ক্ষেত্রেও আমার একই সমস্যা ছিল। আমি একটি ইউএসবি স্টোরেজ ডিভাইস সন্নিবেশ করানোর জন্য একটি স্ক্রিপ্ট চাওয়ার চেষ্টা করছিলাম। নিয়মগুলি সিসলগে লগ হয় না, তাই কোন নিয়মটি কাজ করেছে বা কোন বিধি ব্যর্থ হয়েছে তা বোঝা খুব কঠিন হয়ে যায়।

সুতরাং আমি নিম্নলিখিতটি করেছেন:

  1. আমি আমার নিয়ম ফাইলটি /etc/udev/rules.d/100-myrule.rules এ তৈরি করেছি
  2. তারপর আমি কমান্ড চালানো sudo /etc/init.d/udev restart

এবং যখন আমি যাচাই করেছি, এটি কাজ করেছিল।

তথ্যগুলির একটি অংশ, যা দরকারী হতে পারে বা নাও হতে পারে তা হ'ল ধাপ 2-র কমান্ডটি কার্যকর না হওয়া পর্যন্ত ফাইল সিস্টেমগুলি উদেবের জন্য পঠনযোগ্য।


0

udevadm test $(udevadm info --query=path --name=device_name)জড়িত বিধিগুলি উল্লেখ করে ডিভাইস প্লাগ ইনতে কোন আদেশগুলি কার্যকর করা হবে তা আপনাকে জানিয়ে দেওয়া উচিত udev। এই ক্ষেত্রে:

# udevadm test /block/sdd
...
udev_rules_apply_to_event: PROGRAM '/sbin/multipath -c /dev/sdd' /lib/udev/rules.d/40-multipath.rules:11
...
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.