| CRONTAB(1) | User Commands | CRONTAB(1) |
نام (NAME)
crontab - نگهداری و ویرایش فایلهای جدول زمانبندی cron برای کاربران منفرد
خلاصه دستور (SYNOPSIS)
crontab [-u user] <file
| ->
crontab [-T] <file | ->
crontab [-u user] <-l | -r |
-e> [-i] [-s]
crontab -n [ hostname ]
crontab -c
crontab -V
توضیحات (DESCRIPTION)
برنامه crontab برای نصب یک فایل جدول crontab، حذف یا فهرستکردن جدولهای موجود که برای سرویسدهی به دیمن cron(8) استفاده میشوند، به کار میرود. هر کاربر میتواند جدول crontab مختص به خود را داشته باشد؛ و هرچند این فایلها در پوشه /var/spool/ قرار دارند، برای ویرایش مستقیم در نظر گرفته نشدهاند. برای SELinux در حالت MLS، میتوانید برای هر محدوده crontabهای بیشتری تعریف کنید. برای اطلاعات بیشتر، selinux(8) را ببینید.
در این نسخه از Cron، امکان استفاده از یک /var/spool/cron اشتراکی که از طریق شبکه متصل شده است (network-mounted) در سراسر یک کلاستر از میزبانها وجود دارد و میتوان مشخص کرد که در هر زمان تنها یکی از میزبانها وظایف crontab را در دایرکتوری مورد نظر اجرا کند. همچنین میتوانید از دستور crontab در هر یک از این میزبانها برای ویرایش همان مجموعه فایلهای crontab اشتراکی و همچنین برای تعیین و پرسوجو درباره اینکه کدام میزبان باید وظایف crontab را اجرا کند، استفاده کنید.
زمانبندی وظایف cron با استفاده از crontab میتواند برای کاربران مختلف مجاز یا غیرمجاز شود. برای این منظور از فایلهای cron.allow و cron.deny استفاده کنید. اگر فایل cron.allow وجود داشته باشد، نام کاربر باید در آن فهرست شده باشد تا اجازه استفاده از crontab را داشته باشد. اگر فایل cron.allow وجود نداشته باشد اما فایل cron.deny موجود باشد، کاربر نباید در فایل cron.deny فهرست شده باشد تا بتواند از crontab استفاده کند. در صورتی که هیچیک از این دو فایل وجود نداشته باشند، تنها مدیر سیستم (superuser) مجاز به استفاده از crontab خواهد بود.
راهکار دیگر برای محدود کردن زمانبندی وظایف cron فراتر از crontab، استفاده از احراز هویت PAM در فایل /etc/security/access.conf برای تنظیم کاربرانی است که مجاز یا غیرمجاز به استفاده از crontab یا تغییر وظایف سیستمی cron در دایرکتوری /etc/cron.d/ هستند.
دایرکتوری موقت را میتوان در یک متغیر محیطی تنظیم کرد. اگر توسط کاربر تنظیم نشده باشد، دایرکتوری /tmp استفاده خواهد شد.
هنگام فهرستکردن crontab در یک ترمینال، خروجی رنگی خواهد بود مگر اینکه متغیر محیطی NO_COLOR تنظیم شده باشد.
هنگام ویرایش یا حذف crontab، یک نسخه پشتیبان از آخرین crontab در $XDG_CACHE_HOME/crontab/crontab.bak ذخیره خواهد شد، یا در صورت استفاده از گزینه -u، در $XDG_CACHE_HOME/crontab/crontab.<user>.bak ذخیره میشود. اگر متغیر محیطی XDG_CACHE_HOME تنظیم نشده باشد، بهجای آن از $HOME/.cache استفاده خواهد شد.
گزینهها (OPTIONS)
- -u
- نام کاربری را مشخص میکند که crontab او باید تغییر یابد. اگر این گزینه استفاده نشود، crontab جدول زمانبندی «شما»، یعنی crontab شخصی که دستور را اجرا میکند بررسی میکند. اگر هیچ crontab برای یک کاربر خاص وجود نداشته باشد، اولین باری که دستور crontab -u تحت نام کاربری او استفاده شود، برای وی ایجاد میگردد.
- -T
- سینتکس فایل crontab را بدون نصب کردن آن آزمایش میکند. بهمحض یافتن اولین مشکل، اعتبارسنجی متوقف میشود؛ بنابراین تمام خطاهای موجود در یک بار اجرا بازگردانده نخواهند شد.
- -l
- جدول crontab فعلی را در خروجی استاندارد نمایش میدهد.
- -r
- جدول crontab فعلی را حذف میکند.
- -e
- جدول crontab فعلی را با استفاده از ویرایشگر مشخصشده توسط متغیرهای محیطی VISUAL یا EDITOR ویرایش میکند. پس از خروج از ویرایشگر، crontab تغییریافته بهطور خودکار نصب خواهد شد.
- -i
- این گزینه رفتار گزینه -r را تغییر میدهد تا قبل از حذف واقعی crontab، برای دریافت پاسخ 'y/Y' از کاربر تاییدیه بخواهد.
- -s
- رشته بافت امنیتی (security context) فعلی SELinux را قبل از انجام ویرایش یا جایگزینی، بهعنوان یک تنظیم MLS_LEVEL به فایل crontab ضمیمه میکند - مستندات MLS_LEVEL را در crontab(5) ببینید.
- -n
- این گزینه تنها در صورتی کاربرد دارد که cron(8) با گزینه -c جهت فعالسازی پشتیبانی از کلاسترینگ راهاندازی شده باشد. این گزینه برای تعیین میزبانی در کلاستر استفاده میشود که باید وظایف مشخصشده در فایلهای crontab واقع در دایرکتوری /var/spool/cron را اجرا کند. اگر یک نام میزبان (hostname) ارائه شود، میزبانی که نام آن توسط gethostname(2) با نام میزبان ارائهشده مطابقت داشته باشد، پس از آن برای اجرای وظایف cron انتخابشده برگزیده خواهد شد. اگر هیچ میزبانی در کلاستر با نام میزبان ارائهشده مطابقت نداشته باشد، یا صراحتاً یک نام میزبان خالی مشخص کنید، وظایف انتخابشده اصلاً اجرا نخواهند شد. اگر نام میزبان حذف شود، نام میزبان محلی که توسط gethostname(2) بازگردانده میشود به کار خواهد رفت. استفاده از این گزینه تأثیری بر فایل /etc/crontab و فایلهای موجود در دایرکتوری /etc/cron.d ندارد؛ این فایلها همیشه اجرا میشوند و وابسته به میزبان در نظر گرفته میشوند. برای اطلاعات بیشتر درباره پشتیبانی از خوشهبندی، cron(8) را ببینید.
- -c
- این گزینه تنها در صورتی کاربرد دارد که cron(8) با گزینه -c برای فعالسازی پشتیبانی از خوشهبندی اجرا شده باشد. از این گزینه برای پرسوجو درباره اینکه کدام میزبان در کلاستر در حال حاضر برای اجرای وظایف مشخصشده در فایلهای crontab در دایرکتوری /var/spool/cron (که با استفاده از گزینه -n تنظیم شده) تعیین شده است، استفاده میشود.
- -V
- نسخه برنامه را چاپ کرده و خارج میشود.
هشدارها (CAVEATS)
فایلهای cron.allow و cron.deny نمیتوانند برای محدود کردن اجرای وظایف cron استفاده شوند؛ آنها فقط استفاده از دستور crontab را محدود میکنند. بهویژه، محدود کردن دسترسی به crontab هیچ تأثیری بر crontab موجود یک کاربر ندارد و وظایف آن تا زمانی که crontab حذف نشود به اجرا ادامه خواهند داد.
فایلهای cron.allow و cron.deny باید توسط کاربری که crontab را فراخوانی میکند قابل خواندن باشند. اگر چنین نباشد، فرض میشود که وجود ندارند.
همچنین ببینید (SEE ALSO)
فایلها (FILES)
/etc/cron.allow /etc/cron.deny
استانداردها (STANDARDS)
دستور crontab مطابق با استاندارد IEEE Std1003.2-1992 (``POSIX'') است، با یک استثنا: برای جایگزینی crontab فعلی با دادههای ورودی استاندارد، در صورتی که ورودی استاندارد یک TTY باشد، باید - در خط فرمان مشخص شود. این ساختار دستور جدید با نسخههای قبلی Vixie Cron و همچنین سینتکس کلاسیک SVR3 تفاوت دارد.
عیبیابی (DIAGNOSTICS)
در صورتی که یک crontab را با دستوری نادرست یا معیوب اجرا کنید، یک پیام راهنمای نحوه استفاده نمایش داده میشود.
نویسندگان (AUTHORS)
| 2019-10-29 | cronie |