انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: ahoora3 در 01 اردیبهشت 1394، 05:24 بظ
-
سلام.
شرمنده هنوز عضو نشدم درخواست برنامه دارم .اما واقعا نیازمند همچین برنامه ای هستم.
برنامه جوری باشه که وقی یک usb به کامپیوتر وصل میشه یک اسکریپت رو اجرا کنه.
از دوستان کسی اطلاعی داره (یا اگر برنامه یا سورس آماده داره که وقتی usb متصل شد یک لیست از فایل های داخل فلش تهیه کنه)
کمکم کنه.
پ.ن : در حد ابتدایی با ابونتو و زبان اسکریپت نویسی آن کار کردم.
سپاس
-
در مورد udev تحقیق کن
-
ممکنه یخورده توضیح دهید.
هنوز ساختار کلی و ساختار برنامه سازی لینوکس را بلد نیستم
-
ممکنه یخورده توضیح دهید.
هنوز ساختار کلی و ساختار برنامه سازی لینوکس را بلد نیستم
udev اجازه میده دستگاههای مشخصی رو بر اساس uuid بصورت خاص برنامه ریزی کنید مثلا اگر یک تلفن همراه خاص رو وصل کردید به سیستم، تصاویر اون خودکار ذخیره بشه تو سیستم.
اینجارو ببین : http://www.reactivated.net/writing_udev_rules.html
-
سلام باز هم نشد.
توی نسخه های اوبونتو فرق میکنه.اصلا بیشتر دستور هاییی که توی نت هست و در این سایته هست توی 14 نیست.باید عوض شه.
هرچی هم عوض میکنم با نسخه جدیدش مشکل داره.
میخوام هر نوع چیزی که به یو اس بی وصل میشه ترمینال باز شه (ساده ترین حالت. بقیشو میتونم انجام بدم)فقط طوری باشه که وقتی هرچیزی به پرت یو اس بی وصل شد خودکار ترمینال باز شه
سپاس
-
udev بیست ساله که ساختارش همینه.
http://lmgtfy.com/?q=How+to+add+a+udev+rule%3F
-
تمام سایت هایی که شما فرمودید رفتم همه رو دیدم.
هنوز متوجه نشدم چطوری اسرکیپتی بنویسم هر چیزی که به یو اس بی وصل شد خودکار ترمینال رو باز کنه همین.
کسی ننوشته همچین چیزی؟
توی بیشتر فروم ها همین مطرح است .خیلی راه حل گفته میشه اما یکی نیومده یه اسکریپت بگذاره جواب بده بعد بقیه ساختار اسکریپتو نگاه کنند.
فقط توی این جا گیر کردم که فایل اجرا نمیکنه یعنی وقتی فلش وارد دستگاه میشه شورت کات میسازه اما چیزی اجرا نمیکنه
سپاس از شما
-
please help meeee!!!!
for up
-
اسکریپت زیر رو اجرا کنید (حرف x رو با حرف موجود در نام دستگاه موردنظر جایگزین کنید) و نتیجهاش رو اینجا بگذارید.
#!/usr/bin/env bash
expr='KERNEL==\"\w{3}\"|ATTRS{vendor}==\"0[xX][0-9a-fA-F]+\"|ATTRS{model}==\".+\"|ATTRS{serial}==\".+\:.+\:.+\"'
udevadm info -a -n "$1" | grep -E "$expr" | sed -s "s/ //g" | xargs
# ----USAGE----:
./udevgen.sh /dev/sdx
پیوند کد بالا (https://gist.githubusercontent.com/n3vtelen/f206f72dd9bbb8b4d813/raw/2664ee9d1a47856562e13ae90e073350b996a661/udevgen.sh)
-
از دوستان کسی اطلاعی داره (یا اگر برنامه یا سورس آماده داره که وقتی usb متصل شد یک لیست از فایل های داخل فلش تهیه کنه)
کمکم کنه.
این برنامه با پایتون که دقیقا همین کار رو میکنه:
https://gist.github.com/AhmadHamzeei/38b4d7220196bfb05782
روش کار به این صورته که با استفاده از GFileMonitor (https://developer.gnome.org/gio/stable/GFileMonitor.html) پوشه ی /media/username/ رو چک میکنه.
وقتی که پوشه ی جدیدی تو این پوشه ایجاد شد، یعنی اینکه دستگاه usb جدید وصل شده.
پس تابع on_usb_connected اجرا میشه و محتویات پوشه ی جدید رو تو پنجره نشون میده.
-
سلام
درک ات می کنم منم نتونستم با udev رابطه ی دوستانه ای برقرار کنم (udev کلا احمقانه است!) . ولی به جاش lsusb هست. که لیست دستگاه های یو اس بی رو نشون می ده پس هروقت که این لیست تغییر کرد یعنی دستگاهی رو وصل کردی و باید اسکریپت اجرا بشه . (با یک حلقه ی while ساده می شه انجامش داد) البته فکر کنم که منظور شما از دستگاه یو اس بی ، حافظه فلش هست که برای اون هم یک راه خیلی بهتر هست اون هم استفاده از lsblk هست . اگر این راهنمایی کمکت نکرد بگو که اسکریپت رو بنویسم.