Crontab کاربری (crontab -e) در مقابل Cron سیستمی (/etc/cron.d و /etc/crontab)
Crontab کاربری با دستور crontab -e ویرایش میشود و همیشه با دسترسی همان کاربر اجرا میشود، در حالی که فایلهای /etc/crontab و /etc/cron.d/* سطح سیستم هستند، ستون اضافه برای مشخص کردن کاربر اجراکننده دارند و معمولاً توسط پکیجها یا مدیر سیستم برای وظایف سراسری استفاده میشوند.
| ویژگی | Crontab کاربری (crontab -e) | Cron سیستمی (/etc/cron.d و /etc/crontab) |
|---|---|---|
| محل ذخیره | /var/spool/cron | /etc/crontab، /etc/cron.d/ |
| ستون کاربر اجراکننده | ندارد | دارد |
| نیاز به دسترسی root | خیر | معمولاً بله |
کِی از Crontab کاربری (crontab -e) استفاده کنیم؟
وقتی میخواهید یک وظیفه زمانبندیشده شخصی (مثل بکاپ پوشه خودتان) بدون نیاز به دسترسی root تعریف کنید.
کِی از Cron سیستمی (/etc/cron.d و /etc/crontab) استفاده کنیم؟
وقتی یک بسته نصبشده یا اسکریپت مدیریتی نیاز دارد با کاربر مشخصی (مثلاً www-data) اجرا شود یا بخواهید تنظیمات را در کنترل نسخه (Git) نگه دارید.
مثال Crontab کاربری (crontab -e)
# ویرایش crontab کاربر فعلی
crontab -e
# هر روز ساعت ۲ بامداد
0 2 * * * /home/user/backup.sh
مثال Cron سیستمی (/etc/cron.d و /etc/crontab)
# /etc/cron.d/myapp — نیازمند ستون کاربر
0 3 * * * www-data /usr/bin/php /var/www/cleanup.php
اشتباه رایج
اشتباه رایج نوشتن نام کاربر در crontab شخصی است؛ در crontab -e نباید ستون کاربر اضافه شود، این ستون فقط در فایلهای سیستمی مثل /etc/crontab و /etc/cron.d لازم است و نبودش باعث خطای اجرا میشود.
جمعبندی
برای وظایف شخصی از crontab -e و برای وظایف سراسری سیستم یا بستههای نصبشده از فایلهای cron سیستمی با ستون کاربر استفاده کنید.
