سایت خبرکاو

جستجوگر هوشمند اخبار و مطالب فناوری

برنامه ریزی شغلی در RHEL – cron و در توضیح داده شده با مثال

اجرای کارآمد وظایف در زمان های تعیین شده یا در پاسخ به رویدادهای خاص در فرآیند برنامه ریزی شغلی RHEL ضروری است. با کمک ابزارها و ابزارهای مختلف، می توانید به راحتی برنامه ریزی کار را هماهنگ و خودکار کنید و نیازی به مداخله دستی نداشته باشید. برخی از ابزارهای رایج برای برنامه ریزی شغلی در RHEL عبارتند از: cron: یک زمانبندی کار مبتنی بر زمان در سیستم عامل های مشابه یونیکس. کاربران می‌توانند با ایجاد ورودی‌هایی در فایل crontab، وظایف تکراری را برنامه‌ریزی ...

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

برخی از ابزارهای رایج برای برنامه ریزی شغلی در RHEL عبارتند از:

cron: یک زمانبندی کار مبتنی بر زمان در سیستم عامل های مشابه یونیکس. کاربران می‌توانند با ایجاد ورودی‌هایی در فایل crontab، وظایف تکراری را برنامه‌ریزی کنند و مشخص کنند این کارها چه زمانی و چند بار باید اجرا شوند.

در: دستور at به کاربران اجازه می دهد تا کارهای یک بار مصرف را برای اجرای در زمان مشخصی در آینده برنامه ریزی کنند.

فهرست مطالب

در اینجا چیزی است که ما در این راهنمای جامع پوشش خواهیم داد:

دیو چیست ؟

systemctl چیست ؟

زمانبندی کار با استفاده از در

برنامه ریزی کار با استفاده از crontab

تمرینات عملی

بسته بندی

دیمون چیست؟

در Red Hat Enterprise Linux (RHEL) و دیگر سیستم‌عامل‌های شبه یونیکس، یک «دیمون» یک فرآیند پس‌زمینه است که به‌طور مداوم اجرا می‌شود، معمولاً خدمات یا عملکرد خاصی را برای سیستم عامل یا برنامه‌های کاربردی ارائه می‌دهد.

دیمون ها اغلب مسئول رسیدگی به وظایف مختلف مانند مدیریت سخت افزار، پاسخ به درخواست های شبکه، اجرای وظایف برنامه ریزی شده و تسهیل ارتباط بین اجزای مختلف نرم افزار هستند.

این وظایف معمولاً نیازی به مشارکت مستقیم کاربر ندارند و معمولاً بدون دخالت کاربر انجام می شوند.

نمونه‌های رایج دیمون‌ها شامل سرورهای وب (مانند Apache یا NGINX)، سرورهای پایگاه داده (مانند MySQL یا PostgreSQL) و خدمات سیستمی (مانند cron برای زمان‌بندی وظایف یا systemd برای مدیریت سرویس‌های مختلف سیستم) است.

systemctl چیست؟

Systemctl در لینوکس Red Hat Enterprise (RHEL) ضروری است که به کاربران این امکان را می دهد تا سیستم و مدیر سرویس سیستم خود را به راحتی کنترل و نظارت کنند.

این ابزار خط فرمان راهی یکپارچه برای ارتباط با سیستم systemd init را ارائه می دهد که نقش مهمی در راه اندازی سیستم عامل، نظارت بر سرویس ها و مدیریت طیف وسیعی از عملکردهای سیستم ایفا می کند.

بیایید نگاهی دقیق‌تر به کارهایی که این ابزار می‌تواند انجام دهد بیاندازیم:

مدیریت خدمات

شروع و توقف خدمات

systemctl start service_name یک سرویس را راه اندازی می کند. در اینجا یک مثال است:

 systemctl start atd

دستور بالا systemctl start atd در سیستم های لینوکس برای راه اندازی سرویس atd (که مخفف "AT Daemon") با استفاده از ابزار systemctl استفاده می شود.

systemctl stop service_name یک سرویس را متوقف می کند. در اینجا یک مثال است:

 systemctl stop atd

با اجرای systemctl stop atd ، به سیستم دستور می دهید تا سرویس atd را متوقف کند. در نتیجه، هر کار یا کار برنامه ریزی شده برای اجرا با استفاده از دستور at تا زمانی که سرویس دوباره راه اندازی نشود، پردازش نمی شود.

فعال و غیرفعال کردن خدمات

systemctl enable service_name یک سرویس را تنظیم می کند که به طور خودکار در هنگام بوت شروع شود. در اینجا یک مثال است:

 systemctl enable crond

این کد سرویس crond را تنظیم می کند که هر بار که سیستم بوت می شود، به طور خودکار شروع به کار کند. این تضمین می کند که سرویس cron، مسئول رسیدگی به وظایف برنامه ریزی شده، فعال است و آماده اجرای دستورات در زمان های مشخص شده بدون نیاز به مداخله دستی پس از هر راه اندازی مجدد سیستم است.

systemctl disable service_name از راه اندازی خودکار سرویس در هنگام بوت جلوگیری می کند. در اینجا یک مثال است:

 systemctl disable crond

اجرای دستور بالا پیکربندی را حذف می کند که سرویس crond را قادر می سازد به طور خودکار هنگام بوت شدن سیستم راه اندازی شود. در نتیجه، پس از راه اندازی مجدد سیستم، سرویس crond به طور خودکار راه اندازی نمی شود. اگر کاربران می خواهند از cron برای زمان بندی وظایف استفاده کنند، باید به صورت دستی سرویس را راه اندازی کنند.

مشاهده وضعیت خدمات

تحلیل وضعیت خدمات

systemctl status service_name وضعیت فعلی و اطلاعات مربوط به یک سرویس را نمایش می دهد. در اینجا یک مثال است:

 systemctl status crond

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

نمایش همه خدمات

systemctl list-units --type=service همه سرویس های فعال را فهرست می کند. در اینجا یک مثال است:

 systemctl list-units --type=service

این فهرستی جامع از همه سرویس‌ها - اعم از فعال و غیرفعال - که توسط systemd در سیستم مدیریت می‌شوند، ارائه می‌کند. این خروجی شامل اطلاعاتی مانند نام واحد، وضعیت بارگذاری، وضعیت فعال (در حال اجرا یا نبودن)، و توضیحات هر سرویس است.

تمام دستورات ممکن سیستم مدیریت خدمات systemctl در زیر فهرست شده است. شما می توانید همه آنها را به تنهایی تحلیل کنید تا درک بهتری از نحوه کار آنها پیدا کنید.

 systemctl start <service>: Starts a service. systemctl stop <service>: Stops a service. systemctl restart <service>: Restarts a service. systemctl reload <service>: Reloads configuration for a service without stopping it. systemctl status <service>: Displays the current status and information about a service. systemctl enable <service>: Enables a service to start automatically at boot. systemctl disable <service>: Disables a service from starting automatically at boot. systemctl is-active <service>: Checks if a service is currently running. systemctl is-enabled <service>: Checks if a service is enabled to start at boot. systemctl is-failed <service>: Checks if a service has failed.

کنترل سیستم

راه اندازی مجدد و خاموش شدن

systemctl reboot سیستم را مجددا راه اندازی می کند. در اینجا یک مثال است:

 systemctl reboot

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

systemctl poweroff سیستم را خاموش می کند. در اینجا یک مثال است:

 systemctl poweroff

این یک سری اقدامات را آغاز می کند که شامل خاموش کردن همه سرویس ها و فرآیندهای در حال اجرا به شیوه ای منظم، ذخیره داده های ضروری و در نهایت خاموش کردن سیستم می شود.

تعلیق و خواب زمستانی

systemctl suspend سیستم را در حالت تعلیق قرار می دهد. در اینجا یک مثال است:

 systemctl suspend

این باعث می شود که سیستم وارد حالت تعلیق شود. در این حالت، سیستم به طور موثر اکثر عملیات‌ها، از جمله CPU و سایر اجزای سخت‌افزاری را برای حفظ انرژی متوقف می‌کند.

اما وضعیت فعلی سیستم را در حافظه (RAM) نگه می‌دارد تا زمانی که از سر گرفته شد، سیستم بتواند به سرعت به حالت قبلی خود بدون یک فرآیند راه‌اندازی کامل بازگردد.

systemctl hibernate سیستم را در حالت Hibernate قرار می دهد. در اینجا یک مثال است:

 systemctl hibernate

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

مشاهده اطلاعات سیستم

نمایش گزارش های سیستم

journalctl گزارش های سیستم و ورودی های مجله را مشاهده می کند. در اینجا یک مثال است:

 journalctl

این گزارش‌ها را نمایش می‌دهد که شامل پیام‌های سیستم، پیام‌های هسته، گزارش‌های سرویس و سایر رویدادهای ثبت‌شده توسط سیستم می‌شود.

journalctl -u <unit> گزارش های مربوط به یک واحد خاص را نمایش می دهد. در اینجا یک مثال است:

 journalctl -u crond

گزارش هایی را خواهید دید که به طور خاص به سرویس crond مربوط می شوند. این شامل پیام ها، خطاها یا سایر اطلاعات ثبت شده توسط crond daemon است که مسئول مدیریت وظایف برنامه ریزی شده با استفاده از زمانبندی کار cron است.

journalctl --since=<time> گزارش‌ها را از زمان خاصی نشان می‌دهد. در اینجا یک مثال است:

 journalctl --since "2024-01-01 08:00:00"

این گزارش‌های سیستمی را که پس از 1 ژانویه 2023 در ساعت 8:00 صبح تولید یا ثبت شده‌اند، بازیابی و نمایش می‌دهد. این به محدود کردن گزارش‌ها برای مشاهده رویدادهای سیستم یا پیام‌هایی که از آن نقطه زمانی خاص به بعد رخ داده‌اند کمک می‌کند و می‌تواند به شما در عیب‌یابی یا تجزیه و تحلیل فعالیت‌های اخیر سیستم کمک کند.

این دستورات systemctl برای شروع یک ماژول زمانبندی کار کافی است. همیشه می توانید دستورات systemctl بیشتری را به تنهایی کاوش کنید.

زمانبندی کار با استفاده at

دستور at برای زمان‌بندی وظایف یا دستورات یک‌باره‌ای استفاده می‌شود که در زمان مشخصی در آینده انجام خواهند شد. این ویژگی مخصوصاً برای خودکارسازی کارهایی که باید بعداً انجام دهید مفید است، پس لازم نیست بعداً انجام آنها را به خاطر بسپارید.

برای استفاده at ، باید موارد زیر را تحلیل کنید:

اطمینان حاصل کنید که شبح at ( atd ) برای at jobs اجرا می شود. می توانید از دستور systemctl برای تحلیل اینکه آیا atd در حال اجرا است یا نه استفاده کنید. اگر نه، می توانید از systemctl برای شروع آن استفاده کنید (و می توانید نحوه انجام این کار را در بخش systemctl در این آموزش ببینید).

بسته به تنظیمات سیستم، ممکن است مجوزها برای کاربران غیر سرپرست برای استفاده at محدود باشد.

اگر در حال دستکاری چیزی در یک فایل هستید، مطمئن شوید که مجوز Read-Write-Execute برای همان فایل را دارید.

نحو از at

 at <time>

نمونه هایی از استفاده از دستور at

بیایید ببینیم دستور at در عمل با چند مثال چگونه کار می کند.

ابتدا نحوه نمایش پیام در یک زمان خاص به این صورت است:

 at 15:35

حالا فرض کنید باید دستوراتی بدهید که در ساعت 15:35 به صورت خودکار اجرا می شوند:

 echo "Meeting in 30 minutes" >> sample.txt

Ctrl + D فشار دهید تا وارد کردن دستورات به پایان برسد و کار را برنامه ریزی کنید. این "جلسه در 30 دقیقه" را در فایل sample.txt در ساعت 15:35 چاپ می کند.

شاید شما یک اسکریپت به نام backup.sh داشته باشید و بخواهید در ساعت 2 بامداد اجرا شود. در اینجا نحوه انجام این کار به شرح زیر است:

 at -f backup.sh 02:00

این کد اسکریپت backup.sh را برای اجرا در ساعت 2:00 بامداد برنامه ریزی می کند. محتویات backup.sh به گونه ای اجرا می شوند که گویی در آن زمان مشخص شده مستقیماً وارد ترمینال شده اند.

همچنین می توانید از دستور زیر برای مشاهده فهرست ی از مشاغل at انتظار استفاده کنید:

 atq

دستور atq به شما کمک می‌کند فهرستی از کارهای at را مشاهده و مدیریت کنید و به شما امکان می‌دهد به راحتی به کارهای برنامه‌ریزی‌شده و زمان اجرای آن‌ها اشاره کنید.

در اینجا چند نمونه خروجی از دستور atq آورده شده است:

 10 Wed Jan 12 03:00:00 2023 a user123

ستون اول نشان دهنده شماره شغل است.

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

ستون سوم سطح اولویت را نشان می دهد (در این مورد 'a').

«a» معمولاً سطح اولویت پیش‌فرض است که at کارها به آن اختصاص می‌یابد، و با حرکت حروف به پایین الفبا («b»، «c»، «d» و غیره)، سطح اولویت کاهش می‌یابد.

ستون چهارم نام کاربری کاربری را که کار را برنامه ریزی کرده است (در صورت وجود) نمایش می دهد.

در اینجا نحوه حذف یک کار آمده است:

 atrm 10

کد بالا کار at را با شماره شناسه '3' از at حذف می کند و از اجرای آن در زمان برنامه ریزی شده جلوگیری می کند. با دستور atq می توانید شناسه شغلی را پیدا کنید. Job ID در ستون 1 خروجی قرار دارد.

at.allow و at.deny

فایل‌های at.allow و at.deny برای کنترل دسترسی کاربران برای زمان‌بندی کارها با استفاده at استفاده می‌شوند. این فایل ها معمولاً در /etc/ در RHEL قرار دارند.

فایل at.allow فهرست ی از کاربرانی را مشخص می کند که مجاز به استفاده از دستور at برای زمان بندی کارها هستند. اگر این فایل وجود داشته باشد، فقط کاربرانی که در آن فهرست شده‌اند می‌توانند at کارها برنامه‌ریزی کنند. اگر فایل وجود نداشته باشد، به گونه‌ای عمل می‌کند که انگار خالی است و به همه کاربران اجازه می‌دهد مگر اینکه توسط at.deny محدود شده باشند.

فایل at.deny فهرست ی از کاربرانی را مشخص می کند که از دسترسی به استفاده از دستور at محروم هستند. اگر این فایل وجود داشته باشد و کاربری در آن فهرست شده باشد، آن کاربر نمی‌تواند at کارها زمان‌بندی کند.

اگر هر دو at.allow و at.deny وجود داشته باشند، at.allow اولویت دارد. اگر هیچ کدام وجود نداشته باشد، فقط ابرکاربر (ریشه) می تواند at کارها برنامه ریزی کند.

مدیریت دسترسی - خلاصه و خلاصه

اگر at.allow وجود داشته باشد، فقط کاربران فهرست شده در این فایل می توانند at .

اگر at.deny وجود داشته باشد اما at.allow وجود نداشته باشد، کاربرانی که در at.deny فهرست نشده‌اند می‌توانند at استفاده کنند.

اگر نه at.allow و نه at.deny وجود نداشته باشد، به طور پیش فرض، فقط superuser (root) می تواند at .

نمونه هایی از at.allow و at.deny

فرض کنید می خواهید استفاده at به کاربران خاصی محدود کنید:

یک فایل at.allow به شکل زیر ایجاد کنید:

 sudo touch /etc/at.allow sudo echo "user1" >> /etc/at.allow sudo echo "user2" >> /etc/at.allow

این فقط به user1 و user2 اجازه می دهد تا at کارها برنامه ریزی کنند.

همچنین می‌توانید از فایل at.deny به صورت زیر استفاده کنید:

 sudo touch /etc/at.deny sudo echo "user3" >> /etc/at.deny

این امر دسترسی user3 را از استفاده at رد می کند.

برنامه ریزی کار با استفاده از crontab

Cron به کاربران امکان می دهد تا اعمال و دستورات تکرار شونده را در زمان ها، تاریخ ها یا فواصل زمانی خاص برنامه ریزی کنند. این زمان‌بندی کار قدرتمند تمام اطلاعات زمان‌بندی را در یک فایل خاص به نام crontab ذخیره می‌کند.

دستورات پایه کرونتاب

crontab -e : فایل crontab کاربر را در یک ویرایشگر برای گفت ن یا ویرایش کارهای cron باز می کند.

crontab -l : کارهای cron کاربر را فهرست می کند.

crontab -r : تمام کارهای cron کاربر را حذف می کند.

چند نکته در مورد crontab :

هر کاربر می تواند crontab خود را داشته باشد.

cron daemon ( crond ) باید در حال اجرا باشد تا cron jobs اجرا شود.

همیشه از مسیرهای مطلق برای اسکریپت ها و دستورات در cron job استفاده کنید.

فرمت crontab

فایل crontab دارای پنج فیلد است که با دستور/اسکریپت اجرا می شود. در اینجا به نظر می رسد:

 * * * * * command_to_execute - - - - - | | | | | | | | | +----- Day of the week (0 - 7) (Sunday is 0 or 7) | | | +------- Month (1 - 12) | | +--------- Day of the month (1 - 31) | +----------- Hour (0 - 23) +------------- Minute (0 - 59)

اگر فرمت crontab فراموش کرده اید، همیشه می توانید دستور cat /etc/crontab اجرا کنید و فرمت را برای شما نمایش می دهد.

نمونه هایی از استفاده از crontab

هر ساعت یک اسکریپت اجرا کنید

 crontab -e

دستور بالا ویرایشگر را با Vim یا هر دیگری که تنظیم کرده اید باز می کند. در آن ویرایشگر، کار را بر اساس فرمت crontab درست مانند زیر می نویسید:

 0 * * * * /path/to/script.sh

0 نشان دهنده فیلد دقیقه است. در این مورد، روی 0 تنظیم می شود، که نشان می دهد زمانی که دقیقه 0 است، یعنی در شروع هر ساعت، کار cron فعال می شود.

* (ستاره) نشان می دهد که هر مقدار ممکن برای آن فیلد معتبر است. پس ، * * * * * به این معنی است که کار در هر دقیقه از هر ساعت، هر روز، هر ماه و هر روز هفته اجرا می شود.

با کنار هم گذاشتن همه اینها، کار cron 0 * * * * /path/to/script.sh نشان می دهد که اسکریپت واقع در /path/to/script.sh هر ساعت در ابتدای ساعت اجرا می شود (زمانی که دقیقه 0 ).

یک دستور را در زمان های خاص اجرا کنید

ابتدا crontab -e اجرا کنید.

 0 15 * * * command_to_execute

0 نشان دهنده فیلد دقیقه است. در این مورد، روی 0 تنظیم می شود، که نشان می دهد کار cron در ابتدای ساعت راه اندازی می شود.

15 نشان دهنده فیلد ساعت است. روی 15 تنظیم شده است، به این معنی که کار در ساعت 15 روز، یعنی ساعت 3:00 بعد از ظهر اجرا می شود.

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

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

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

command_to_execute نشان دهنده دستور یا اسکریپتی است که در زمان مشخص شده اجرا می شود. این مکان نگهدار باید با دستور واقعی که می‌خواهید در ساعت 15:00 روزانه اجرا شود جایگزین شود.

هر روز هفته یک کار را اجرا کنید

ابتدا crontab -e انجام دهید.

 0 9 * * 1-5 command_to_execute

کد بالا مشخص می کند که command_to_execute در ساعت 9:00 صبح از دوشنبه تا جمعه اجرا می شود. این cron job برای برنامه ریزی کارهایی که فقط باید در روزهای هفته در یک زمان خاص اجرا شوند مفید است.

هر 15 دقیقه یک کار را اجرا کنید

ابتدا crontab -e انجام دهید.

 */15 * * * * command_to_execute

این مشخص می کند که command_to_execute در 0، 15، 30 و 45 دقیقه گذشته هر ساعت، هر روز، هر ماه و هر روز هفته اجرا می شود. این cron job برای برنامه ریزی کارهایی که باید در فواصل زمانی منظم اجرا شوند، در این مورد هر 15 دقیقه مفید است.

cron.allow و cron.deny

شما از این فایل های cron.allow و cron.deny استفاده می کنید تا کنترل کنید کدام کاربران مجاز به استفاده از سرویس cron برای زمان بندی کارهای دوره ای هستند. این فایل ها معمولاً در /etc/ در RHEL قرار دارند.

فایل cron.allow فهرست ی از کاربرانی را مشخص می کند که مجاز به استفاده از سرویس cron برای زمان بندی کارها با استفاده از crontab هستند. اگر این فایل وجود داشته باشد، فقط کاربران فهرست شده در آن می توانند ورودی های crontab ایجاد کنند. اگر فایل وجود نداشته باشد، به گونه‌ای عمل می‌کند که گویی خالی است و به همه کاربران اجازه می‌دهد مگر اینکه توسط cron.deny محدود شده باشند.

فایل cron.deny فهرست ی از کاربرانی را که از دسترسی به استفاده از سرویس cron محروم هستند، مشخص می کند. اگر این فایل وجود داشته باشد و کاربری در آن فهرست شده باشد، آن کاربر نمی تواند ورودی های crontab ایجاد کند. اگر هر دو cron.allow و cron.deny وجود داشته باشند، cron.allow اولویت دارد. اگر هیچ کدام وجود نداشته باشد، فقط ابرکاربر (ریشه) می تواند ورودی های crontab ایجاد کند.

مدیریت دسترسی - خلاصه

اگر cron.allow وجود داشته باشد، فقط کاربران فهرست شده در این فایل می توانند ورودی های crontab ایجاد کنند.

اگر cron.deny وجود داشته باشد اما cron.allow وجود نداشته باشد، کاربرانی که در cron.deny فهرست نشده اند می توانند ورودی های crontab ایجاد کنند.

اگر نه cron.allow و نه cron.deny وجود نداشته باشد، به طور پیش فرض، فقط superuser (ریشه) می تواند ورودی های crontab ایجاد کند.

مثالی از استفاده از cron.allow و cron.deny

فرض کنید می خواهید استفاده cron را به کاربران خاصی محدود کنید.

یک فایل cron.allow ایجاد کنید:

 sudo touch /etc/cron.allow sudo echo "user1" >> /etc/cron.allow sudo echo "user2" >> /etc/cron.allow

این فقط به user1 و user2 اجازه می دهد تا ورودی های crontab را ایجاد کنند.

همچنین می توانید از فایل cron.deny استفاده کنید:

 sudo touch /etc/cron.deny sudo echo "user3" >> /etc/cron.deny

این دسترسی user3 را از ایجاد ورودی های crontab منع می کند.

تمرینات عملی

مدیریت خدمات با systemctl

وضعیت فعلی خدمات سیستم را با استفاده از systemctl مرور کنید.

برای درک عملکرد یک سرویس، شروع، توقف، فعال یا غیرفعال کنید.

برنامه ریزی وظایف فوری با at

at دستور at برای برنامه‌ریزی یک کار فوری (مثلاً تکرار یک پیام، اجرای یک فرمان) استفاده کنید تا چند دقیقه از زمان فعلی اجرا شود.

با درک عملکرد at.allow و at.deny مجوزهای دسترسی برای دستورات at را تحلیل کنید.

راه اندازی at.allow و at.deny

یک فایل at.allow ایجاد کنید تا کاربرانی را که مجاز به استفاده at هستند با فهرست کردن نام‌های کاربری (اگر وجود ندارد) مشخص کنید.

یک فایل at.deny ایجاد کنید تا کاربران را از استفاده at با فهرست کردن نام‌های کاربری (در صورت لزوم) محدود کنید.

سعی کنید با استفاده از حساب‌های کاربری مختلف، برای مشاهده تأثیر این فایل‌ها، at کار را زمان‌بندی کنید.

کارهای تکراری با cron

کرونتاب را با استفاده از crontab -e باز کنید.

با استفاده از cron یک کار را برنامه ریزی کنید تا در زمان خاصی هر روز یا هفته اجرا شود.

با درک عملکرد cron.allow و cron.deny مجوزهای دسترسی برای دستورات cron را تحلیل کنید.

راه اندازی cron.allow و cron.deny

یک فایل cron.allow ایجاد کنید تا کاربران مجاز به استفاده از cron با فهرست کردن نام های کاربری (اگر وجود نداشته باشد) مشخص کنید.

یک فایل cron.deny ایجاد کنید تا کاربران را از استفاده از cron با فهرست کردن نام های کاربری (در صورت لزوم) محدود کنید.

سعی کنید با استفاده از حساب های کاربری مختلف یک کار cron را تغییر دهید یا ایجاد کنید تا تأثیر این فایل ها را مشاهده کنید.

مشاهده و تأیید

وضعیت وظایف برنامه ریزی شده را با استفاده از دستورات مربوطه ( atq ، crontab -l ) نظارت کنید.

با مشاهده تلاش‌های کاربر و رد دسترسی، محدودیت‌ها و مجوزهای دسترسی برای دستورات at و cron را تأیید کنید.

پاکسازی و اکتشاف

فایل های کنترل دسترسی ( at.allow ، at.deny ، cron.allow ، cron.deny ) را حذف یا تغییر دهید و تغییرات در دسترسی فرمان را مشاهده کنید.

دستورات اضافی systemctl ، at و cron را کاوش کنید تا درک خود را از زمان‌بندی کار و کنترل دسترسی عمیق‌تر کنید.

بسته بندی

از اینکه امروز با من دنیای مدیریت لینوکس سازمانی Red Hat (RHEL) را تحلیل کردید. می‌توانید عمیق‌تر در حوزه تخصص لینوکس غوطه‌ور شوید و در آموزش‌های آینده من برای محتوای روشن‌تر همراه باشید.

شما می توانید من را دنبال کنید:

توییتر

لینکدین

خبرکاو