زمانبندی کارها با cron؛ بکاپ و اسکریپتهای تکرارشونده
cron سادهترین راه اجرای منظم بکاپ، پاکسازی و اسکریپتهای نگهداری است؛ در این مقاله toman و لاگ آن را تنظیم میکنید.
آخرین بهروزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی
- زمانبندی کارها با cron؛ بکاپ و اسکریپتهای تکرارشونده
- با crontab -e یک زمانبندی بسازید
- برای زمانبندیهای پیچیده systemd timer بسازید
چرا این موضوع مهم است؟
موضوع Linux یکی از پایههای نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفهجویی در زمان پشتیبانی میشود.
این راهنما با فرض دسترسی مدیریتی (root یا sudo) نوشته شده و مراحل آن روی یک سرور تازه آزمایش شده است.
پیشنیازها
- دسترسی SSH با کاربر root یا کاربر دارای sudo
- Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیعهای مشابه)
- نسخه پشتیبان از فایلها و دیتابیسهای مهم
راهنمای گامبهگام
گام 1 — با crontab -e یک زمانبندی بسازید
با crontab -e یک زمانبندی بسازید. اگر روی چند سرور کار میکنید، این مورد را یکبار روی محیط تست اجرا و سپس روی تولید اعمال کنید.
گام 2 — خروجی اسکریپت را به فایل لاگ هدایت کنید
خروجی اسکریپت را به فایل لاگ هدایت کنید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیشفرض پرهیز کنید.
گام 3 — مسیر مطلق فایلها را استفاده کنید
مسیر مطلق فایلها را استفاده کنید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.
گام 4 — متغیرهای محیطی لازم را در cron تعریف کنید
متغیرهای محیطی لازم را در cron تعریف کنید. این کار را در بازه کمترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.
گام 5 — بعد از ذخیره خروجی را بررسی کنید
بعد از ذخیره خروجی را بررسی کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.
گام 6 — برای زمانبندیهای پیچیده systemd timer بسازید
برای زمانبندیهای پیچیده systemd timer بسازید. پس از اجرا، وضعیت سرویس و لاگها را کنترل کنید؛ تغییر بدون بررسی میتواند خطای پنهان ایجاد کند.
نمونه دستورها
crontab -e
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
crontab -lنکات امنیتی و بهینهسازی
- پیش از هر تغییر بزرگ، نسخه پشتیبان قابل بازیابی تهیه کنید و بازیابی را تست کنید.
- نسخه پکیجها و سیستمعامل را بهروز نگه دارید؛ بسیاری از نفوذها از نسخههای قدیمی شروع میشوند.
- دسترسیها را حداقلی نگه دارید و فقط پورتها و کاربران لازم را باز بگذارید.
خطاهای رایج و راهحل
- اگر تغییرات اعمال نشد، کش مرورگر/برنامه و نیاز به reload یا restart را بررسی کنید.
- اگر مطمئن نیستید، تغییر را در محیط تست تکرار کنید و لاگ کامل را برای پشتیبانی بفرستید.
- اگر تغییرات اعمال نشد، کش مرورگر/برنامه و نیاز به reload یا restart را بررسی کنید.
سؤالات متداول
چطور بفهمم cron اجرا شده است؟
لاگ /var/log/syslog یا فایل خروجی خود اسکریپت را ببینید.
آیا cron در WHMCS هم استفاده میشود؟
بله، WHMCS برای صورتحساب و یادآوریها به cron یا systemd timer نیاز دارد.
میلاد سرور پلنهای اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آیپی اختصاصی و قیمت شفاف ارائه میکند. برای مقایسه همه کشورها فهرست کامل سرورهای بینالملل را ببینید.
جمعبندی
با رعایت این مراحل، سرویس شما پایدارتر و امنتر خواهد بود؛ اما پایش منظم را فراموش نکنید.