در CentOS، منطقه زمانی سیستم، هنگام نصب تنظیم می‌شود و پس از آن به راحتی قابل تغییر است.

استفاده از منطقه زمانی صحیح برای بسیاری از کارها و فرآیندهای مرتبط با سیستم بسیار حیاتی است. به عنوان مثال، برنامه cron daemon برای اجرای فرآیندهای خود از منطقه زمانی سیستم استفاده می‌کند و برچسب‌های زمان در فایل‌های گزارش بر اساس منطقه زمانی سیستم خود مقداردهی می‌شوند.

این آموزش، نحوه تنظیم یا تغییر منطقه زمانی را در CentOS 7 توضیح می‌دهد.

 

توجه داشته باشید؛ که برای اینکه بتوانید منطقه زمانی سیستم را تغییر دهید، باید به عنوان root یا کاربر دارای امتیازات sudo وارد سیستم شوید.

مشاهده منطقه زمانی سیستم

در CentOS و سایر توزیع‌های جدید لینوکسی، می‌توانید از دستور timedatectl برای نمایش و تنظیم زمان و منطقه زمانی سیستم استفاده کنید.

timedatectl

خروجی زیر نشان می‌دهد؛ که منطقه زمانی سیستم بر روی UTC تنظیم شده است:

 Local time: Wed 2019-02-06 22:43:42 UTC
  Universal time: Wed 2019-02-06 22:43:42 UTC
        RTC time: Wed 2019-02-06 22:43:42
       Time zone: Etc/UTC (UTC, +0000)
     NTP enabled: no
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

منطقه زمانی سیستم با ارجاع etc/localtime/ به یک شناسه منطقه زمانی باینری در دایرکتوری usr/share/zoneinfo/ پیکربندی می‌شود. بنابراین، گزینه دیگر برای بررسی منطقه زمانی این است که مسیری که etc/localtime/ به آن اشاره می‌کند را با استفاده از دستور ls نشان دهیم:

$ ls -l /etc/localtime

با اجرای این دستور خروجی به صورت زیر نمایش داده می شود:

lrwxrwxrwx. 1 root root 29 Dec 11 09:25 /etc/localtime -> ../usr/share/zoneinfo/Etc/UTC

تغییر منطقه زمانی در CentOS

قبل از تغییر منطقه زمانی، باید نام طولانی منطقه زمانی مورد نظر خود را پیدا کنید. ساختار نامگذاری منطقه زمانی معمولاً از قالب "منطقه / شهر" استفاده می‌کند.

برای لیست کردن تمام مناطق زمانی موجود، می‌توانید فایل‌ها را در دایرکتوری usr/share/zoneinfo/ لیست کنید، یا از دستور timedatectl استفاده نمایید.

$ timedatectl list-timezones

در این‌صورت خروجی به صورت زیر خواهد بود:

...
America/Tijuana
America/Toronto
America/Tortola
America/Vancouver
America/Whitehorse
America/Winnipeg
...

پس از شناسایی منطقه زمانی دقیق مکان مورد نظر خود، دستور زیر را به عنوان کاربر sudo اجرا کنید:

$ sudo timedatectl set-timezone your_time_zone

به عنوان مثال، برای تغییر منطقه زمانی سیستم به America/Toronto دستور را به صورت زیر بازنویسی نمایید:

$ sudo timedatectl set-timezone America/Toronto

یا به عنوان مثالی دیگر، برای تغییر منطقه‌زمانی سیستم به Asia/Tehran دستور زیر را اجرا می‌کنیم:

$ sudo timedatectl set-timezone Asia/Tehran

برای تأیید تغییرات، دستور timedatectl را اجرا کنید:

$ timedatectl

خروجی اجرای این دستور به صورت زیر نمایش داده می شود:

 Local time: Wed 2019-02-06 17:47:10 EST
  Universal time: Wed 2019-02-06 22:47:10 UTC
        RTC time: Wed 2019-02-06 22:47:10
       Time zone: America/Toronto (EST, -0500)
     NTP enabled: no
NTP synchronized: yes
 RTC in local TZ: no
      DST active: no
 Last DST change: DST ended at
                  Sun 2018-11-04 01:59:59 EDT
                  Sun 2018-11-04 01:00:00 EST
 Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2019-03-10 01:59:59 EST
                  Sun 2019-03-10 03:00:00 EDT

 

این مطلب نیز ممکن است برای شما مفید باشد: حل مشکل اختلاف زمان در بوت دوگانه ویندوز و لینوکس

 

تغییر منطقه زمانی با ایجاد یک Symlink (فایل ارجاع دهنده)

اگر نسخه قدیمی CentOS را اجرا می‌کنید و دستور timedatectl در سیستم شما موجود نیست، می‌توانید منطقه زمانی را با استفاده از ارجاع etc/localtime/ به فایل منطقه زمانی در دایرکتوری usr/share/zoneinfo/ تغییر دهید.

فایل etc/localtime/ (فایل ارجاع دهنده) فعلی را حذف کنید:

$ sudo rm -rf /etc/localtime

با استفاده از دستور زیر، منطقه زمانی مورد نظر خود را مشخص کرده و یک فایل ارجاع دهنده ایجاد نمایید:

$ sudo ln -s /usr/share/zoneinfo/America/Toronto /etc/localtime

اکنون می‌توانید با لیست کردن فایل ارجاع دهنده etc/localtime/ یا اجرای دستور date آن را تأیید کنید:

$ date

که در این صورت خروجی به صورت زیر خواهد بود:

Wed Feb  6 17:52:58 EST 2019

 

 

منبع:

linuxize