همایش نمایندگی های انستیتو ایزایران
مشهد مقدس آذر 1394
تقدیر ریاست محترم فنی و حرفه ای تهران
مرکز 8 فنی و حرفه ای اقدسیه
کارگاه های مجهز و اساتید با تجربه
انستیتو انفورماتیک فنی کار

ایزایران لپ تاپ

با اعطای مدرک بین المللی انستیتو ایزایران | با اعطای مدرک انستیتو انفورماتیک فنی کار

مرکز آموزش تخصصی و فوق تخصصی نصب و تعمیرات ماشین های اداری و سخت افزار کامپیوتر

ثبت نام  آنلاین    شهریه دوره ها 

رفع عیب بعضی از اشکالات آسان‌تر از بقیه است. به‌عنوان مثال، دلیل و راه‌حل پیغام خطای Web application cannot write to /var/www/cache/ مشخص است. متأسفانه گزارش‌های مشروح‌تری از مشکلات به‌دلیل ملاحظات امنیتی و بازدهی کمتربه ندرت در دسترس هستند. در محیط‌های عملیاتی، لاگ‌های مشروح نتیجه هر رخ‌داد به دلیل اضافه باری که روی پردازنده و ورودی، خروجی هارد‌دیسک تحمیل می‌کند خیلی گران تمام می‌شود. اما با این همه بررسی کردن لاگ‌ها نخستین گام برای رسیدن به حل مشکلی است که دلیل وقوع آن چندان مشخص نیست. تمامی لاگ‌ها در CentOS به‌‌‌صورت پیش‌فرض در var/log/ قرار دارند. برخی از لاگ‌های مهم در ادامه آمده‌اند.

var/log/messages/ که لاگ‌های سرویس‌های ذاتی CentOS نظیر لاگ‌های هسته، مدیریت شبکه و سایر سرویس‌هایی را که فایل لاگ جداگانه ندارند، ذخیره می‌کند. این فایل مشکلات هسته (پیام‌های Kernel panic) یا تخطی از محدودیت‌های هسته را، نظیر این‌که یک فایل به‌طور همزمان در چند نقطه باز شده و در حال ویرایش باشد که ممکن است مسبب مشکل به‌وجود آمده باشد، در خود نگه می‌دارد. برای برطرف‌کردن مشکلات تنظیمات بد هسته می‌توان فایل /etc/sysctl.conf را باز کرده و مقادیر متناسب با خطای نمایش داده شده را ویرایش کرد.
Var/log/dmesg/ شامل اطلاعاتی درباره سخت‌افزارهای سرور شما است که درایورهای آن در هسته موجود هستند. این فایل در نبود درایور یک قطعه یا رفع عیب مشکلات سخت‌افزاری به کمک شما می‌آید. Bin/dmesg/ دستوری است که همین کار را انجام می‌دهد. این دستور اطلاعات بیشتری را به صورت بی‌درنگ (مثلاً پس از اتصال یا قطع یک دستگاه) گزارش می‌دهد و این در حالی است که فایل لاگ گفته شده اطلاعات کمتری را، آن هم به عنوان یک مرجع برای مراجعه‌های بعدی نگه‌داری می‌کند.
Var/log/audit/audit.log/ مکانی برای نگه‌داری گزارش‌های مربوط به سیستم حسابرسی کاربران (auditd) نظیر تقاضاها برای ارتقای سطح دسترسی، ورود و خروج کاربران و همچنین تمامی اطلاعات مربوط به SELinux است. اگر سرویس auditd غیرفعال شود، SELinux گزارش‌هایی را به var/log/messages/ می‌فرستد. SELinux نخستین مظنون برای برای هر رفتار مشکوک و غیرطبیعی در CentOS است. SELinux به‌صورت پیش‌فرض در CentOS6 فعال شده است و از آنجا که این مجموعه برای امنیت سیستم بسیار مهم است، نباید با بی‌تفاوتی آن را غیرفعال کرد. وضعیت SELinux را می‌توان با دستور sestatus بررسی کرد.
گزارش‌های سرویس‌ها و برنامه‌های به‌خصوص: تعداد زیادی از برنامه‌ها گزارش‌های خود را در مکان‌های دیگری ذخیره می‌کنند و برای کنترل این‌که چه چیزی را در کجا ذخیره‌کنند نیز گزینه‌هایی دارند. به‌عنوان مثال، در CentOS، سرویس httpd فایل‌های لاگ خود را در /var/log/httpd/، سرویس Mail لاگ‌های خود را در /var/log/maillog و Mysql لاگ‌هایش را در /var/log/mysqld.log نگه‌داری می‌کند. به هر حال، تمامی برنامه‌ها لاگ‌های خود را در پوشه var/log/ نگه‌داری نمی‌کنند. بعضی برنامه‌‌ها مانند برنامه‌های سطح کاربر اجازه نوشتن در آن مسیر را ندارند و برخی دیگر از برنامه‌ها ترجیح می‌دهند تا لاگ‌های خود را در پوشه اصلی برنامه خود ذخیره کنند. برای اطلاع از محل دقیق قرارگیری فایل‌های لاگ یک برنامه باید راهنمای آن برنامه را خواند. لاگ‌های برنامه‌ها و سرویس‌ها با هم تفاوت دارند اما اغلب آن‌ها یک رخ‌داد را به‌صورت زمان وقوع، سطح اهمیت رخ‌داد و یک پیغام ذخیره می‌کنند. یک مثال از لاگ Mysql Server به‌صورت زیر است:
120503 7:34:22 [ERROR] Can’t create IP socket: Too many open files in system
نخستین ستون، تاریخ و زمان را نشان می‌دهد (120503 یعنی ۳ ماه می‌سال ۲۰۱۲). سطح اهمیت این رخ‌داد، ERROR است. سطوح اهمیت رخ‌دادها از info، debug و notice آغاز می‌شوند که بیشتر پیام‌های حاوی اطلاعات هستند تا پیام‌های حاوی شرح یک خطا. سپس پیام‌های warning و error هستند که دقیقاً به مشکل به‌وجود آمده اشاره می‌کنند. سرانجام، alert ،critical و emergency هستند که برای نمایش پیام‌های حاوی اعلان خطر استفاده می‌شوند.
اگر لاگ‌هایی را که در حال بررسی آن‌ها هستید اطلاعات زیادی را بروز نمی‌دهند، سعی کنید تا سطح گزارش‌دهی را با تغییر در پیکره‌بندی سرویس یا برنامه‌ای که در حال عیب‌یابی هستید، ارتقا دهید. به‌عنوان مثال، اگر مشکلات برنامه‌های وب با آپاچی را عیب‌یابی می‌کنید فایل etc/httpd/conf/httpd.conf/ را در یک ویرایشگر متن باز کرده و
LogLevel warn را به LogLevel debug تغییر دهید. بیشتر برنامه‌ها و سرویس‌ها از سطح debug پشتیبانی می‌کنند که لاگ‌های مفصل‌تری را در هنگام وقوع یک رخ‌داد برای سرویس یا برنامه ثبت می‌کند.
البته، اطلاعات موجود در لاگ‌ها به اندازه‌ای نیستند که بتوان از آن‌ها دلیل وقوع یک خطا را فهمید. در هر صورت، لاگ‌ها پیام‌های از پیش تعریف شده‌ای در نقاط شکست هستند که توسط برنامه‌نویسان طراحی شده است. به همین دلیل است که برخی اوقات نه تنها لاگ‌ها اطلاعات به‌درد بخوری ندارند بلکه می‌توان پیام «خطای ناشناخته(unknown)» را نیز در آن‌ها دید.
ردیابی مشکلات شبکه
ممکن است هنگامی که یک برنامه یا سرویس نتواند به شبکه متصل شود به دردسر بیفتید. در این مواقع باید بررسی کرد که آیا آن برنامه واقعاً به IP و پورتی که انتظار دارید، گوش می‌دهد یا خیر. برای این منظور می‌توان از دستور netstat -tulpn استفاده کرد. N برای نمایش خروجی به‌صورت عددی (به‌جای نمایش نام‌های کاربری، سمبلیک و کامپیوترها)، l برای برنامه‌هایی که به پورت گوش می‌دهد، t برای tcp، گزینه u برای udp و p برای نمایش PID و نام برنامه‌هایی است که به هر پورت تعلق دارد. یک مثال از دستور فوق در فهرست1 آورده شده است.
دو نکته در مثال بالا مهم هستند. نخست این‌که sshd دارد به تمام آدرس‌های محلی (0.0.0.0) در پورت ۲۲ گوش می‌دهد و این‌گونه است که مشخص می‌شود سرویس sshd دارد به درستی کار می‌کند. Master، سرویس postfix است که فقط به پورت محلی 127.0.0.1 گوش می‌دهد. این می‌تواند یک مثال عملی باشد که اگر کاربری نتواند به Mail Server متصل شود و از آن استفاده کند، باید فایل پیکره‌بندی postfix (یعنی etc/postfix/main.cf/) را باز کرده و inet_interfaces = localhost را به inet_interfaces = all تغییر داد.
بعضی وقت‌ها، مانند مثال بالا برنامه‌ها به پورت‌هایی (اغلب پورت‌های خارج از سرور) که از آن‌ها انتظار می‌رود، گوش نمی‌کنند. این کار به‌احتمال عمدی است؛ زیرا استفاده از یک پورت غیر استاندارد می‌توان یک نقطه امنیتی خود برای دسترسی‌های احتمالی غیر مجاز باشد. اما این‌کار مشکلات خاص خود را هم دارد؛ ممکن است آن پورت هم‌اکنون توسط نرم‌افزار دیگری در حال استفاده باشد یا برنامه دسترسی لازم برای بستن پورت را نداشته باشد. برای استفاده از پورت‌های زیر 1024 نیاز است تا برنامه با سطح دسترسی superuser اجرا شود.
گام بعدی، بررسی فایروال است. Cent OS سیاست (Policy) فایروال سخت‌گیری به‌صورت پیش‌فرض دارد که فقط به اتصالات ssh اجازه دسترسی از بیرون سیستم را می‌دهد و تمامی دسترسی‌ها به تمام برنامه‌ها از بیرون را بلوکه می‌کند. با استفاده از دستور sbin/iptables -L -n/ می‌توان قواعد تعریف شده برای فایروال را مشاهده کرد. گزینه L فهرست قواعد تعریف شده را به‌همراه گزینه n که خروجی را به صورت عددی نمایش می‌دهد، نشان خواهد داد. در فهرست2 مثالی از تنظیمات پیش‌فرض فایروال در CenOS 6 آورده می‌شود.
این فهرست نشان می‌دهد که فقط ssh برای اتصالات وارد شوند، مجاز است درحالی‌که تمامی اتصالات خارج شونده مجاز هستند. در فایروال ۳ زنجیره وجود دارند؛ INPUT برای بسته‌های وارد شونده، FORWARD برای بسته‌های مسیریابی شده و OUTPUT برای بسته‌های خارج شونده. بعد از هر زنجیره، Policy در آن مورد قرار دارد که ACCEPT به معنی پذیرش همه چیز است. سیاست DROP به معنی رد همه چیز است. REJECT نیز همین کار را می‌کند با این تفاوت که اگر DROP استفاده شده باشد، بسته‌ها بدون هیچ ارسال خطایی اجازه ورود یا خروج نخواهند داشت اما اگر REJECT استفاده شده باشد پیغام خطایی به سیستم ارسال‌کننده بسته برگردانده خواهد شد.
سریع‌ترین راه برای این‌که بتوان فهمید مشکل به‌وجود آمده در سیستم توسط فایروال ایجاد شده است یا نه، این است که فایروال را با اجرای دستور service iptables stop متوقف کنیم اما قبل از این‌کار درباره عوارض غیر‌فعال‌کردن فایروال که باعث در معرض خطر قرار گرفتن در مقابل ورودهای غیرمجاز می‌شود، به‌خوبی فکر کنید. اگر متوقف‌کردن فایروال باعث برطرف شدن مشکل شد، باید قواعد iptables را تغییر داد و تغییرات را ذخیره کرد. در اینجا دستوری آورده شده است که موجب فعال‌کردن پورت شماره 80 TCP برای اتصالات ورودی به آپاچی می‌شود. دستورات بعدی باعث ذخیره این دستور (برای اجرا پس از هر بار ری‌استارت شدن سیستم) و ری‌استارت شدن فایروال می‌شوند (فهرست3).
ردیابی پروسه‌ها و فایل‌های باز
گام بعدی، بررسی پردازه‌ها یا پروسه‌های در حال اجرا و دستورات و فایل‌های مرتبط با آن‌ها است. ممکن است یک پروسه زامبی را پیدا کنید که باید پیش از اجرای صحیح یک برنامه دیگر، kill شود. دانستن تمامی دستورات و فایل‌های مرتبط با یک پروسه به شما می‌گوید آن پروسه چگونه و توسط چه کسی اجرا شده است که باعث عیب‌یابی بهتر در موارد امنیتی می‌شود.ابتدا دستور bin/ps auxf/ را برای فهرست‌کردن پروسه‌های جاری اجرا کنید. آرگومان ax باعث فهرست کردن تمامی پروسه‌ها به همراه کاربر اجرا کننده آن‌ها (گزینه u) در فرمت کامل (گزینه f) که شامل دستورات اجرا کننده آن پروسه‌ها است، می‌شود. اگر فهرست نمایش داده شده بسیار طولانی است می‌توان به‌کمک دستورات pipe و grep به دنبال پروسه خاصی در بین تمامی پروسه‌های موجود گشت.
مطمئن شوید که اجرا کننده دستور به تمامی فایل‌های لازم دسترسی کافی دارد. به عنوان مثال، پروسه وب آپاچی که توسط کاربر nobody اجرا شده است، باید دسترسی کامل به تمامی فایل‌های موجود در پوشه ریشه وب سرور آپاچی (در‌حالت پیش‌فرض var/www/html/) داشته باشد. به‌همین دلیل، است که ساخت کاربر nobody تأثیر عمده‌ای در امنیت سرور وب دارد.
دانستن این که چه فایل‌هایی مرتبط با یک برنامه هستند هم می‌تواند مفید باشد، زیرا مشکل یک برنامه با یک فایل می‌تواند باعث ایجاد مشکل در خود برنامه شود. بهترین راه برای فهمیدن این‌که چه فایل‌هایی توسط یک برنامه باز شده‌اند، اجرای دستور usr/sbin/lsof/ است. استفاده از دستور فوق بدون هیچ آرگومان اضافه‌ای باعث نمایش تمامی فایل‌های باز سیستم می‌شود که توسط تمامی کاربران مورد استفاده قرار می‌گیرند. می‌توان خروجی را با grep کردن نام یک پروسه، کاربر یا نام فایل مرتب‌تر و خواناتر کرد.
یکی از رویدادهای رایج لینوکس داشتن فایل‌های lock توسط پروسه‌ها است که برای جلوگیری از تغییر همزمان آن برنامه یا فایل توسط دیگر برنامه‌ها است. به کمک دستور lsof و خروجی grep شده می‌توان از فایل‌های قفل شده توسط برنامه‌ها مطلع شد. اگر برنامه‌ای که دارای فایل قفل است به درخواست پاسخ می‌دهد، پس می‌توان به‌راحتی با دستور service name_of service stopآن سرویس را متوقف کرد اما اگر به درخواست‌ها پاسخ نمی‌دهد توسط دستورkill -9pid_of_process آن پروسه را kill کرد.
دستور lsof حتی فایل‌های پاک شده از روی سیستم را نیز که مرتبط با یکی از پروسه‌های جاری هستند، نشان می‌دهد. این پاک‌شدن فایل حتی ممکن است باعث پی بردن به یک رخنه امنیتی شود. بررسی کردن فایل‌های پاک شده حتی در عیب‌یابی میزان فضای خالی هارد‌دیسک نیز مفید است. حتی اگر فایلی پاک شود، فضای هارد‌دیسک ممکن است خالی نشود زیرا پروسه مرتبط با آن فایل آن را کاملاً آزاد نکرده است. در این مواقع، باید ابتدا پروسه را متوقف کرد تا فضای دیسک آزاد شود سپس اقدام به شروع دوباره پروسه کرد. سرانجام، دستور strace می‌تواند کمک کند تا فراخوانی‌ها و سیگنال‌های سیستمی را ردیابی کنیم. برای استفاده از این دستور باید دستوری را که باید عیب‌یابی شود پس از strace بیاوریم. مانند این دستور:
/usr/bin/strace/ date.
خطاهای فایل‌ها با پیام‌هایی مانند «چنین فایل یا پوشه‌ای وجود ندارد» نمایش داده می‌شوند اما هر خطایی در‌مورد فقدان یک فایل لزوماً یک مشکل را القا نمی‌کند. این امر ممکن است به این دلیل باشد که زمانی که یک گزینه غیرفعال باشد یا مادامی که یک بسته نصب نشده باشد، فایل مورد نظر موجود نباشد.
حل مشکل وابستگی‌ها
مشکلات مربوط به وابستگی‌ها به‌طور معمول، زمانی اتفاق می‌افتند که یک برنامه به‌صورت دستی نصب شود. CentOS از yum به‌عنوان راه‌حلی موفقی برای برطرف‌کردن خودکار مشکل وابستگی‌های یک برنامه استفاده می‌کند. اما به هر حال، هر زمان که بخواهید به صورت دستی یک برنامه را نصب کنید، احتمال کمبود کتابخانه‌ها یا برنامه‌های مورد نیاز وجود دارد. این مشکل زمانی حادتر می‌شود که بخواهید روی نسخه ۶۴ بیتی CentOS، برنامه‌های ۳۲ بیتی نصب کنید. یک نمونه از این خطا به این صورت است:
some_app: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory.
برای برطرف کردن این قبیل مشکلات ابتدا باید راهنمای نصب آن برنامه را به دقت مطالعه و قبل از نصب برنامه، نیازمندی‌های نصب را توسط yum یا به صورت دستی (اگر در مخازن نرم‌افزاری قرار ندارد) نصب کرد. اگر مطمئن نیستید یک فایل یا کتابخانه خاص در چه بسته‌ای قرار دارد، می‌توانید از yum whatprovides استفاده کنید. به عنوان مثال، اگر خطای فقدان کتابخانه libstdc++.so.5 را در هنگام نصب یا اجرای یک برنامه دریافت می‌کنید، می‌توان به این صورت از دستور فوق استفاده کرد:
yum whatprovides */libstdc++.so.5
که در این‌صورت خواهید دید این کتابخانه در بسته ++compat-libstdc قرار دارد؛ بنابراین، می‌توان به راحتی با نصب این بسته به مشکلات خاتمه داد.
اگر با وجود نصب بسته‌ای که آن کتابخانه یا فایل خاص را فراهم می‌کند باز هم خطا وجود دارد، بررسی کنید که آیا آن برنامه به کتابخانه ۳۲ بیتی احتیاج دارد یا خیر؟ ساده‌ترین برای فهمیدن این موضوع، استفاده از دستور ldd ،به‌صورت Idd/full/path-to-custom-command است. اگر در خروجی به جای /lib64/، مسیر /lib/ مشخص می‌شود که کتابخانه مورد نیاز باید ۳۲بیتی باشد. درنگارش ۶۴ بیتی CentOS امکان نصب بسته‌های ۶۴ یا ۳۲ بیتی وجد دارد؛ هر چند که از منظر پایداری و بهره‌وری، نصب بسته‌های ۳۲بیتی چندان توصیه نمی‌شود.
بوت در وضعیت نجات، آخرین پناهگاه
در برخی مواقع کمیاب، هیچ کدام از روش‌های فوق به کار نمی‌آیند، چون سیستم حتی بوت هم نمی‌شود. در این مواقع، باید از دیسک نصب CentOS و گزینه Rescue mode استفاده کرد. در این مواقع حتی دیسک حداقلی (minimal) هم کافی خواهد بود. پس از انتخاب Rescue mode چند مرحله ساده دیگر مانند پرسش در مورد راه‌اندازی سرویس شبکه و... هم خواهید داشت. در مراحل پایانی، به شما اطلاع داده می‌شود که محیط نجات سیستم شما (سیستم نصب شده روی هارد دیگر که دچار مشکل شده است) در mnt/sysimage/ متصل (Mount) شده است. در اینجا باید Continue را بزنید تا وارد محیط در مد خواندن/نوشتن شوید. در مرحله پایانی، start shell را انتخاب کنید. در‌نهایت شما یک خط فرمان خواهید داشت که به‌کمک chrrot به‌صورت chroot/mnt/sysimage وارد شل اصلی سیستم مشکل‌دار شوید. سپس می‌توانید همان کارهایی را که پیش‌تر برای برطرفکردن مشکل گفته شد انجام دهید.

فرم ثبت نام

پس از تکمیل فرم پیش ثبت نام منتظر تماس مشاور آموزشی خودتان باشید . در صورت تمایل با شماره ویژه : 02188930441 تماس بگیرید

اطلاعات فردی

شماره تلفن شما راه ارتباطی ما با شماست در زمان ثبت نام دقت کنید به اشتباه عددی را وارد ننمایید .

انتخاب دوره آموزشی

captcha

دوره های آموزشی

ecu fannikar.com

copier fannikar.com

fax fannikar.com

fannikar camera

انستیتو انفورماتیک فنی کار نماینده رسمی و معتبر انستیتو ایزایران مرکز آموزش تعمیرات تخصصی و آموزش تعمیرات ماشینهای اداری و آموزش تعمیرات فکس و آموزش تعمیرات تبلت و آموزش تعمیرات پرینتر و آموزش تعمیرات مادربرد و آموزش تعمیرات لپ تاپ و آموزش تعمیرات موبایل و آموزش تعمیرات چاپگر و آموزش تعمیرات کپی و آموزش شارژ کارتریج و آموزش تعمیرات ecu و آموزش تعمیر پرینتر لیزری و آموزش تعمیرات بردهای پزشکی و آموزش تعمیرات نوت بوک و آموزش تعمیرات چاپگر لیزری و آموزش تعمیر ماشین های اداری و اموزش تعمیر dvr و آموزش تعمیرات در تهران و آموزشگاه تعمیرات فنی و آموزش تعمیرات و نصب و آموزش تعمیرات چاپگر های جدید و آموزش تعمیر موبایل و آموزش تعمیرات موبایل و آموزش تعمیر تلویزیون و آموزش تعمیرات تلویزیون و آموزش تعمیر کامپیوتر و آموزش تعمیرات کامپیوتر و آموزش تعمیر ای سی یو و آموزش تعمیرات ای سی یو و آموزش تعمیر لپ تاپ و آموزش تعمیرات لپ تاپ و آموزش تعمیر لپتاپ و آموزش تعمیرات لپتاپ و آموزش تعمیر ال ای دی و آموزش تعمیرات ال ای دی و آموزش تعمیر ال سی دی و آموزش تعمیرات ال سی دی و آموزش نصب دوربین مدار بسته و آموزش نصب دوربین مداربسته و آموزش نصب کولر گازی و آموزش نصب کولرگازی و آموزش تعمیر کولر گازی و آموزش تعمیرات کولر گازی و آموزش شارژ کارتریج و آموزش شارژ کارتریج و آموزش مهندسی معکوس و اموزش مهندسی معکوس و آموزش تعمیر برد الکترونیکی و آموزش تعمیرات برد الکترونیکی و آموزش نصب دزدگیر خودرو و آموزش نصب دزدگیر ماشین و  آموزش تعمیر ماشین های اداری و آموزش تعمیرات ماشین های اداری و آموزش تعمیر ماشینهای اداری و آموزش تعمیرات ماشینهای اداری و آموزشگاه تعمیر موبایل و آموزشگاه تعمیرات موبایل و اموزش تعمیر موبایل و اموزش تعمیرات موبایل و اموزش تعمیر تلویزیون و اموزش تعمیرات تلویزیون و اموزش تعمیر کامپیوتر و اموزش تعمیرات کامپیوتر و اموزش تعمیر ای سی یو و اموزش تعمیرات ای سی یو و اموزش تعمیر لپ تاپ و اموزش تعمیرات لپ تاپ و اموزش تعمیر لپتاپ و اموزش تعمیرات لپتاپ و اموزش تعمیر ال ای دی و اموزش تعمیرات ال ای دی و اموزش تعمیر ال سی دی و اموزش تعمیرات ال سی دی و اموزش نصب دوربین مدار بسته و اموزش نصب دوربین مداربسته و اموزش نصب کولر گازی و اموزش نصب کولرگازی و اموزش تعمیر کولر گازی و اموزش تعمیرات کولر گازی و اموزش شارژ کارتریج و اموزش شارژ کارتریج و اموزش مهندسی معکوس و اموزش تعمیرات برد به روش مهندسی معکوس و اموزش تعمیر برد الکترونیکی و اموزش تعمیرات برد الکترونیکی و اموزش نصب دزدگیر خودرو و اموزش نصب دزدگیر ماشین و اموزش تعمیر ماشین های اداری و آموزش تعمیرات ماشین های اداری و اموزش تعمیر ماشینهای اداری و اموزش تعمیرات ماشینهای اداری و اموزشگاه تعمیر موبایل و اموزشگاه تعمیرات موبایل در فنیکار