خیلی از سرور های لینوکسی ، بعد از اینکه ساعت کشور بهم ریخت ، هنوز مشکل دارند و ساعت درون سرور به درستی ، نمایش داده نمیشود ؛ برای حل این مشکل ، روش زیر را دنبال کنید.
در این آموزش که از مطلب Fixing Timezone DB کمک گرفته شده است، می خواهیم به شما آپدیت منطقه زمانی در لینوکس را یاد بدیم. پایگاه داده منطقه زمانی اغلب tz یا zoneinfo نامیده می شود. گاهی اوقات پایگاه داده منطقه زمانی در لینوکس اشتباه می کند یا پس از هر تغییری در منطقه زمانی، باید به صورت دستی منطقه زمانی را به روز کنید یا tzdata را به روز کنید.
می توانید فایل های zoneinfo را در لینوکس خود به روز کنید. برای این کار می توانید بسته tzdata را روی سرور لینوکس خود نصب و به روز کنید و فایل های zoneinfo را تعمیر کنید.
چگونه منطقه زمانی را در لینوکس به روز کنیم؟
برای بروزرسانی فایلهای zoneinfo، باید به عنوان کاربر روت یا غیر روت با دسترسی sudo به سرور خود دسترسی داشته باشید.
مرحله 1 – نصب و به روز رسانی tzdata در Centos / AlmaLinux / RHEL
در این مرحله، میتوانید از YUM و DNF برای نصب بسته tzdata استفاده کنید. ابتدا آپدیت سیستم را روی لینوکس اجرا کنید:
برای سیستم عامل های لینوکس CenOS7 از این دستور استفاده کنید
# sudo yum update
در صورتی که از آلمالینوکس 8 یا 9 ، سنتوس 8 ، راکی لینوکس 8 و یا نسخه 9 استفاده میکنید دستورات زیر را وارد کنید.
# sudo dnf update #centos 8, AlmaLinux 8,9, RHEL 8,9
سپس، از دستور زیر برای نصب بسته tzdata برای به روز رسانی DB منطقه زمانی استفاده کنید:
دستور مورد نیاز برای CentOS 7 به شکل زیر خواد بود.
# sudo yum install tzdata
همچنین در صورتی که از نسخه های 8 و یا 9 خانواده RHEL مانند آلمالینوکس و یا راکی لینوکس استفاده میکنید دستورات زیر را وارد کنید.
# sudo dnf install tzdata
اگر بسته های tzdata در سیستم لینوکس شما موجود است، باید tzdata را در سرور لینوکس خود به روز کنید:
دستور مورد نیاز برای سنتوس 7:
# sudo yum update tzdata
دستورات مورد نیاز برای لینوکس نسخه سنتوس 8 و 9 ؛ آلمالینوکس 8 و 9 و موارد مشابه دستور زیر را وارد کنید.
# sudo dnf update tzdata
مرحله 2 – tzdata را در اوبونتو / دبیان نصب و به روز کنید
اگر از توزیع های مبتنی بر دبیان استفاده می کنید، می توانید از مدیر بسته apt برای نصب و به روز رسانی tzdata در سرور خود استفاده کنید.
ابتدا به روز رسانی سیستم را روی لینوکس دبیان یا اوبونتو اجرا کنید:
sudo apt update
سپس از دستور زیر برای نصب پکیج tzdata استفاده کنید:
sudo apt install tzdata
اگر بسته های tzdata در سیستم لینوکس شما موجود است، باید tzdata را در سرور لینوکس خود به روز کنید:
sudo apt update tzdata
مرحله 3 – فایل های zoneinfo را به صورت دستی در لینوکس به روز کنید
در این مرحله، باید به صفحه وبسایت دیتابیس منطقه زمانی مراجعه کنید و با استفاده از دستور wget زیر آخرین بسته tzdata را دریافت کنید:
sudo wget https://data.iana.org/time-zones/releases/tzdata2023c.tar.gz
سپس فایل دانلود شده خود را با دستور زیر استخراج کنید:
sudo tar -xvzf tzdata2023c.tar.gz
دستور zic یک برنامه لینوکس است که متن حاوی منطقه زمانی را از یک فایل می خواند و بر اساس دستور و منطقه زمانی مشخص شده، تبدیل زمانی صحیح را ایجاد می کند.
اکنون باید یک فایل بر اساس منطقه زمانی خود کامپایل کنید. به عنوان مثال، اگر منطقه زمانی شما EDT است، نام فایل شما آمریکای شمالی است. بنابراین، برای کامپایل آن، نام آن را مانند دستور زیر به zic اضافه کنید:
sudo zic -d zoneinfo northamerica
سپس، به دایرکتوری zoneinfo خود بروید:
cd zoneinfo
بعد، فایل را در مسیر با منطقه زمانی خود کپی کنید. برای این کار دستور زیر را اجرا کنید:
sudo cp -r * /usr/share/zoneinfo/
اکنون می توانید آزمایش کنید که تاریخ ها و زمان های مناسب در فایل های zoneinfo شما در سرور لینوکس شما یافت می شود. مثلا:
zdump -v America/Chicago | grep 2009
خروجی :
America/Chicago Sun Mar 8 07:59:59 2009 UT = Sun Mar 8 01:59:59 2009 CST isdst=0 gmtoff=-21600
America/Chicago Sun Mar 8 08:00:00 2009 UT = Sun Mar 8 03:00:00 2009 CDT isdst=1 gmtoff=-18000
America/Chicago Sun Nov 1 06:59:59 2009 UT = Sun Nov 1 01:59:59 2009 CDT isdst=1 gmtoff=-18000
America/Chicago Sun Nov 1 07:00:00 2009 UT = Sun Nov 1 01:00:00 2009 CST isdst=0 gmtoff=-21600
این ، فایلهای zoneinfo را برای تغییرات DST 2009 پیدا میکند.
سپس، به سادگی تاریخ را از خط فرمان اجرا کنید و بررسی کنید که تاریخ و زمان صحیح گزارش شده باشد.
خلاصه از مطلب:
در این مطلب که از سایت Orcacore بهره برداری شده است، شما توانستید به واسطه دستورات ذکر شده در صورتی که زمان سرور لینوکسی شما بهم ریخته و دلیل آن اشتباه بودن و عدم آپدیت Timezone است. مشکل را بسادگی برطرف کنید.
امیدوارم این مطلب که نوشته شد برای شما مفید واقع شده باشد.