تنظیم ساعت ایزابل
رفع مشکل ساعت ایزابل بعد از ریستارت | راهنمای کامل تنظیم تاریخ و زمان Issabel
دستهبندی: آموزش ویپ | VoIP | مرکز تلفن ایزابل
کلیدواژههای اصلی: تنظیم ساعت ایزابل، مشکل ساعت ایزابل بعد از ریستارت، رفع مشکل تاریخ Issabel، همگامسازی زمان ایزابل، adjtime، hwclock، ساعت ایزابل در VMware، تنظیم ساعت ایزابل در ESXi
فهرست مطالب
مشکل ساعت ایزابل بعد از ریستارت — چرا رخ میدهد و چطور رفع میشود؟
یکی از رایجترین مشکلاتی که مدیران شبکه و متخصصان ویپ (VoIP) با آن روبرو میشوند، اشتباه بودن ساعت و تاریخ در سیستم تلفنی ایزابل (Issabel) پس از هر بار ریاستارت است. این مشکل ممکن است بعد از نصب ایزابل 5 هم نمایان شود ؛ از ثبت نادرست تماسها و گزارشهای مکالمه گرفته تا خطا در سیستمهای صف تماس، پیامهای صوتی، و حتی ساعات کاری شرکت و شیفتبندی اپراتورها.
در این مقاله، علت اصلی این مشکل را بهطور کامل توضیح میدهیم، سپس مرحلهبهمرحله راهحل دائمی آن را همراه با دستورات لینوکس ارائه میکنیم. همچنین یک بخش اختصاصی به مشکل ساعت ایزابل روی ماشینهای مجازی VMware و ESXi اختصاص داده شده است.
چرا ساعت ایزابل بعد از ریستارت تغییر میکند؟
ریشه مشکل همگامسازی زمان ایزابل در فایلی کوچک اما تأثیرگذار به نام /etc/adjtime نهفته است.
در سیستمعاملهای لینوکسی (که پایه اصلی Issabel نیز بر اساس CentOS است)، اگر از پروتکل NTP برای همگامسازی ساعت با یک سرور زمان اینترنتی استفاده نشود، این فایل وظیفه نگهداری اختلاف زمانی بین ساعت سختافزاری (BIOS/CMOS) و ساعت سیستمعامل را بر عهده میگیرد. در پردازندههایی که دارای مرجع زمانی قابل اطمینان (مانند TSC در پردازندههای پنتیوم) هستند، این اختلاف ثبت و در هر راهاندازی مجدد اعمال میشود.
مشکل اینجاست: اگر به هر دلیلی ساعت BIOS تغییر کند (قطع برق، تخلیه باتری CMOS، یا در محیطهای مجازیسازی)، فایل adjtime همچنان مقدار اشتباه قدیمی را نگه میدارد و در هر ریاستارت، این خطا دوباره اعمال میشود. نتیجه؟ هر بار که سیستم تلفنی ایزابل بالا میآید، ساعت آن نادرست است.
اهمیت دقت ساعت در Issabel در چند حوزه کلیدی خود را نشان میدهد:
- ثبت لاگ تماسها: زمان دقیق شروع و پایان هر تماس در CDR ذخیره میشود.
- پیغامهای صوتی: زمان دریافت پیام با اشتباه در ساعت، نادرست نمایش داده میشود.
- ساعات کاری و IVR: اگر ایزابل ساعت اشتباهی داشته باشد، منوهای صوتی و هدایت تماس در ساعات نادرست اجرا میشوند.
- گزارشگیری: هیچ گزارش مدیریتی با ساعت نادرست قابل اعتماد نیست.
- ضبط مکالمات ویپ و تحلیل مکالمات : با ساعت و تاریخ نادرست در ایزابل ، زمان فایل های ضبط شده مکالمات voip نامشخص بوده و تحلیل متن مکالمات با زمان و تاریخ اشتباه ، ممکن است پیامدهای غیرقابل جبرانی برای سازمان بوجود آورد .

راهحل کامل: تنظیم ساعت ایزابل — دائمی و گام به گام
پیشنیاز: دسترسی SSH یا کنسول با کاربر root
برای اجرای دستورات زیر، به ترمینال لینوکس سرور ایزابل با دسترسی root نیاز دارید. میتوانید از نرمافزار PuTTY یا هر SSH client دیگری استفاده کنید.
مرحله ۱ — حذف فایل تنظیمات قدیمی adjtime
اولین و مهمترین قدم، پاک کردن فایل adjtime است. این فایل حاوی اختلاف زمانی نادرست است و تا زمانی که حذف نشود، مشکل پابرجاست.
sudo rm /etc/adjtime
با اجرای این دستور، لینوکس دیگر از مقادیر ذخیرهشده قدیمی استفاده نخواهد کرد و در راهاندازی بعدی، از صفر شروع میکند.
نکته: اگر سیستم شما به سرور NTP متصل است، این فایل بهصورت خودکار و درست بازسازی میشود. در غیر این صورت، مراحل بعدی را دنبال کنید.
مرحله ۲ — تنظیم ساعت ایزابل بصورت دستی ( تنظیم تاریخ و ساعت)
حالا باید ساعت و تاریخ دقیق را بهصورت دستی وارد کنیم. فرمت ورودی بهصورت سال-ماه-روز ساعت:دقیقه:ثانیه است:
sudo date -s "2026-06-21 14:30:00"
مقدار داخل کوتیشن را با تاریخ و ساعت واقعی جایگزین کنید. توجه کنید که ساعت را بر اساس منطقه زمانی ایران (UTC+3:30) وارد کنید.
مرحله ۳ — ذخیره ساعت سیستم روی سختافزار ایزابل (BIOS)
در این مرحله، ساعت تازه تنظیمشده سیستمعامل را به ساعت سختافزاری (RTC یا همان ساعت BIOS/CMOS) منتقل میکنیم. دستور --localtime به معنای استفاده از ساعت محلی (نه UTC) است:
sudo hwclock --systohc --localtime
این کار باعث میشود که ساعت روی تراشه CMOS سرور ذخیره شود و حتی پس از قطع برق یا ریاستارت، مقدار صحیح باقی بماند.
تفاوت UTC و localtime: لینوکس معمولاً ساعت BIOS را به فرمت UTC ذخیره میکند، در حالی که ویندوز از localtime استفاده میکند. اگر سرور ایزابل شما فقط لینوکس دارد و با ویندوز dual-boot نیست، استفاده از
--localtimeدر این حالت خاص (بهویژه در سرورهای فیزیکی با تنظیمات BIOS ایرانی) مشکل ساعت ریاستارت را رفع میکند.
مرحله ۴ — همگامسازی معکوس (از BIOS به سیستم) – همگامسازی زمان ایزابل
حالا برای اطمینان از صحت عملیات، ساعت سختافزار را دوباره به سیستمعامل منتقل میکنیم تا هر دو با هم یکسان باشند:
sudo hwclock --hctosys
در این مرحله اگر خروجی خطایی نداشتید، تنظیمات اولیه با موفقیت انجام شده است.
مرحله ۵ — ایجاد اسکریپت استارتآپ برای اجرای خودکار بعد از ریاستارت
برای اینکه بعد از هر بار ریاستارت ایزابل، ساعت بهصورت خودکار از BIOS خوانده شود، باید یک اسکریپت راهاندازی (startup script) ایجاد کنیم. این کار را با فایل rc.local انجام میدهیم:
sudo nano /etc/rc.local
در ویرایشگر nano، قبل از خط exit 0، دستور زیر را اضافه کنید:
hwclock --hctosys
فایل نهایی باید چیزی شبیه به این باشد:
#!/bin/bash
hwclock --hctosys
exit 0
برای ذخیرهسازی: Ctrl+X را بزنید، سپس Y و در نهایت Enter.
مرحله ۶ — قابل اجرا کردن فایل rc.local
فایل rc.local برای اجرا شدن در هنگام بوت سیستم، باید دسترسی اجرایی (executable) داشته باشد:
sudo chmod +x /etc/rc.local
مرحله ۷ — بررسی نهایی وضعیت ساعت
برای تأیید صحت تمام مراحل، وضعیت ساعت سیستم و ساعت سختافزار را بررسی کنید:
ساعت سیستمعامل:
date
ساعت سختافزار (BIOS/CMOS):
sudo hwclock --show
اگر هر دو دستور ساعت یکسانی نشان دادند، رفع مشکل همگامسازی زمان ایزابل با موفقیت انجام شده است. حالا میتوانید سیستم را ریاستارت کرده و مجدداً ساعت را بررسی کنید تا از ماندگاری تنظیمات اطمینان حاصل کنید.

مشکل یک ساعت جلو بودن ساعت در ایزابل (Issabel) پس از تنظیم زمان
یکی از مشکلات رایج مدیران سیستمهای Issabel PBX، یک ساعت جلو بودن ساعت سرور حتی پس از تنظیم صحیح تاریخ و زمان است. در این حالت ممکن است ساعت تماسها در CDR، زمان ضبط مکالمات، گزارشها، زمان ارسال پیامک، لاگهای Asterisk و حتی زمان نمایش رویدادها در پنل ایزابل، یک ساعت بیشتر از زمان واقعی نمایش داده شود. بسیاری از کاربران تصور میکنند مشکل از تنظیم ساعت ایزابل، سرویس NTP یا دستور date است، در حالی که در بیشتر موارد علت اصلی، قدیمی بودن بسته tzdata لینوکس و اعمال اشتباه ساعت تابستانی ایران (DST) است. از سال ۱۴۰۲ قانون تغییر ساعت در ایران حذف شده است، اما نسخههای قدیمی tzdata (مانند 2019b) همچنان ساعت تابستانی را فعال در نظر میگیرند و باعث میشوند زمان سیستم بهصورت خودکار یک ساعت جلو برود.
راهحل رفع مشکل ساعت ایزابل
برای رفع این مشکل ابتدا نسخه بسته tzdata را با دستور rpm -q tzdata بررسی کنید. اگر نسخه قدیمی باشد، آن را به آخرین نسخه موجود (مانند 2024a یا جدیدتر) بهروزرسانی کنید. پس از بهروزرسانی، منطقه زمانی را مجدداً روی Asia/Tehran تنظیم کرده و سرویس chronyd یا NTP را ریاستارت کنید. سپس با دستور timedatectl بررسی کنید که مقدار Time zone برابر Asia/Tehran (+0330) باشد و عبارت DST active دیگر مقدار yes را نمایش ندهد. همچنین توصیه میشود ساعت سختافزار (RTC) روی UTC تنظیم شود تا در آینده با تغییرات منطقه زمانی یا همگامسازی زمان، ساعت سرور دچار خطا نشود. با انجام این مراحل، مشکل یک ساعت جلو بودن ساعت ایزابل، زمان تماسها، گزارشهای CDR، ضبط مکالمات و سایر رویدادهای سیستم بهطور کامل برطرف خواهد شد.
مراحل رفع مشکل یک ساعت جلو بودن ساعت ایزابل (Issabel)
ابتدا نسخه بسته tzdata را بررسی کنید. اگر نسخهای قدیمی مانند 2019b روی سیستم نصب باشد، به احتمال زیاد قوانین قدیمی ساعت تابستانی (DST) را اعمال میکند.
rpm -q tzdataدر صورت قدیمی بودن نسخه، بسته tzdata را به آخرین نسخه موجود بهروزرسانی کنید:
yum update tzdataپس از اتمام بهروزرسانی، منطقه زمانی سرور را مجدداً روی Asia/Tehran تنظیم کنید:
timedatectl set-timezone Asia/Tehranسپس سرویس همگامسازی زمان (Chrony) را ریاستارت کنید تا تنظیمات جدید اعمال شوند:
systemctl restart chronydدر ادامه وضعیت ساعت، منطقه زمانی و وضعیت DST را بررسی کنید:
timedatectlاگر همه چیز بهدرستی انجام شده باشد، خروجی باید مشابه زیر باشد:
Time zone: Asia/Tehran (+0330, +0330)
DST active: n/aدر صورتی که پس از بهروزرسانی همچنان ساعت نادرست بود، میتوانید یکبار ساعت سیستم را بهصورت دستی تنظیم کرده و سپس آن را در ساعت سختافزار (RTC) ذخیره کنید:
timedatectl set-ntp false
date -s "2026-07-18 11:35:00"
hwclock --systohc
timedatectl set-ntp trueبرای جلوگیری از بروز مشکلات مربوط به تغییر منطقه زمانی در آینده، پیشنهاد میشود ساعت سختافزار روی UTC تنظیم شود:
timedatectl set-local-rtc 0
hwclock --systohc --utcپس از اجرا یک بار دیگر وضعیت زمان را بررسی کنید:
timedatectlدر صورتی که عبارتهای زیر را مشاهده کردید، مشکل بهطور کامل برطرف شده است:
Time zone: Asia/Tehran (+0330, +0330)
DST active: n/a
RTC in local TZ: noبا انجام مراحل فوق، مشکل یک ساعت جلو بودن ساعت ایزابل، اشتباه بودن زمان تماسها در CDR، اختلال در زمان ضبط مکالمات، زمان لاگهای Asterisk و سایر گزارشهای مرتبط با زمان بهطور کامل برطرف خواهد شد. این روش برای سرورهای Issabel 4، Issabel 5، Asterisk و سیستمعامل CentOS 7 که از نسخههای قدیمی tzdata استفاده میکنند، کاملاً کاربردی و تستشده است.
مشکل خاص: تنظیم ساعت ایزابل در ماشینهای مجازی (VMware و ESXi)
اگر Issabel شما روی یک Virtual Machine در VMware Workstation یا VMware ESXi نصب شده، مشکل ساعت ممکن است ماهیت متفاوتی داشته باشد و نیاز به رویکرد جداگانهای داشته باشد.
چرا ماشینهای مجازی مشکل بیشتری دارند؟
در محیطهای مجازیسازی، ماشین مجازی دسترسی مستقیم به سختافزار واقعی ندارد. ساعت RTC (Real-Time Clock) که در یک سرور فیزیکی توسط باتری CMOS نگهداری میشود، در محیط مجازی توسط Hypervisor شبیهسازی میشود. این موضوع باعث میشود:
- Drift زمانی (انحراف تدریجی ساعت) در ماشینهای مجازی بسیار بیشتر از سرورهای فیزیکی باشد.
- هنگام Suspend و Resume شدن VM، ساعت آن میتواند بهشدت جابجا شود.
- هنگام Migration (جابجایی VM بین هاستهای ESXi)، اگر ساعت هاستها با هم تفاوت داشته باشند، ساعت VM دچار خطا میشود.
- قطع و وصل برق هاست فیزیکی، مستقیماً روی ساعت تمام VMهای آن تأثیر میگذارد.
راهحل ۱ — فعالسازی VMware Tools و Time Sync
اگر VMware Tools روی VM ایزابل نصب است، میتوانید قابلیت همگامسازی زمان (Time Synchronization) آن را فعال کنید. این قابلیت باعث میشود ساعت ماشین مجازی بهطور خودکار با ساعت هاست ESXi هماهنگ شود.
از طریق vSphere Client:
- ماشین مجازی ایزابل را در vSphere Client انتخاب کنید.
- وارد Edit Settings شوید.
- به تب VM Options بروید.
- قسمت VMware Tools را باز کنید.
- گزینه Synchronize guest time with host را فعال کنید.
- تنظیمات را ذخیره کرده و VM را ریاستارت کنید.
نکته مهم: برای اینکه این روش کار کند، ابتدا باید ساعت هاست ESXi خودش دقیق باشد!
راهحل ۲ — تنظیم NTP روی هاست ESXi
برای تنظیم ساعت هاست ESXi از طریق NTP:
- وارد vSphere Client شوید.
- هاست ESXi را انتخاب کنید.
- به Configure > System > Time Configuration بروید.
- روی Edit کلیک کنید.
- گزینه Use Network Time Protocol (NTP) را انتخاب کنید.
- آدرس سرور NTP (مثلاً
pool.ntp.orgیا یک NTP داخلی) را وارد کنید. - وضعیت سرویس NTP را روی Start and stop with host تنظیم کنید.
- تغییرات را ذخیره کنید.
راهحل ۳ — غیرفعالسازی Time Sync VMware و استفاده از NTP داخلی ایزابل
در برخی سناریوها، بهترین رویکرد این است که Time Sync مربوط به VMware را غیرفعال کنید و بهجای آن، سرویس NTP داخل خود Issabel را فعال کنید. این روش به خصوص زمانی مفید است که میخواهید ایزابل مستقیماً با یک سرور NTP موثق همگام باشد.
برای تنظیم NTP در ایزابل از طریق پنل وب:
- وارد پنل مدیریت ایزابل شوید.
- به Admin > System Admin بروید.
- بخش NTP Server را پیدا کنید.
- آدرس سرور NTP مورد نظر را وارد کنید.
- تغییرات را ذخیره کنید.
یا از طریق خط فرمان لینوکس:
# نصب ntp اگر نصب نیست:
yum install ntp -y
# فعالسازی سرویس ntpd:
systemctl enable ntpd
systemctl start ntpd
# بررسی وضعیت:
ntpq -p
مشکل رایج بعد از قطعی برق در VMware
یکی از چالشهای مهم در محیط مجازی این است که پس از قطعی ناگهانی برق، ساعت VM در همان لحظه قطعی «یخ میزند» و بعد از بالا آمدن مجدد، از همان نقطه ادامه میدهد. در این حالت، راهحلهای بالا (خصوصاً فعال بودن VMware Time Sync یا NTP) مشکل را در اولین همگامسازی بعدی رفع میکنند.
اگر پس از قطعی برق نیاز به تنظیم فوری ساعت دارید، همان دستورات مراحل ۲ تا ۴ این مقاله را اجرا کنید:
sudo date -s "YYYY-MM-DD HH:MM:SS"
sudo hwclock --systohc --localtime
sudo hwclock --hctosys
خلاصه — جدول سریع رفع مشکل ساعت ایزابل
| مرحله | دستور | هدف |
|---|---|---|
| ۱ | sudo rm /etc/adjtime | حذف تنظیمات اشتباه قدیمی |
| ۲ | sudo date -s "YYYY-MM-DD HH:MM:SS" | تنظیم دستی ساعت سیستم |
| ۳ | sudo hwclock --systohc --localtime | ذخیره ساعت روی BIOS |
| ۴ | sudo hwclock --hctosys | بارگذاری ساعت BIOS به سیستم |
| ۵ | ویرایش /etc/rc.local | اجرای خودکار بعد از ریاستارت |
| ۶ | sudo chmod +x /etc/rc.local | فعالسازی اسکریپت استارتآپ |
| ۷ | date و sudo hwclock --show | بررسی نهایی صحت تنظیمات |
نکات تکمیلی و عیبیابی
اگر خطای «System time can not be changed» دیدید
برخی از نسخههای ایزابل دارای یک باگ هستند که مانع تغییر ساعت از طریق پنل وب میشود و پیغام System time can not be changed – Option –datetime: Invalid datetime نمایش میدهد. برای رفع این مشکل باید فایل dateconfig واقع در مسیر /usr/share/issabel/privileged/ ویرایش شود. این تغییر کدنویسی نیاز به دسترسی به سورسکد ایزابل دارد و بهتر است با استفاده از نرمافزار WinSCP انجام شود.
باتری CMOS در سرورهای فیزیکی ایزابل
اگر در سرور فیزیکی (غیر مجازی) ساعت مکرراً ریست میشود، احتمال بالایی وجود دارد که باتری CMOS تمام شده باشد. این باتری معمولاً از نوع CR2032 (سکهای ۳ ولتی) است و تعویض آن ارزان و آسان است. پس از تعویض باتری، یک بار مراحل تنظیم ساعت در این مقاله را اجرا کنید.
منطقه زمانی (Timezone) ایران
برای تنظیم منطقه زمانی ایران در لینوکس (UTC+3:30):
timedatectl set-timezone Asia/Tehran
و برای بررسی وضعیت کامل زمان:
timedatectl statusمشکل در اعمال تغییر ساعت و تاریخ از طریق وب ایزابل
اگر پس از تنظیم تاریخ و ساعت سیستم از طریق پنل وبایزابل، با پیغام زیر مواجه شدید:System time can not be changed – Option –datetime: Invalid datetime.
به این معنی است که تغییرات اعمال نشده و خطایی در پردازش ورودی رخ داده است.
برای برطرف کردن این مشکل، مراحل زیر را به ترتیب انجام دهید:
۱. با استفاده از نرمافزار WinSCP (یا هر کلاینت SFTP دیگر) به سرور ایزابل خود متصل شوید.
نام کاربری: root
رمز عبور: (رمز ریشه سرور)
۲. پس از اتصال، به مسیر زیر بروید:/usr/share/issabel/privileged/
۳. فایل dateconfig را با یک ویرایشگر متن (مانند Notepad++ یا ویرایشگر داخلی WinSCP) باز کنید.
۴. در خط شماره ۷۰، کد زیر را پیدا کنید:
if (!preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', $option[1]))
و آن را به این شکل تغییر دهید:
if (!preg_match('/^\d{4}-\d{2}-\d{2}/', $option[1]))
۵. سپس به خط شماره ۸۶ بروید که شامل این کد است:
case '--datetime': $sDatetime = $option[1] break;
و آن را به صورت زیر اصلاح کنید:
case '--datetime': $sDatetime = $option[1]." ".$opt[1][0]; break;
۶. فایل را ذخیره کرده و از ویرایشگر خارج شوید.پس از انجام این تغییرات، دفعه بعد که از طریق وبایزابل تاریخ یا ساعت را تنظیم کنید، خطای قبلی نمایش داده نخواهد شد و تغییرات شما بهدرستی روی سیستم اعمال میشود.
جمعبندی
مشکل تنظیم نشدن ساعت ایزابل بعد از ریستارت یکی از معمولترین چالشهای تیمهای فنی VoIP در ایران است. ریشه این مشکل در فایل /etc/adjtime و عدم همگامسازی صحیح بین ساعت نرمافزاری و سختافزاری (BIOS) است. با پیروی از ۷ مرحله ساده این راهنما، میتوانید این مشکل را بهصورت دائمی رفع کنید.
برای کسانی که ایزابل را روی VMware یا ESXi اجرا میکنند، علاوه بر مراحل بالا، فعالسازی Time Synchronization در VMware Tools یا تنظیم NTP در سطح هاست ESXi نیز ضروری است.
اگر این آموزش برایتان مفید بود، لطفاً آن را با همکارانتان به اشتراک بگذارید. برای هرگونه سؤال و مشکل فنی میتوانید در بخش نظرات مطرح کنید.
برچسبها: #ایزابل #Issabel #تنظیم_ساعت_ایزابل #رفع_مشکل_تاریخ_ایزابل #ساعت_ایزابل #VMware #ESXi #مرکز_تلفن #ویپ #VoIP #hwclock #adjtime #NTP #ماشین_مجازی #لینوکس


بدون دیدگاه