scrontab(1) Slurm Commands scrontab(1)

scrontab - مدیریت فایل‌های crontab در Slurm

scrontab [-u user] file
scrontab [-u user] [ -e | -l | -r ]

دستور scrontab برای تنظیم، ویرایش و حذف فایل crontab مدیریت‌شده توسط Slurm برای یک کاربر به کار می‌رود. این فایل می‌تواند تعدادی کار دسته‌ای (batch job) تکرارشونده را برای اجرا در فواصل زمانی زمان‌بندی‌شده تعریف کند.

خط‌ها باید یا کامنت‌های شروع‌شده با «#»، فاصله خالی (whitespace)، ورودی‌های معتبر crontab یا تنظیمات متغیرهای سفارشی باشند.

خطوطی که با #SCRON آغاز می‌شوند، امکان تعریف گزینه‌ها را برای تک‌ورودیِ بعدی در crontab فراهم می‌کنند. گزینه‌ها همواره بین هر دو ورودی crontab بازنشانی می‌شوند. این گزینه‌ها شامل بیشتر مواردی است که برای دستور sbatch در دسترس هستند؛ جزئیات بیشتر در صفحه راهنمای sbatch(1) موجود است.

توجه داشته باشید که تضمینی برای اجرای کارها در زمان ترجیحی وجود ندارد. کارها بیشتر از فرکانس درخواست‌شده اجرا نخواهند شد، اما با تنظیم فیلد BeginTime روی تکرار معتبر بعدی مدیریت می‌شوند و سپس مشمول تأخیرهای صف‌بندی خواهند بود. رفتار دقیق به پیکربندی محلی سایت بستگی دارد. به دلیل این روش پیاده‌سازی، کار بعدی در این سری تا زمانی که کار قبلی کامل نشده باشد ارسال نخواهد شد. به عنوان مثال، اگر یک کار نظارتی دارید که زمان‌بندی شده هر دقیقه روی یک سیستم شلوغ اجرا شود، اگر کاری که برای شروع در 08:20:00 زمان‌بندی شده نتواند تا 08:20:30 آغاز شود و به مدت ۳۵ ثانیه اجرا شود، کار ساعت 08:21:00 نادیده گرفته خواهد شد و کار بعدی برای 08:22:00 زمان‌بندی می‌شود.

دستور scrontab از همان ساختار دستوریِ مشخص‌کننده‌های تاریخ و زمان در cron استفاده می‌کند. هر خط دارای پنج فیلد است که معانی زیر را دارند:

فیلد مقدارهای مجاز
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (یا نام آن)
day of week 0-7 (0 و 7 یکشنبه هستند، یا نام آن)

یک فیلد می‌تواند حاوی یک ستاره (*) باشد که به این معنی است که برای هر یک از مقادیر مجاز در آن دوره زمانی معتبر است. بازه‌ها نیز مجاز هستند که به صورت دو عدد با یک خط تیره بین آن‌ها مشخص می‌شوند. عدد دوم باید بزرگ‌تر از عدد اول باشد. لیست‌ها مجاز هستند که در آن‌ها کاما اعداد یا بازه‌ها را از هم جدا می‌کند. مقادیر گام (step) را می‌توان با وارد کردن یک ممیز رو به جلو (/) و به دنبال آن مقدار گام مشخص کرد، که باعث می‌شود کار در بازه زمانی تعیین‌شده متناسب با آن فیلد اجرا شود.

متغیرهای سفارشی را می‌توان مانند یک اسکریپت شل معمولی تعریف کرد. نویسه «$» برای گسترش متغیر به کار می‌رود. در حال حاضر تنها نوع گسترش پذیرفته‌شده، گسترش پارامتر ساده است (یعنی ${parameter} یا ${parameter:-word} پشتیبانی نمی‌شوند). گسترش متغیر تنها درون دستورهای کارهای scrontab رخ خواهد داد. گسترش متغیرها در انواع دیگر خطوط (تعاریف دیگر متغیرها، کامنت‌ها یا ورودی‌های crontab) امکان‌پذیر نیست. این گسترش پیش از ارسال کار انجام می‌شود، اما تعاریف متغیر در اسکریپت scrontab باقی خواهند ماند. برخلاف crontab، متغیرهای محیطی کاربر نادیده گرفته می‌شوند.

فرم نخست این دستور برای نصب یک crontab جدید از یک فایل مشخص، یا از ورودی استاندارد در صورت ارائه نام‌فایل شبه‌ورودی «-» به کار می‌رود.

ویرایش crontab. اگر از قبل crontab وجود نداشته باشد، یک نمونه پیش‌فرض (بدون هیچ ورودیِ تعریف‌شده‌ای) در ویرایشگر ارائه خواهد شد.
فهرست کردن crontab. (مستقیماً در خروجی استاندارد stdout چاپ می‌شود.)
حذف crontab. هر کار در حال اجرایی که توسط crontab تعریف شده باشد به اجرای خود ادامه خواهد داد اما دیگر تکرار نخواهد شد. سایر کارهای تعریف‌شده در crontab لغو خواهند شد.
ویرایش یا مشاهده crontab یک کاربر دیگر. فهرست کردن برای اپراتورها (Operators) و مدیران (Admins) مجاز است. ویرایش یا حذف تنها برای کاربر ریشه (root) و حساب کاربری SlurmUser مجاز است.

دستور scrontab به شما اجازه می‌دهد تا از میان‌برها برای مشخص کردن برخی از فواصل زمانی متداول جهت اجرای اسکریپت مشخص‌شده استفاده کنید. این میان‌برها شامل موارد زیر هستند:

@yearly | @annually
کار در ساعت 00:00 در 01 Jan هر سال واجد شرایط اجرا می‌شود.
@monthly
کار در ساعت 00:00 در اولین روز هر ماه واجد شرایط اجرا می‌شود.
@weekly
کار در ساعت 00:00 یکشنبه در هر هفته واجد شرایط اجرا می‌شود.
@daily | @midnight
کار در ساعت 00:00 هر روز واجد شرایط اجرا می‌شود.
@hourly
کار در اولین دقیقه هر ساعت واجد شرایط اجرا می‌شود.
@elevenses
کار در ساعت 11:00 هر روز واجد شرایط اجرا می‌شود. (این یک قابلیت الحاقی غیر استاندارد است.)
@fika
کار در ساعت 15:00 هر روز واجد شرایط اجرا می‌شود. (این یک قابلیت الحاقی غیر استاندارد است.)
@teatime
کار در ساعت 16:00 هر روز واجد شرایط اجرا می‌شود. (این یک قابلیت الحاقی غیر استاندارد است.)

در صورت تنظیم بودن، به عنوان ویرایشگر تعاملی به کار می‌رود.
در صورت تنظیم بودن و عدم تعریف VISUAL، به عنوان ویرایشگر تعاملی به کار می‌رود.
محل فایل پیکربندی Slurm.
پرچم‌های اشکال‌زدایی (debug flags) را برای استفاده توسط scrontab تعیین می‌کند. برای فهرست کاملی از پرچم‌ها، به DebugFlags در صفحه راهنمای slurm.conf(5) مراجعه کنید. این متغیر محیطی بر تنظیمات داخل slurm.conf اولویت دارد.

دستور scrontab تنها در صورتی در دسترس است که گزینه ScronParameters=enable در slurm.conf فعال شده باشد.

دستور scrontab یک فایل موقت در دایرکتوری تعیین‌شده توسط متغیر محیطی TMPDIR ایجاد خواهد کرد. اگر این متغیر تنظیم نشده باشد، از /tmp استفاده می‌شود.

به کارهای ایجاد‌شده با scrontab یک شناسه کار (job id) یکتا اختصاص داده می‌شود. در هنگام لغو، تمام اجراهای آینده آن کار نیز لغو خواهند شد. تعریف کار در فایل scrontab کاربر به صورت کامنت در خواهد آمد.

استفاده از «scontrol requeue <job_id>» اجرای بعدی کار زمان‌بندی‌شده cron را رد می‌کند و آن را بر اساس عبارت cron برای زمان در دسترس بعدی دوباره زمان‌بندی خواهد کرد.

برای ایجاد کاری که در آغاز هر ساعت، با استفاده از پارتیشن 'high' و حساب 'sub1' اجرا شده و محدودیت زمانی اجرای آن (walltime) برابر ۱ دقیقه باشد، خطوط زیر را به scrontab اضافه کنید:

DIR=/home/user1
#SCRON -p high
#SCRON -A sub1
#SCRON -t 1:00
@hourly $DIR/date.printer.job

برای اینکه کاری در هر چهارشنبه، هر دو ساعت یک‌بار در طول روز کاری، در پنج دقیقه نخست هر ساعت و دوباره در دقیقه سی‌ام اجرا شود، موارد زیر را به scrontab اضافه کنید:

1-5,30 8-17/2 * * wed $DIR/example.job

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

حق نشر (C) 2020-2022 متعلق به SchedMD LLC است.

این فایل بخشی از Slurm، یک برنامه مدیریت منابع است. برای جزئیات بیشتر، پیوند https://slurm.schedmd.com را ببینید.

نرم‌افزار Slurm یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) همان‌طور که توسط «بنیاد نرم‌افزارهای آزاد» منتشر شده است، تحت نسخه ۲ مجوز یا (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده یا تغییر دهید.

نرم‌افزار Slurm به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به «مجوز عمومی همگانی گنو» مراجعه کنید.

sbatch(1), squeue(1), slurm.conf(5)

Slurm Commands Slurm 26.05