انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

bbvirt - آنلاین در ابر

bbvirt را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور bbvirt است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


bbvirt - دستگاه های BitBabbler را به دامنه های مدیریت شده libvirt متصل کنید

خلاصه


bbvirt اقدام [گزینه های]

bbvirt ضمیمه کردن|جدا کردن دستگاه [گزینه های]

bbvirt ضمیمه کردن همه|جدا کردن همه [دامنه] [گزینه های]

شرح


La bbvirt برنامه تلاشی است برای از بین بردن بخشی از درد از آنچه در حال حاضر است
برای توزیع چندین دستگاه USB بین ماشین های مجازی میزبان و مهمان مورد نیاز است.
در حالی که راه های مختلفی برای پیکربندی و مدیریت آن وجود دارد، در حال حاضر هیچ کدام وجود ندارد
از آنها در واقع یک راه حل کامل و منسجم به خودی خود ارائه می دهند، همه آنها سقوط می کنند
کوتاه از علامت در برخی از راه های مهم و آزار دهنده. هدف در اینجا این است که با هم ترکیب شوند
به اندازه کافی از آن هک ها برای به دست آوردن تمام عملکردی که اکنون می خواهیم را به دست آوریم
پشتیبانی بومی libvirt برای این به قدری بهبود می یابد که دیگر به آن نیاز نداشته باشید.

در حال حاضر این با ماشین های مجازی QEMU/KVM مدیریت شده libvirt سروکار دارد.

چی do we می خواهم؟
رفتار ایده آل در اینجا بسیار ساده است. با توجه به تعداد دلخواه BitBabbler
دستگاه‌ها، باید بتوانیم آنها را به ماشین میزبان یا به ماشین مجازی مهمان اختصاص دهیم
در حال اجرا بر روی آن، و زمانی که ما این کار را انجام دادیم، آنها باید به شیوه ای عادی که از هر کسی انتظار می رود رفتار کنند
دستگاه USB.

- اگر هنگام راه اندازی دستگاه مهمان به برق وصل می شوند، باید با آن دیده شوند
دستگاه همانطور که توسط میزبان خواهد بود.

- اگر پس از راه اندازی دستگاه به برق وصل شوند، باید به آن وصل شوند
همانطور که آنها در میزبان هستند.

- اگر در حین کارکرد دستگاه از برق جدا شده اند، باید به طور تمیز از آن جدا شوند
همانطور که در میزبان خواهند بود.

چرا نمیتونم we داشته باشد آن؟
در حال حاضر، libvirt دو راه به ما می دهد که می توانیم دستگاه های USB را از میزبان به a اختصاص دهیم
دامنه مهمان

- ما می توانیم آنها را با فروشنده USB و شناسه محصول اختصاص دهیم. اما این فقط زمانی کار می کند که وجود داشته باشد
فقط یک دستگاه از آن نوع در هاست است. که در بیشتر موارد بسیار بی فایده است
مواردی که در اینجا به آنها اهمیت می دهیم، جایی که میزبان و هر یک از مهمانان احتمالاً به آن توجه می کنند
یک یا چند دستگاه BitBabbler خود را به آنها اختصاص داده اند.

- می توانیم آنها را با آدرس منطقی آنها در گذرگاه USB اختصاص دهیم. اما این یک امر ثابت نیست
که می توانیم به صورت ایستا برای دامنه پیکربندی کنیم. هر بار که دستگاهی به برق وصل می شود، یا
دوباره وصل شود، یا ریست شود، یا دستگاه میزبان راه اندازی مجدد شود، این آدرس احتمالاً تغییر می کند
از آنجایی که وقتی دستگاه در گذرگاه شمارش می شود به صورت پویا تخصیص می یابد.

راه سومی نیز وجود دارد، اما برای ایجاد آن بر روی دور زدن پیکربندی معمولی libvirt متکی است
استفاده مستقیم از توانایی QEMU برای تخصیص یک دستگاه با آدرس فیزیکی آن در اتوبوس.
کدام بهتر است، اما هنوز یک گلوله جادویی نیست زیرا دقیقاً به همان اتصال متکی است
دستگاه‌ها را هر بار دقیقاً به همان پورت‌ها وارد می‌کنند (و با شماره‌گذاری آن پورت‌ها
به همین ترتیب توسط میزبان در هر راه‌اندازی مجدد، که تضمینی هم نیست). همچنین مجبور است
ما از حلقه های دیگر پرش کنیم، زیرا برای مدیریت آن به پیچیدگی های اضافی نیاز داریم
دسترسی به مجوزهای دستگاه به صورت دستی خارج از libvirt، اما همچنان در هماهنگی است
با آن است.

شکست حتی بزرگتر، که همه آن روش ها مشترک هستند، این است که همه آنها به آن بستگی دارند
دستگاه قبلاً قبل از راه اندازی مهمان به برق وصل شده است. اگر بعد از آن درج شود
وقتی مهمان در حال اجراست، یا اگر میزبان باشد، مهمان راه اندازی می شود، یا حذف می شود و دوباره وصل می شود
گذرگاه یا هاب باعث اتصال مجدد می شود، سپس دستگاه (دوباره) به
مهمان. تنها راه برای رفع این مشکل این است که به صورت دستی دستگاه را با یک وصل کنید
incantation مخفیانه در XML (که به دانستن آدرس جدید دستگاه متکی است)، یا
برای خاموش کردن کامل و راه اندازی مجدد مهمان. اوج کاربر پسند نیست
عملیاتی که ما در اینجا به دنبال آن هستیم.

چی می توان we do در باره آن؟
چند سال پیش یک پچ برای libvirt ارسال شد که به یک دستگاه اجازه می داد
باید با شناسه محصول USB و شماره سریال آن مشخص شود، اما مقداری فشار داده شد
برگشت، و تا کنون هنوز در بالادست اعمال نشده است. این راه طولانی را طی می کرد
برای اینکه این کار را هم آسان و هم تمیز کنیم و فقط جنبه هات پلاگ را برای ما باقی بگذاریم
با. ما در مورد آن به عنوان تمرینی برای خواننده، عبوس عبوس را ترک می کنیم ...

جایگزین دیگر این است که می‌توانیم یافتن آدرس منطقی دستگاه را به یک هات پلاگ واگذار کنیم
مدیر مانند اودف(7). این جذاب است به این معنا که ما می توانیم متوجه شویم که آدرس
یک دستگاه تغییر می کند و به چه چیزی تغییر می کند، اما اودف خودش خیلی دوستانه نیست
ایده سفارشی سازی ادمین محلی (در حالی که امکان انجام آن وجود دارد، به نظر می رسد که در حال دریافت است
به طور فزاینده ای به شدت دلسرد می شود) و استفاده از آن همچنان به چسب خارجی نیاز دارد
رویدادهای آن را به چیزی ترجمه کنید که libvirt بتواند روی آن برای پیکربندی مهمان عمل کند
ماشین

La bbvirt برنامه آن چسب و روشی کاربرپسند برای تخصیص آن فراهم می کند
دستگاه‌ها باید به کدام دامنه‌های مهمان تعلق داشته باشند، و یک قسمت جلویی که بتوان آن را به صورت دستی فراخوانی کرد
یا توسط سایر وظایف کنترل شده توسط سرپرست برای اضافه کردن یا حذف سریع و آسان دستگاه های BitBabbler
از هر یک از ماشین های مهمان در حال اجرا.

اما محدودیتی که این رویکرد دارد این است که نمی تواند به راحتی بفهمد که یک ماشین مهمان چه زمانی است
شروع شده است که باید دستگاه هایی که قبلاً وصل شده اند به آن اضافه شود. در تئوری ما
می تواند آنها را به تعریف دامنه دائمی خود اضافه کند، اما این مشکلات خاص خود را دارد زیرا
ما فقط می‌توانیم دستگاه‌ها را با آدرس منطقی زودگذرشان اضافه کنیم، و نمی‌توانیم تضمینی برای این کار داشته باشیم
هنگامی که آدرس نامعتبر شد، دوباره برای حذف آنها از دامنه فراخوانی می شود
(مانند اگر هاست به طور ناگهانی خاموش شود یا در غیر این صورت کاملاً خاموش نشود)، بنابراین ما
می تواند با تعداد زیادی ورودی قدیمی که در پیکربندی دامنه پایدار انباشته می شوند، خاتمه یابد،
که بعداً می تواند دستگاه کاملاً متفاوتی را با آنچه ما می خواستیم به آن متصل کنیم مطابقت دهد
آی تی. این بدان معناست که تا زمانی که این مشکل به نحوی برطرف نشود، اضافه کردن آنها به یک مهمان زنده امن است
دامنه، به طوری که آنها همیشه پس از توقف، هر طور که باشد، دوباره حذف خواهند شد
در نهایت متوقف شد

واضح است که ما هنوز راهی برای رسیدن به ایده آل خود در اینجا داریم.

چی if we اصابت it با *دو* چکش؟
به نظر می رسد تنها دو راه وجود دارد که می توانیم از وجود یک ماشین مهمان مطلع شویم
در حال حاضر آغاز شده است. یکی شامل اجرای فرآیند دیمون دیگری است که انجام می شود
چیزی بیشتر از این که بنشینیم و منتظر بمانیم تا کسی مهمانی را شروع کند تا بتواند به ما بگوید
درباره ی آن. اما پس از آن ما باید چیز دیگری برای پیکربندی داشته باشیم، یک فرآیند دیگر
در حال دویدن، و مشکلات بیشتر در پی بردن به چگونگی اطمینان از شکست نخواهیم در مسابقه
میزبان بوت می شود، بین دریافت مجموعه اولیه رویدادهای دستگاه، که این فرآیند وجود دارد
آماده و فعال، و هر مهمانی که در هنگام بوت به صورت خودکار راه اندازی می شود، در واقع شروع می شود.

راه دیگر استفاده از قلاب libvirt است. که به نوبه خود مشکل عدم وجود دارد
به ما اجازه می دهد تا هر توابع libvirt را از آن اجرا کنیم، که برای پیوست کردن باید انجام دهیم
دستگاه به میزبان و ما نمی توانیم تضمین کنیم که می توانیم به طور پیش فرض نصب کنیم،
زیرا فقط یک قلاب در سیستم وجود دارد که ممکن است مدیر محلی قبلاً باشد
استفاده کنید...

راه سومی نیز وجود دارد، اما این امر مستلزم نیاز به مدیر محلی برای شروع همه مهمانان است
ماشین‌ها از طریق لفاف خودمان، به جای هر مکانیزمی که قبلاً می‌دانند
و استفاده کنید. که برای پشتیبانی از سایر دستگاه های USB در شرایط مشابه، در مقیاس نیست
راه‌های زیادی که راه‌حلی وحشتناک برای تحمیل به مردم است.

اما یک حفره وجود دارد که می توانیم از آن استفاده کنیم. ما می توانیم از قلاب libvirt qemu برای راه اندازی a استفاده کنیم
تغییر رویداد برای اودف، که به نوبه خود می تواند فراخوانی کند bbvirt تقریباً به همان روشی که
اگر دستگاه واقعاً هات پلاگ باشد، اتفاق می افتد، که به ما یک لایه غیرمستقیم اضافی می دهد
ما باید بتوانیم با خیال راحت این کار را از روی قلاب انجام دهیم. روب گلدبرگ افتخار خواهد کرد، و
برخی از قطعات ممکن است نیاز به مونتاژ دستی داشته باشند، اما با وجود همه اینها، می‌توانیم داشته باشیم
چیزی شبیه عملکرد USB معمولی در ماشین های مهمان.

این زیبا نیست، اما با چیزی که ما باید با آن کار کنیم کار خواهد کرد.

خوب، تنها گفتن me جایی که به اصابت آن است.
برای اینکه این مورد را با هم ترکیب کنید، باید از همه موارد زیر اطمینان حاصل کنید:

- اودف(7) قوانین از بسته bit-babbler نصب شده است. اگه اینو نصب کردی
از بسته های دبیان که قبلاً باید انجام شود. اگر این کار را نکردید، نیاز دارید
قوانین موجود در آن را نصب کنید debian/bit-babbler.udev از بسته منبع به a
جای مناسب در سیستم شما (احتمالا /etc/udev/rules.d).

- bbvirt(1) اسکریپت در مکانی نصب شده است که اودف قوانین آن را پیدا خواهد کرد. اگر شما
این را از بسته‌های دبیان نصب نکردم و داخل هم نیست / usr / bin، سپس شما نیاز دارید
به نیشگون گرفتن و کشیدن اودف قوانین مناسب

- دستگاه هایی که می خواهید در ماشین های مهمان استفاده کنید و ماشین هایی که می خواهید در آنها استفاده کنید،
در مشخص شده اند bbvirt فایل پیکربندی. مکان پیش فرض برای آن است
/etc/bit-babbler/vm.conf. اگر می خواهید از فایل دیگری استفاده کنید، باید آن را پاس کنید
مکان با - پیکربندی گزینه در اودف قوانین، و به روز رسانی اسکریپت قلاب استفاده از آن
فایل نیز جزئیات مواردی که می توانید در آن فایل قرار دهید در قسمت توضیح داده شده است
پیکربندی OPTIONS بخش زیر

- فایل libvirt hook نصب شده است. اگر تمام موارد فوق انجام شود، دستگاه ها انجام خواهند شد
در صورتی که در حین کار مهمان به برق وصل شوند، به ماشین‌های مهمان در حال کار اضافه می‌شود.
این آخرین مرحله تضمین می‌کند که دستگاه‌هایی که قبلاً وصل شده‌اند به تازگی به آن اضافه می‌شوند
مهمان‌های شروع‌شده نیز (که شامل مهمان‌هایی می‌شود که به‌طور خودکار هنگام میزبانی شروع می‌شوند
چکمه های ماشینی).

تا زمانی که راهی مطمئن وجود داشته باشد که بتوانیم آن را بدون تداخل یا بازنویسی نصب کنیم
یک قلاب موجود، همه باید این مرحله را به صورت دستی انجام دهند. اگر نصب کرده اید
بسته های دبیان، سپس نمونه اسکریپت هوک که برای این کار ارائه کرده ایم می تواند باشد
موجود در /usr/share/doc/bit-babbler/examples/qemu-hook. اگر این کار را نکردید پیدا می شود
in libvirt/qemu-hook بسته منبع

شما باید آن فایل را به عنوان نصب کنید /etc/libvirt/hooks/qemu، یا محتوای آن را با
موجود ایست اگر قبلاً آن مجموعه قلاب را دارید، در آنجا فایل کنید. اگر آن فایل نبود
قبلا وجود داشت، باید راه اندازی مجدد کنید libvirtd(8) برای شروع استفاده از آن.

این باید تمام اتوماسیون مورد نیاز را پوشش دهد، اما شما همچنین می توانید دستگاه ها را متصل و جدا کنید
به صورت دستی در هر زمان نیز. جزئیات انجام آن در ادامه توضیح داده خواهد شد
بخش. در غیر این صورت، با انجام تمام موارد فوق، دلیل دیگری برای نیاز به استناد وجود ندارد
bbvirt به طور مستقیم.

OPTIONS


دو حالت اصلی کار وجود دارد bbvirt که توسط اولیه انتخاب می شوند
گزینه اقدام اگر عمل به انجام است ضمیمه کردن or جدا کردن سپس فقط یک دستگاه
بر اساس آن عمل خواهد شد، و اینکه کدام دستگاه باید باشد باید به صراحت مشخص شود، حتی اگر
در آن زمان تنها یک دستگاه در میزبان وجود دارد. هنگام استناد bbvirt به صورت دستی،
la دستگاه ممکن است با شماره سریال آن، آدرس منطقی آن در اتوبوس (در
فرم busnum:devnum، به صورت اعداد صحیح اعشاری داده می شود)، یا آدرس فیزیکی آن در گذرگاه (در
فرم busnum-بندر[.بندر ...]).

اگر عمل به انجام است ضمیمه کردن همه or جدا کردن همه، سپس دستگاه(هایی) که باید بر روی آنها عمل کرد هستند
انتخاب شده توسط دامنه در عوض انجمن اگر یک دامنه به صراحت مشخص شده است، سپس همه
دستگاه هایی که در فایل پیکربندی به آن دامنه مهمان اختصاص داده شده اند، عمل خواهند کرد
به همان شیوه ای که اگر bbvirt برای هر یک از آنها به صورت جداگانه با استناد شد
ضمیمه کردن or جدا کردن عمل. اگر نه دامنه ارائه شده است، سپس تمام مهمان پیکربندی شده است
دامنه ها به این ترتیب عمل خواهند کرد.

گزینه های اضافی زیر در دسترس هستند:

-C ، - پیکربندی
یک فایل پیکربندی جایگزین برای وارد کردن تخصیص دستگاه از آن مشخص کنید.
اگر مسیر فایل به طور صریح ارائه نشده باشد، در آن جستجو می شود
la /etc/bit-babbler دایرکتوری (با یک تأیید کنید پسوند).

-c، --connect=URI
مشخص ویرش(1) اتصال URI برای استفاده. این یک را لغو می کند DOMAIN_URI تنظیم
برای دامنه در فایل پیکربندی. اگر با استفاده از یکی از اینها تنظیم نشده باشد
روش ها سپس ویرش پیش فرض برای کاربر در حال اجرا bbvirt استفاده خواهد شد.

-دی، -- دامنه =نام
دامنه libvirt را برای عمل کردن مشخص کنید. این ممکن است برای نادیده گرفتن دستگاه استفاده شود
تخصیص از فایل پیکربندی زمانی که bbvirt به صورت دستی یا برای عمل فراخوانی می شود
در دستگاه یا دامنه ای که در حال حاضر در فایل پیکربندی مشخص نشده است.

-ب، --busnum=تعداد
شماره گذرگاه USB که دستگاه به آن متصل است را مشخص کنید. این گزینه بیشتر است
برای اجتناب استفاده می شود bbvirt نیاز به جستجو در زمانی که از قبل مشخص شده است (مانند چه زمانی
از الف نامیده می شود اودف قانون). معمولا دلیل زیادی برای تصویب این اگر وجود ندارد
استناد bbvirt به صورت دستی، زیرا شما فقط می توانید دستگاه را با منطق یا آن مشخص کنید
آدرس فیزیکی در عوض

-د، --devnum=تعداد
شماره دستگاه USB که دستگاه در حال حاضر به آن اختصاص داده شده است را مشخص کنید. با هم
شماره اتوبوس، آدرس منطقی دستگاه را تشکیل می دهد. این گزینه است
بیشتر برای اجتناب استفاده می شود bbvirt نیاز به بررسی این موضوع زمانی که از قبل شناخته شده است (مانند
مانند زمانی که از الف خوانده می شود اودف قانون). معمولا دلیل زیادی برای قبولی وجود ندارد
این در صورت استناد bbvirt به صورت دستی، زیرا فقط می توانید دستگاه را با آن مشخص کنید
آدرس منطقی در عوض

-n، -- خشک اجرا شود
هیچ دستگاهی را وصل یا جدا نکنید، فقط نشان دهید که اگر این یک بود، چه چیزی را باید امتحان کرد
اجرا زنده این گزینه به معنای حداقل سطح است -- پرحرف، اما پرحرفی ممکن است
با تصویب صریح آن گزینه بیشتر افزایش یابد.

-v، -- پرحرف
سر و صدای بیشتری در مورد آنچه واقعا در حال وقوع است ایجاد کنید. ممکن است چندین بار به آن منتقل شود
پرحرفی را بیشتر افزایش دهید

-؟، --کمک
نمایش خلاصه ای از گزینه های موجود

پیکربندی OPTIONS


La bbvirt فایل پیکربندی شامل تکالیف متغیر با استفاده از بر هم زدن(1) پوسته
نحو. منبع آن به‌عنوان یک قطعه پوسته است، بنابراین می‌توانید در اصل آن را بسازید
پیکربندی برای هر دامنه به صورت پویا، اما معمولاً یک انتساب استاتیک ساده است
از دستگاه ها به دامنه ها کافی است. اگر تصمیم گرفتید کد را در آن اجرا کنید، باید بسیار باشید
دفاعی در مورد فاصله نام هر متغیر دیگری که استفاده می کنید، یا هر گونه عوارض جانبی دیگر برای شما
ممکن است باعث وقوع شود ممکن است هر تعداد دامنه مهمان در آن پیکربندی شود.

برای هر دامنه مهمان، دو متغیر رفتار آن را کنترل می کنند bbvirt:

DOMAIN_URI_دامنه=URI
این متغیر اختیاری است و مقدار را تنظیم می کند ویرش(1) اتصال URI هنگام استفاده
اتصال یا جدا کردن دستگاه ها از دستگاه داده شده دامنه. اگر -- اتصال گزینه است
به صراحت به bbvirt آن چیزی که در اینجا تنظیم شده است را لغو می کند. اگر اتصال
URI با استفاده از هیچ یک از این روش ها تنظیم نمی شود، سپس ویرش پیش فرض برای کاربر
در حال اجرا bbvirt استفاده خواهد شد (که معمولاً در صورت اجرا از روت خواهد بود اودف).

DOMAIN_RNG_دامنه=( دستگاه سریال تعداد ... )
اگر عبور خودکار دستگاه ها به یک دامنه باشد، این متغیر مورد نیاز است
دلخواه. این یک آرایه bash است که با لیستی از همه موارد جدا شده از فاصله پر شده است
شماره سریال دستگاهی که می خواهید به آنها اختصاص دهید دامنه. برای آن خطا نیست
دستگاه‌هایی که در اینجا فهرست می‌شوند و در حال حاضر به برق متصل نیستند. مهم است
اطمینان حاصل کنید که دستگاه ها فقط به یک دستگاه اختصاص داده شده اند دامنه هر چند، و آن دستگاه ها
اختصاص داده شده به دامنه های مهمان توسط a استفاده نخواهد شد بذر(1) نمونه در حال اجرا بر روی
میزبان (که به معنای بذر پیکربندی باید یک لیست صریح از
دستگاه هایی که ممکن است از آنها نیز استفاده کند).

شماره سریال دستگاه همیشه باید در اینجا استفاده شود. شما نمی توانید یک دستگاه را توسط
آدرس منطقی یا فیزیکی آن در اتوبوس (مثل اینکه در بسیاری از جاهای دیگر می توانید
شناسه دستگاه می گیریم).

با استفاده از خدمات onworks.net از bbvirt آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

  • 1
    wxPython
    wxPython
    مجموعه ای از ماژول های افزونه پایتون که
    کلاس های رابط کاربری گرافیکی کراس پلتفرم را از
    wxWidgets.. مخاطب: توسعه دهندگان. کاربر
    رابط: X Window System (X11)، Win32 ...
    دانلود wxPython
  • 2
    packfilemanager
    packfilemanager
    این فایل منیجر بسته Total War است
    پروژه، از نسخه 1.7 شروع می شود. آ
    معرفی کوتاه Warscape
    مودینگ: ...
    دانلود packfilemanager
  • 3
    IPerf2
    IPerf2
    ابزاری برای اندازه گیری ترافیک شبکه
    عملکرد TCP و UDP با معیارها
    در اطراف هر دو ظرفیت و تأخیر. در
    اهداف شامل حفظ یک فعال است
    کد iperf...
    IPerf2 را دانلود کنید
  • 4
    fre:ac - مبدل صوتی رایگان
    fre:ac - مبدل صوتی رایگان
    fre:ac یک مبدل صوتی و سی دی رایگان است
    چاک دهنده برای فرمت ها و رمزگذارهای مختلف.
    دارای MP3، MP4/M4A، WMA، Ogg
    فرمت Vorbis، FLAC، AAC و Bonk
    پشتیبانی، ...
    دانلود fre:ac - مبدل صوتی رایگان
  • 5
    matplotlib
    matplotlib
    Matplotlib یک کتابخانه جامع است
    برای ایجاد استاتیک، متحرک و
    تجسم های تعاملی در پایتون
    Matplotlib کارها را آسان می کند و
    چیز سخت...
    Matplotlib را دانلود کنید
  • 6
    باتمن
    باتمن
    منطق چت بات خود را یک بار بنویسید و
    آن را به یکی از موارد موجود متصل کنید
    خدمات پیام رسانی، از جمله آمازون
    الکسا، فیسبوک مسنجر، اسلک،
    تلگرام یا حتی تو...
    BotMan را دانلود کنید
  • بیشتر "

دستورات لینوکس

Ad