EQVPS

VPS-এ হোস্টনেম আর টাইমজোন কীভাবে বদলাবেন

Ubuntu, Debian আর Windows Server-এ সার্ভারের নাম বদলান এবং ঘড়ি নিজের টাইমজোনে আনুন, শুধু hostnamectl-এর পরে আসা sudo সতর্কবার্তা ছাড়াই, আর বদলের পরে cron, লগ ও সময় সিঙ্ক যাচাই করে। প্রতিটি ধাপ আমাদের ইমেজে পরীক্ষিত।

নতুন সার্ভারের নাম সেটাই, যা আপনি অর্ডারের সময় লিখেছিলেন, আর তার ঘড়ি চলে UTC-তে। দুটোই সহজে বদলানো যায়। নাম বদলানোয় একটা ফাঁদ আছে: সাধারণ কমান্ডটি /etc/hosts-এ একটি পুরোনো লাইন রেখে দেয়, আর Ubuntu-তে sudo প্রতিটি কমান্ডের আগে সেটি নিয়ে অভিযোগ করে। এই গাইড Ubuntu ও Debian-এ দুটোই ঠিক করে এবং Windows Server-এর কমান্ডও দেখায়। প্রতিটি ধাপ আমরা আমাদের ইমেজে চালিয়েছি।

আপনার sudo অধিকারসহ একজন ব্যবহারকারী লাগবে। Ubuntu সেটআপ গাইড একজন তৈরি করে।

1. বর্তমান নাম আর সময় দেখুন

hostnamectl
timedatectl

আমাদের নতুন Ubuntu 24.04 সার্ভার স্থায়ী হোস্টনেম হিসেবে অর্ডারের নামটি দেখিয়েছে, সঙ্গে Time zone: Etc/UTC, System clock synchronized: yes আর NTP service: active। Debian 12 ও 13-এও একই। ঘড়ির সিঙ্ক আগে থেকেই চলছে, তাই NTP ইনস্টল করতে হবে না।

2. হোস্টনেম বদলান

একটি ছোট নাম বেছে নিন, অথবা আপনার নিয়ন্ত্রিত DNS রেকর্ডের সঙ্গে মেলাতে হলে পুরো নাম, যেমন web1.example.com:

sudo hostnamectl set-hostname web1.example.com

নাম সঙ্গে সঙ্গে বদলায়, কিন্তু /etc/hosts এখনো 127.0.1.1-কে পুরোনো নামের সঙ্গে জুড়ে রাখে। Ubuntu-তে এটা সঙ্গে সঙ্গেই দেখা গেল:

sudo: unable to resolve host web1.example.com: No address associated with hostname

hostname -f-ও একইভাবে ব্যর্থ হলো। Debian অন্য পথে নামটি খুঁজে পেয়েছে এবং সতর্কবার্তা দেখায়নি, কিন্তু তার /etc/hosts-ও একই রকম পুরোনো ছিল। দুটোতেই ফাইলটি ঠিক করুন:

sudo sed -i 's/^127\.0\.1\.1 .*/127.0.1.1 web1.example.com web1/' /etc/hosts
grep 127.0.1.1 /etc/hosts
hostname -f

এরপর sudo চুপ হয়ে গেল, hostname -f দেখাল web1.example.com, আর hostname -s দেখাল web1।

/etc/hosts-এর ওপরের মন্তব্য বলে, ফাইলটি cloud-init দেখাশোনা করে এবং আপনার পরিবর্তন হারিয়ে যেতে পারে। আমাদের ইমেজে cloud-init এটি শুধু সার্ভারের প্রথম বুটে লেখে। আমরা রিবুট করেছি, তারপর cloud-init-কে পরের বুটটি নতুন ইনস্ট্যান্স হিসেবে ধরিয়েছি। নাম আর /etc/hosts-এ আমাদের লাইন দুবারই টিকে ছিল।

হোস্টনেম শুধু আপনার সার্ভারেই থাকে। অন্য মেশিনকে যদি এই নামে পৌঁছাতে হয়, একটি DNS রেকর্ডও যোগ করুন: ডোমেইনকে VPS-এর দিকে নির্দেশ করা এটি ব্যাখ্যা করে। মেইল সার্ভারের জন্য রিভার্স রেকর্ডও গুরুত্বপূর্ণ: রিভার্স DNS সেট করা দেখুন।

3. টাইমজোন বদলান

জোনের তালিকা দেখে নিজেরটি বেছে নিন। আমাদের সার্ভারে 497টি ছিল:

timedatectl list-timezones | grep -i tokyo
sudo timedatectl set-timezone Asia/Tokyo
timedatectl

ঘড়ি নিজে সরে না। বদলায় শুধু সময় দেখানোর ধরন আর স্থানীয় সময়সূচি পড়ার ধরন। UTC থেকে Asia/Tokyo-তে যাওয়ার পরে আমরা যা দেখেছি:

কীবদলের পরে
date, journalctlসঙ্গে সঙ্গে টোকিও সময়
cronসঙ্গে সঙ্গে টোকিও সময়: 09:48-এ রাখা কাজ 09:48:01 JST-তে চলেছে, রিস্টার্ট ছাড়া
/var/log/syslog (Ubuntu)rsyslog রিস্টার্ট না হওয়া পর্যন্ত UTC সময় লিখেছে
/etc/timezone (Ubuntu)তখনো Etc/UTC

তাই লগ সার্ভিস আর দীর্ঘক্ষণ চলা যেকোনো কিছু যা সময় লেখে, যেমন আপনার অ্যাপ, রিস্টার্ট করুন:

sudo systemctl restart rsyslog

Debian 12 ও 13 rsyslog ইনস্টল করে না। তাদের লগ শুধু journal-এ থাকে, যা নিজে থেকেই নতুন জোন মেনে চলে।

কিছু পুরোনো প্রোগ্রাম সিস্টেম সেটিংয়ের বদলে /etc/timezone থেকে জোন পড়ে। তাদের কোনোটি যদি এখনো UTC দেখায়, সেখানে একই নাম লিখে প্রোগ্রামটি রিস্টার্ট করুন:

echo Asia/Tokyo | sudo tee /etc/timezone

বদলানোর আগে আপনার crontab দেখে নিন। 03:00 UTC ধরে লেখা 0 3 * * * লাইনটি এখন টোকিও সময় 03:00-এ চলবে, অর্থাৎ আসল সময়ে নয় ঘণ্টা আগে।

4. Windows Server

Windows Server 2022-এ PowerShell অ্যাডমিনিস্ট্রেটর হিসেবে খুলুন। নাম বদলাতে রিস্টার্ট লাগে:

Rename-Computer -NewName web1 -Restart

Windows-এ কম্পিউটারের নাম সর্বোচ্চ 15 অক্ষরের হতে পারে, তাই এখানে ছোট নামটি ব্যবহার করুন।

টাইমজোনের জন্য ID খুঁজে সেট করুন। এটি রিস্টার্ট ছাড়াই সঙ্গে সঙ্গে কার্যকর হয়:

Get-TimeZone -ListAvailable | Where-Object Id -like '*Tokyo*'
Set-TimeZone -Id 'Tokyo Standard Time'
Get-TimeZone

যেহেতু লগ ইন করেই ফেলেছেন, RDP সুরক্ষিত করার এটাই ভালো সময়।

কোন প্ল্যান

হোস্টনেম আর টাইমজোনে কোনো খরচ নেই, তাই যেকোনো প্ল্যানই চলবে: ছোট Linux সার্ভারের জন্য Nano মাসে $3, Windows Server 2022-এর জন্য Windows-Small মাসে $11। সব প্ল্যান VPS পেজে আছে, আর পেমেন্ট হয় Base, Ethereum বা Polygon নেটওয়ার্কে USDT, USDC বা ETH-এ।

FAQ

রিবুটের পরে cloud-init কি পুরোনো নাম ফিরিয়ে আনবে?

আমাদের ইমেজে আনবে না। আমরা hostnamectl দিয়ে নতুন নাম দিয়ে রিবুট করেছি, তারপর cloud-init-কে পরের বুটটি সম্পূর্ণ নতুন ইনস্ট্যান্স হিসেবে ধরতে বাধ্য করেছি। দুবারই নাম থেকে গেছে, /etc/hosts-এ আমাদের পরিবর্তনও। আবার ইনস্টল করলে মূল নামসহ নতুন সিস্টেম পাবেন।

নাম বদলের পরে sudo কেন «unable to resolve host» লেখে?

hostnamectl নাম বদলায়, কিন্তু /etc/hosts বদলায় না, যেখানে 127.0.1.1 এখনো পুরোনো নাম দেখায়। Ubuntu-তে তখন sudo প্রতিটি কমান্ডের আগে «unable to resolve host» লেখে। 127.0.1.1 লাইনে পুরোনো নামের জায়গায় নতুন নাম দিন, সতর্কবার্তা চলে যাবে।

আমার সার্ভার UTC-তে চলবে নাকি আমার স্থানীয় সময়ে?

UTC বেশি নিরাপদ ডিফল্ট: বিভিন্ন সার্ভারের লগের সময় মিলে যায় এবং ডেলাইট সেভিংয়ে সময় লাফায় না। cron-এর কাজ আর লগের সময় নিজের সময়ে পড়তে চাইলে নিজের জোনে যান। দুটোই কাজ করে, আর যখন খুশি আবার বদলাতে পারবেন।

NTP কি সেট করতে হবে?

না। আমাদের Ubuntu ও Debian ইমেজ প্রথম বুট থেকেই systemd-timesyncd দিয়ে ঘড়ি সিঙ্ক রাখে। timedatectl চালিয়ে «System clock synchronized: yes» দেখুন।

টাইমজোন বদলালে কি আমার cron কাজ নষ্ট হবে?

cron নতুন জোন সঙ্গে সঙ্গে ব্যবহার করে। আমাদের Ubuntu 24.04 সার্ভারে টোকিও সময় 09:48-এ রাখা একটি কাজ cron রিস্টার্ট ছাড়াই টোকিও সময় 09:48:01-এ চলেছে। তবে UTC ধরে লেখা কাজগুলো দেখে নিন: এখন সেগুলো আপনার স্থানীয় সময়ের ওই ঘণ্টায় চলবে।

মন্তব্য

এখনো কোনো মন্তব্য নেই। প্রথম হোন।

একটি মন্তব্য দিন

মন্তব্য প্রকাশের আগে মডারেট করা হয়।