در لینوکس ابزارها و محیط های مختلفی برای مدیریت کردن پرینترها و فرآیند های پرینت وجود دارد ، شاید امروزه کمتر کسی در لینوکس از محیط خط فرمان برای مدیریت کردن پرینترها استفاده کند اما بایستی بدانیم که برای آزمون بین المللی 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 پرینترها در لینوکس 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 ارتباط برقرار می کند.
برای مدیریت صف پرینت در لینوکس سه دستور lpc ، lpc و lprm استفاده می شوند که هر کدام به ترتیب وظایف زیر را بر عهده دارند :
همانطور که گفتیم شما می توانید با استفاده از دستور lpq لیست job های موجود در صف پرینت را مشاهده کنید ، اگر شما دستور lpq را بدون هیچ پارامتری وارد کنید برای شما job هایی که در پرینتر پیشفرض سیستم وجود دارد نمایش داده می شود اما بیشترین استفاده از این دستور به دو مثال زیر مربوط است :
همانطور که گفتیم دستور lpc برای کنترل کردم پرینترها مورد استفاده قرار می گیرد و مخفف line printer control program می باشد ، شما می توانید بسیاری از فرآیند های مرتبط به پرینت را با استفاده از این دستور انجام بدهید ، مثالهایی از این دستور را مشاهده می کنید ، واژه printername به اسم پرینتر شما مربوط می شود و بصورت مثال نوشته شده است :
دستور lprm همانطور که از اسمش هم تقریبا پیداست برای حذف کردن print job از printer queue استفاده می شود. اگر این دستور را بدون استفاده از هیچ آرگومانی وارد کنید job ای که در حال حاضر در print queue وجود دارد حذف خواهد شد ، کاربران عادی با استفاده از این دستور صرفا می توانند job های خودشان را حذف کنند و دسترسی به job های دیگران ندارند اما superuser ها می توانند job های همه را حذف کنند ، در ادامه برخی مثال ها در استفاده از این دستور را مشاهده می کنید :
نویسنده : محمد نصیری
منبع : ITPRO
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود