EQVPS
პანელიდაწყება

როგორ შევცვალოთ სერვერის სახელი და დროის სარტყელი VPS-ზე

გადაარქვით სერვერს სახელი და გადაიყვანეთ მისი საათი თქვენს დროის სარტყელზე Ubuntu-ში, Debian-სა და Windows Server-ში — sudo-ს იმ გაფრთხილების გარეშე, რომელიც მხოლოდ hostnamectl-ის შემდეგ ჩნდება, და ცვლილების შემდეგ 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 სიმბოლოთია შეზღუდული, ამიტომ აქ მოკლე სახელი გამოიყენეთ.

დროის სარტყლისთვის იპოვეთ იდენტიფიკატორი და დააყენეთ. ის მაშინვე მოქმედებს, გადატვირთვის გარეშე:

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

რაკი უკვე შეხვედით, კარგი მომენტია RDP-ის დასაცავად.

რომელი პაკეტი

სერვერის სახელი და დროის სარტყელი არაფერი ღირს, ამიტომ ნებისმიერი პაკეტი გამოდგება: Nano $3/თვე პატარა Linux სერვერისთვის, Windows-Small $11/თვე Windows Server 2022-ისთვის. ყველა პაკეტი VPS გვერდზეა, გადახდა კი USDT-ით, USDC-ით ან ETH-ით ხდება Base, Ethereum ან Polygon ქსელებში.

ხდკ

დააბრუნებს თუ არა 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-სთვის დაწერილი ამოცანები: ახლა ისინი ამ საათზე თქვენი ადგილობრივი დროით შესრულდება.

კომენტარები

ჯერ არ არის კომენტარები. იყავით პირველი.

დატოვეთ კომენტარი

კომენტარები მოდერირდება გამოჩენამდე.