محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

آموزش مدیریت پرینتر در لینوکس به دستورات به زبان ساده

در لینوکس ابزارها و محیط های مختلفی برای مدیریت کردن پرینترها و فرآیند های پرینت وجود دارد ، شاید امروزه کمتر کسی در لینوکس از محیط خط فرمان برای مدیریت کردن پرینترها استفاده کند اما بایستی بدانیم که برای آزمون بین المللی LPIC که دوره آن در ITPRO در حال ارائه می باشد ما بایستی بتوانیم پرینترها و فرآیند های پرینت سیستم عامل لینوکس را از محیط خط فرمان مدیریت کنیم. این مقاله بر اساس ساختار پرینت در سیستم عامل های خانواده BSD تهیه و تدوین شده است که قالب آن در لینوکس هم کاملا پذیرفته شده است و شما براحتی می توانید Print Queue ها را در لینوکس با همین راهنما مدیریت کنید. با استفاده از این راهنما شما می توانید محیط های پرینت لینوکس و تنظیمات پرینترها در لینوکس را به سادگی انجام بدهید و البته موارد لازم جهت پاس کردن امتحان LPIC1 102 را هم یاد بگیرید.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

پس زمینه ساختار کاری پرینت و پرینترها در لینوکس

مکانیزم کاری پرینت و پرینترها در سیستم عامل های خانواده لینوکس و یونیکس تقریبا یکسان است و همه آنها از یک سیستم پرینت قدیمی مبتنی بر BSD الگو برداری شده اند . این مکانیزم به عنوان lpd شناخته می شود و اکثر دستوراتی که برای مدیریت پرینترها در لینوکس استفاده می شوند نیز بر همین اساس lpd کار می کنند ، lpd مخفف کلمه های Line Printer Daemon است و سرویسی محسوب می شود که دستورات مربوط به lpd را اجرا می کند. این دستور همچنان مورد استفاده قرار می گیرند هر چند که در اکثر سیستم عامل های دسکتاپ امروزی سیستم مدیریت پرینترهای لینوکس با استفاده از ابزار CUPS انجام می شود.

اما همچنان سرورهایی پیدا می شوند که ضمن اینکه دارای محیط گرافیکی نیستند و قرار هست از آنها به عنوان پرینت سرور استفاده شود ما می توانیم از دستورات lpd برای مدیریت کردن آنها به جای CUPS استفاده کنیم. LPD یک پروتکل یا زبان صحبت کردن هم محسوب می شود ، پروتکلی که به کاربران اجازه می دهد که از راه دور دستورات پرینت خودشان را به پرینترها در شبکه ارسال کنند و همچنین بتوانند Print Queue را مدیریت و کنترل کنند. انواع و اقسام پیاده سازی های lpd امروزه وجود دارد و جالب است بدانید که CUPS و LPRng نیز همگی در نهایت مبتنی بر پروتکل lpd کار می کنند.

سرویس Spooling یا Spooling Daemon ( lpd )

سرویس spooling پرینترها در لینوکس lpd نام دارد. فرآیند spooling در لینوکس همانند همه فرآیند های spooling دیگر در سایر سیستم عامل ها است ، یعنی فایل از کلاینت دریافت و به سمت پرینتر سرور ارسال می شود این فرآیند Spool کردن نام دارد. بر روی همه ماشین هایی که قرار است فرآیند پرینت را انجام بدهند یک lpd اجرا می شود در واقع ما یک local lpd و یک remote lpd داریم که فرآیند spool کردن را برای ما انجام می دهند. همچنین یک نسخه از lpd بر روی هر کی از پرینترها نیز وجود دارد تا با lpd client و lpd server هماهنگ باشد. این سرویس معمولا زمانیکه سیستم startup می شود شروع به فعالیت می کند. این سرویس بصورت مداوم در حال کار است و برای گوش دادن به connection ها یا درخواست ها و همچنین مدیریت کردن صف پرینت یا print queue استفاده می شود.

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

مدیریت Print Job ها با دستورات lpq ، lpc و lprm

برای مدیریت صف پرینت در لینوکس سه دستور lpc ، lpc و lprm استفاده می شوند که هر کدام به ترتیب وظایف زیر را بر عهده دارند :

  1. دستور lpq وظیفه لیست کردن job هایی که در print queue وجود دارد را بر عهده دارد
  2. دستور lpc وظیفه انجام کارهای مدیریتی بر روی پرینتر و صف پرینت را اعم از متوقف کردن پرینتر ، شروع به کار کردن پرینتر ، جابجا کردن job ها در صف پرینت و ... را بر عهده دارد.
  3. دستور lprm برای حذف کردن یک یا بیشتر از یک print job از صف پرینت استفاده می شود.

مشاهده لیست job های فعال در Queue با دستور lpq

همانطور که گفتیم شما می توانید با استفاده از دستور lpq لیست job های موجود در صف پرینت را مشاهده کنید ، اگر شما دستور lpq را بدون هیچ پارامتری وارد کنید برای شما job هایی که در پرینتر پیشفرض سیستم وجود دارد نمایش داده می شود اما بیشترین استفاده از این دستور به دو مثال زیر مربوط است :

  1. دستور lpq a- که تمامی job های موجود بر روی همه پرینترها را نمایش می دهد
  2. دستور lpq l- که اطلاعات کاملی در خصوص job ها در اختیار کاربران قرار می دهد ( long list detail )

کنترل کردن پرینترها با استفاده از دستور lpc

همانطور که گفتیم دستور lpc برای کنترل کردم پرینترها مورد استفاده قرار می گیرد و مخفف line printer control program می باشد ، شما می توانید بسیاری از فرآیند های مرتبط به پرینت را با استفاده از این دستور انجام بدهید ، مثالهایی از این دستور را مشاهده می کنید ، واژه printername به اسم پرینتر شما مربوط می شود و بصورت مثال نوشته شده است :

  1. دستور lpc status printername : وضعیت پرینتری که اسم آن را ذکر کرده ایم را نشان می دهد ، قسمت printername می تواند با کلمه all نیز جایگزین شود تا وضعیت تمامی local printer ها را نمایش بدهد.
  2. دستور lpc disable printername : صف پرینت یا print queue پرینتر نام برده شده را خاموش یا غیرفعال می کند ، این دستور اجازه وجود print job های جدید را به print queue پرینتر موجود نمی دهد ، همانطور که قبلا مثال زدیم با وارد کردن واژه all به جای printername شما می توانید این قسمت را به همه پرینترهای موجود در سیستم لوکال اعمال کنید.
  3. دستور lpc enable printername : اجازه می دهد که job های جدید به printer queue اضافه شود و طبق معمول به جای printername می توانید از all هم استفاده کنید.
  4. دستور lpc stop printername : سرویس spooling پرینتر را بعد از اینکه job فعلی در حال پرینت ، پرینت گرفته شد غیرفعال می کند. دقت کنید که اینکار پرینت گرفتن را بصورت کامل از پرینتر مورد نظر میگیرد و آن را غیرفعال میکند. ، طبیعتا شما اینجا هم all را می توانید به جای printername استفاده کنید.
  5. دستور lpc start printername : سرویس spooling را برای پرینتر مورد نظر فعال می کند ، و طبیعتا به جای printername از all هم می توانید استفاده کنید.

حذف کردن Print Job ها با استفاده از lprm

دستور lprm همانطور که از اسمش هم تقریبا پیداست برای حذف کردن print job از printer queue استفاده می شود. اگر این دستور را بدون استفاده از هیچ آرگومانی وارد کنید job ای که در حال حاضر در print queue وجود دارد حذف خواهد شد ، کاربران عادی با استفاده از این دستور صرفا می توانند job های خودشان را حذف کنند و دسترسی به job های دیگران ندارند اما superuser ها می توانند job های همه را حذف کنند ، در ادامه برخی مثال ها در استفاده از این دستور را مشاهده می کنید :

  1. دستور lprm –P printerqueue jobid : این دستور یک درخواست از یک print queue را حذف می کند ، دقت کنید که jobid یک شماره است که به print job ها در هنگام پرینت داده می شوند
  2. دستور - lrpm : این دستور تمامی درخواست ها و job های یک کاربر را حذف می کند ، اگر این دستور توسط superuser اجرا شود همه درخواستهایی که در print queue همه کاربران وجود دارند حذف خواهند شد.
  3. دستور lprm –a : تمامی job ها بر روی تمامی printer ها را حذف می کند
  4. دستور lprm –a all : تمامی job ها از تمامی printer ها برای همه کاربران را حذف می کند. ITPRO باشید

نویسنده : محمد نصیری

منبع : ITPRO

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

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

نظرات