Debian системийн цаг. Ubuntu эсвэл Debian дээрх буруу цаг - NTP цагийн синхрончлолтой холбоотой асуудлууд

Гэр / Хатуу дискүүд

Компьютер дээрх яг цаг нь зөвхөн огноо, цагийг шалгахад төдийгүй бусад олон чухал ажлыг гүйцэтгэдэг. Жишээлбэл, тохиргоон дотроос 19хх оныг зааж өгснөөр цагаа хэдэн цагаар ухрааж эсвэл буцаад үзээрэй. Одоо энэ огноотой google.com руу очно уу. Та бүрэн сүйрэл болно.

Корпорацийн орчинд буруу тохируулсан цаг нь бусад олон алдааг үүсгэж болно: хэрэглэгч системд нэвтрэлт таних чадваргүй болохоос эхлээд... гунигтай зүйлийн талаар ярихаа больё.

Огноо, цагийг тохируулах хэд хэдэн арга байдаг. Үүнийг санаарай энэ үйл явцсистемийн тохиргоонд нөлөөлдөг тул root хэрэглэгчийн эрхийг шаарддаг.

Арга №1

Энэ бол хамгийн энгийн арга юм. Эхлэгчдэд хамгийн тохиромжтой. Тохиргоог псевдографик горимд шидтэнээр дамжуулан гүйцэтгэдэг.

Dpkg-tzdata-г дахин тохируулах

Арга №2

1-р аргатай бараг адилхан. Энгийн бөгөөд тохиромжтой, гэхдээ энэ удаад зөвхөн текст горимд байна. Та шидтэний зааврыг дагахад л хангалттай

Арга №3

Системчилсэн хэрэгслүүдийн нэг

Timedatectl тогтоосон цагийн бүс<название зоны>

Боломжтой бүсүүдийг харах

Timedatectl жагсаалт-цагийн бүс

Арга №4

Ntpdate хэрэгслийг ашиглаж байна. Өгөгдмөл энэ хэрэгсэлсуулгаагүй байна.

Ntp ntpdate програмыг суулгана уу

/etc/ntp.conf тохиргооны файлд ntp сервер нэмээд, сангаар эхэлсэн мөрүүдийг олоорой. Энэ man ntp.conf файлын синтаксийн талаарх дэлгэрэнгүй мэдээллийг

Шинэчлэхийн тулд сүлжээний цагийн үйлчилгээг зогсооцгооё

Үйлчилгээ ntp зогсолт

Ntp серверээс өгөгдөл хүлээн авч байна

Ntpdate -s<адрес ntp-сервера>

Үйлчилгээг буцааж эхлүүлж байна

Үйлчилгээ ntp эхлэх

Арга №5

Гараар тохируулах. Шаардлагатай цагийн бүсийг /etc/timezone файлд бичнэ үү, жишээ нь Европ/Москва

Echo Europe/Moscow > /etc/timezone

Бид цагийн бүсийн өгөгдлийг дарж бичдэг.

Ln -sf /usr/share/zoneinfo/Европ/Москва /etc/localtime

Ntp серверээс өгөгдөл хүлээн авч байна

|

Цагийг зөв тогтоох нь олон хүний ​​зөв үйл ажиллагааны маш чухал тал юм орчин үеийн хөтөлбөрүүд. Хугацаа буруу байснаас сервер дээр алдаа гарч, өгөгдөл эвдэрч болзошгүй (жишээлбэл, мэдээллийн баазыг шинэчлэх эсвэл бүртгэх үед).

Debian 9-д цагийн синхрончлолыг суулгасан бөгөөд анхдагчаар идэвхжүүлдэг; Энэ нь ntp багцаар хангагдсан стандарт ntpd серверээр зохицуулагддаг. Энэхүү гарын авлага нь танд танилцуулах болно үндсэн тушаалуудЦагийн менежментийн хувьд ntpd-ийн статусыг шалгах болон бусад сүлжээний цагийн үйлчилгээг хэрхэн суулгахыг танд заах болно.

Шаардлага

Ажиллахын тулд танд Debian 9 сервер болон sudo-д хандах эрхтэй хэрэглэгч хэрэгтэй болно (гарын авлагыг энэ хэрэглэгчийн сесс дээр бөглөсөн байх ёстой). Та шаардлагатай бүх тохиргооны зааврыг олох болно.

Цагийн менежментийн үндсэн командууд

огноо нь сервер дээрх цагийг тодорхойлох гол команд юм. Аливаа хэрэглэгч огноо, цагийг мэдэхийн тулд үүнийг ашиглаж болно:

огноо
Мягмар 9-р сарын 4 17:51:49 UTC 2018

Ихэвчлэн серверүүд нь UTC (Зохицуулсан Universal Time) цагийн бүсийг ашигладаг - энэ нь зохицуулагдсан бүх нийтийн цаг юм. UTC нь сервер дээрх цагийг тогтмол тогтоож, дэд бүтцийн серверүүд өөр өөр цагийн бүсэд байрладаг бол алдааг багасгадаг.

Цагийн бүсийг өөрчлөхийн тулд timedatectl командыг ашиглана уу.

Боломжтой бүсүүдийн жагсаалтыг хүсэх:

timedatectl жагсаалт-цагийн бүс

Жагсаалтыг хоосон зайг ашиглан доош, b товчийг ашиглан дээшээ зөөж болно. Цагийн бүсээ сонгоод, бичээд q товчийг дарж жагсаалтыг хаа.

Одоо timedatectl set-timezone ашиглан цагийн бүсийг тохируулна уу. Шаардлагатай цагийн бүсийг зааж өгөх дараах тушаалыг ашиглана уу.

sudo timedatectl set-timezone America/New_York

Тайлбар: America/New_York-г шаардлагатай цагийн бүсээр солино уу.

Бүсээ өөрчилсөн эсэхийг шалгана уу:

огноо
Мягмар 9-р сарын 4 13:52:57 EDT 2018

Цагийн бүсийн товчлол нь шинэ утгыг тусгах болно.

ntpd төлөв

Анхдагч байдлаар, Debian 9 нь гадаад серверүүдийн сантай цагийг синхрончлохын тулд стандарт ntpd серверийг ашигладаг. Та түүний статусыг systemctl ашиглан шалгаж болно:

sudo systemctl статус ntp
ntp.service - LSB: NTP дэмоныг эхлүүлэх
Ачаалагдсан: ачаалагдсан (/etc/init.d/ntp; үүсгэсэн; борлуулагчийн урьдчилан тохируулсан: идэвхжүүлсэн)
Идэвхтэй: идэвхтэй (ажиллаж байгаа) 2018-09-04 15:07:03 EDT; 30 минутын өмнө
Docs: man:systemd-sysv-generator(8)
Процесс: 876 ExecStart=/etc/init.d/ntp эхлэх (код=гарсан, статус=0/АМЖИЛТ)
Даалгавар: 2 (хязгаар: 4915)
CGroup: /system.slice/ntp.service
└─904 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
. . .

Идэвхтэй (ажиллаж байгаа) мөр нь сервер зөв ажиллаж байгааг харуулж байна. Та ntpq командыг ашиглан нэмэлт мэдээлэл авах боломжтой:

ntpq -p
алсаас refid st t үед санал асуулгад хүрэх саатал офсет jitter
==============================================================================
0.debian.pool.n .POOL. 16 х - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 х - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 х - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 х - 64 0 0.000 0.000 0.000
-eterna.binary.n 204.9.54.119 2 u 240 256 377 35.392 0.142 0.211
-статик-96-244-9 192.168.10.254 2 u 60 256 377 10.242 1.297 2.412
+minime.fdf.net 83.157.230.212 3 u 99 256 377 24.042 0.128 0.250
*t1.time.bf1.yah 98.139.133.62 2 u 31 256 377 11.112 0.621 0.186
+x.ns.gin.ntt.ne 249.224.99.213 2 u 108 256 377 1.290 -0.073 0.132
-ord1.m-d.net 142.66.101.13 2 u 473 512 377 19.930 -1.764 0.293

ntpq бол ntpd асуулгын хэрэгсэл юм. –p туг нь ntpd холбогдсон NTP серверүүдийн талаарх мэдээллийг цуглуулдаг. Таны гаралт арай өөр байх боловч стандарт Debian бассейн серверүүд болон бусад цөөн хэдэн серверүүдийг багтаана. Холболтыг бий болгоход ntpd хэдэн минут шаардлагатай.

Ntpd-ээс systemd-timesyncd руу шилжиж байна

Ntpd-г солихын тулд та systemd-д суулгасан timesyncd дэмоныг ашиглаж болно. timesyncd нь systemd-тэй нэгдсэн ntpd-ийн энгийн хувилбар юм. Гэсэн хэдий ч шилжих үед timesyncd нь цагийн серверийн үүрэг гүйцэтгэдэггүй бөгөөд системийн цагийг синхрончлоход бага боловсронгуй аргуудыг ашигладаг гэдгийг анхаарах хэрэгтэй. Хэрэв та нарийн төвөгтэй бодит цагийн хуваарилагдсан системийг ашиглаж байгаа бол ntpd-тэй байх нь дээр.

Timeyncd руу шилжихийн тулд эхлээд ntpd-г устгана уу.

sudo apt purge ntp

Дараа нь timesyncd-г ажиллуулна уу:

sudo systemctl systemd-timesyncd эхлүүлэх

Түүний статусыг шалгана уу:

sudo systemctl статус systemd-timesyncd
systemd-timesyncd.service - Сүлжээний цагийн синхрончлол
Ачаалагдсан: ачаалагдсан (/lib/systemd/system/systemd-timesyncd.service; идэвхжүүлсэн; борлуулагчийн урьдчилан тохируулсан: идэвхжүүлсэн)
Нэвтрэх: /lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Идэвхтэй: 2018-09-04 16:14:23 EDT-ээс хойш идэвхтэй (ажиллаж байна); 1 секундын өмнө
Докс: man:systemd-timesyncd.service(8)
Үндсэн PID: 3399 (системийн цагийн горим)
Статус: "Цагийн сервер 198.60.22.240:123 (0.debian.pool.ntp.org)-тай синхрончлогдсон."
Даалгавар: 2 (хязгаар: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─3399 /lib/systemd/systemd-timesyncd

Systemd-ийн одоогийн цаг хугацааны талаарх мэдээллийг авахын тулд дараахыг бичнэ үү:

timedatectl
Орон нутгийн цаг: Мягмар 2018-09-04 16:15:34 EDT
Бүх нийтийн цаг: Мягмар 2018-09-04 20:15:34 UTC
RTC цаг: Мягмар 2018-09-04 20:15:33
Цагийн бүс: Америк/Нью-Йорк (EDT, -0400)
Сүлжээний цаг: тийм

NTP синхрончлогдсон: тийм ээ
Орон нутгийн TZ дахь RTC: үгүй

Энэ команд нь орон нутгийн цаг, бүх нийтийн цаг (хэрэв та UTC цагийн бүсээс шилжээгүй бол орон нутгийн цагтай ижил байж болно) болон сүлжээний цагийн байдлын талаарх мэдээллийг харуулах болно. Сүлжээний цаг асаалттай: тийм гэдэг нь timesyncd үйлчилгээ идэвхжсэнийг, харин NTP синхрончлогдсон: yes нь цаг амжилттай синхрончлогдсоныг харуулж байна.

Дүгнэлт

Одоо та системийн цагийг хэрхэн удирдахаа мэддэг болсон Debian серверүүд 9.

Сервер дээр илүү их эсвэл бага нарийвчлалтай цагийг хадгалах нь чухал юм. Бүртгэлийг уншихад тохиромжтой байхын тулд таны сервер өнгөрсөн болон ирээдүйн захидлуудыг бусдад илгээхгүй байхын тулд ... хамаагүй - энэ нь зүгээр л чухал, тэгээд л болоо.
Төрөл бүрийн доголдол, техник хангамжийн алдаа, тэжээлийн мөчлөгийн улмаас сервер дээрх хугацаа атомын цагтай харьцуулахад хоцрох эсвэл яарах боломжтой. Ихэвчлэн - өдөрт нэг секундээс илүүгүй, практик дээр - сард нэг секунд, бүр бага байдаг. Гэхдээ муу ажиллаж байгаа техник хангамж нь илүү их цагийг дэмий үрдэг (ерөнхийдөө цаг хугацааны хүчтэй хэлбэлзэл нь техник хангамжийн эрүүл мэндийн талаар бодох шалтгаан болдог).
Линукс дээр цагийг синхрончлох хоёр түгээмэл арга байдаг - cron ашиглан ntpdate эсвэл ntpd-г байнга ажиллуулдаг. Та аль нэгийг нь сонгох эрх чөлөөтэй, би хоёулангийнх нь талаар бичих болно. Гэхдээ би өөрийн нэрийн өмнөөс ntpdate-ийг титмийн дагуу ашиглахыг зөвлөж байна, ялангуяа сервер дээр цагийг 0.1 секундээс бага алдаатай байлгах нь тийм ч чухал биш бол.
ntpd-ийн сул тал нь ntpd серверүүдийг ашиглан udp өсгөлтийн халдлага хийх боломжтой болсон үед асуудал гарсан (таны сервер рүү илгээсэн жижиг пакет нь хэн нэгний халдлагад өртсөн сервер рүү том udp пакет үүсгэх боломжийг танд олгосон) - http ://habrahabr.ru /post/209438/
Мэдээжийн хэрэг, энэ эмзэг байдлыг зассан (мөн тэд ntpd шинэчлэлтгүйгээр үүнээс хэрхэн зайлсхийх талаар бичсэн), гэхдээ үүнтэй төстэй асуудал байхгүй гэсэн баталгаа хаана байна вэ? Дахин хэлэхэд ntpd нь udp дээр ажилладаг хэвээр байгаа бөгөөд траффик их хэмжээгээр нэмэгдээгүй ч үүнтэй төстэй төрлийн халдлага хийх боломжтой (гэхдээ энэ нь халдагчийг нууж, серверээ хүчирхийлэлд өртөх боломжийг олгоно). Дашрамд хэлэхэд серверийн ipmi модульд суурилуулсан ntpd нь энэ халдлагад өртөмтгий байсан бөгөөд хөршүүдээ залхааж зугаацаж байсныг би олж мэдсэн =)
Тиймээс, хэрэв та аюулгүй байдлын мэдээллийн товхимолыг байнга унших, шинэчлэлтүүдийг дагахад бэлэн биш байгаа бол ntpd суулгах хэрэггүй.
Тиймээс, эхний арга: ntpdate-ийг өдөрт нэг удаа титмийн дагуу ажиллуул.
Хэрэв байгаа бол бид ntpd-г устгана:

root@server:~# apt-get remove --purge ntpd

Ntpdate тохируулах:

root@server:~# apt-get суулгах ntpdate

Дараах агуулгатай /etc/cron.d/ntpdate файл үүсгэнэ үү:

0 6 * * * root ntpdate ntp.ubuntu.com 1>/dev/null 2>&1

Одоо өдөр бүр өглөөний 6 цагт (цаг, давтамжаа өөрөө тохируулаарай) цаг шинэчлэгдэх болно.

Хоёрдахь арга: nptd.
Бид үүнийг эсрэгээр нь хэлэх хэрэгтэй:

root@server:~# apt-get суулгах ntpd

Мөн тохиргоонд бичнэ үү /etc/ntpd.confилүү их эсвэл бага зөв тохиргоо:

баталгаажуулалтыг идэвхгүй болгох
статистикийг идэвхгүй болгох
сервер 0.ubuntu.pool.ntp.org
сервер 1.ubuntu.pool.ntp.org
сервер 2.ubuntu.pool.ntp.org
сервер 3.ubuntu.pool.ntp.org

Дараа нь бид үүнийг дахин эхлүүлнэ:

root@server:~# /etc/init.d/ntp дахин эхлүүлэх

Ингээд л манай цагийг бодит цаг хугацаанд тохируулж, ntp серверүүдийн сантай синхрончлоод байна.

Би мэс заслын өрөөг ашигладаг Debian системВэбсайт байршуулах серверүүд дээрх GNU/Linux. 2017 оны зун Stretch-ийн 9-р хувилбар гарахад PHP 7 нь PHP 5-аас илүү хурдан ажилладаг гэдгийг та бүхний мэдэж байгаагаар хайрцагнаас гаргаж авсанд баяртай байсан.

Энэ нийтлэлд би Debian 9 дээр цагийг тохируулах нь илүү дээр болсон гэдгийг харуулах болно, та нэмэлт зүйл, ялангуяа ntp демон эсвэл ntpdate хэрэгслийг татаж авах эсвэл суулгах шаардлагагүй болно; Бүх зүйл төгс тохируулагдсан бөгөөд үүний төлөө ажилладаг стандарт багцШинэчлэгдсэн хувилбарын ачаар Debian 9 програм хангамж системд, энэ нь протоколыг ашиглан системийн цагийг синхрончлох үүрэгтэй тусдаа үйлчилгээтэй NTP.

Debian 9 дээр цагийг хэрхэн тохируулах вэ

Эхлээд та цагийн бүсээ шийдэж, тохируулах хэрэгтэй, миний хувьд дараах байдалтай байна.

# timedatectl set-timezone Европ/Волгоград

Дараа нь та файлаа засах хэрэгтэй /etc/systemd/timesyncd.conf, үүнд цагийн синхрончлолын серверүүдийг зааж өгнө, жишээлбэл:

# Энэ файл нь systemd-ийн нэг хэсэг юм. # # systemd бол үнэгүй програм хангамж; Та үүнийг # Чөлөөт Програм хангамжийн сангаас нийтэлсэн GNU Lesser General Public License-ийн нөхцлийн дагуу дахин түгээх ба/эсвэл өөрчлөх боломжтой; Лицензийн 2.1 хувилбар эсвэл # (таны сонголтоор) дараагийн хувилбар. # # Энэ файлын оруулгууд нь хөрвүүлэх хугацааны өгөгдмөлүүдийг харуулдаг. # Та энэ файлыг засварлаж тохиргоог өөрчлөх боломжтой. # Энэ файлыг устгаснаар анхдагч тохиргоог сэргээх боломжтой. # # Дэлгэрэнгүйг timesyncd.conf(5)-аас үзнэ үү.

NTP=ru.pool.ntp.org FallbackNTP=pool.ntp.org Энд байгаа сонголт NTP = цагийн синхрончлолын тэргүүлэх серверүүдийг тодорхойлсон. Хэрэв тэдгээрт хандах боломжгүй бол-д заасан серверүүд.

FallbackNTP=

Тохиргооны файлд өөрчлөлт оруулсны дараа та цагийн синхрончлолын үйлчилгээг дахин эхлүүлэх хэрэгтэй.

# systemctl systemd-timesyncd-г дахин эхлүүлнэ

Цагийн тохиргооны төлөвийг дараах тушаалаар шалгаж болно.

# timedatectl төлөв

Доорх үр дүн нь миний сервер дээрх цаг зөв тохируулагдсан бөгөөд NTP протоколыг ашиглан синхрончлогдсон болохыг харуулж байна.

Орон нутгийн цаг: Мягмар 2018-12-18 16:36:33 +04 Бүх нийтийн цаг: Мягмар 2018-12-18 12:36:33 UTC RTC цаг: Мягмар 2018-12-18 12:36:33 Цагийн бүс: Европ/ Волгоград (+04, +0400) Сүлжээний цаг асаалттай: тийм NTP синхрончлогдсон: тийм RTC орон нутгийн TZ: үгүй
Энд,Орон нутгийн цаг
- энэ бол орон нутгийн цаг;- UTC цаг (Зохицуулсан бүх нийтийн цаг). Энэ нь бүх цагийн бүсийн эхлэлийн цэг юм;
RTC цаг- серверийн (компьютерийн) техник хангамжийн цаг хугацаа;
Цагийн бүс- таны цагийн бүс;
Сүлжээний цаг асаалттай- systemd-д багтсан ntp клиент идэвхжсэн эсэхийг заана;
NTP синхрончлогдсон- ntp сервертэй цаг синхрончлогдсон эсэхийг мэдээлэх;
Орон нутгийн TZ дахь RTC- тоног төхөөрөмжийн цагт хэдэн цаг хадгалагдаж байгааг харуулдаг: орон нутгийн эсвэл дэлхийн хэмжээнд. Үүний зэрэгцээ, тиймээорон нутгийн цаг гэсэн үг, үгүй- дэлхий даяар;

Эхлэгчдэд зориулсан мэдээлэл

Заримдаа миний өгсөн командыг хаана оруулах вэ гэж асуудаг.

Энэ нийтлэлд өгөгдсөн бүх тушаалуудыг серверийн консол дээр давуу эрхтэй хэрэглэгч (root) болгон гүйцэтгэх ёстой. Гарын үсэг зурах # (octothorp, lattice, sharp, hash) үүнийг л хэлж байна.

Консолын үйлчлүүлэгчийн хувьд алсын холболтсерверүүд рүү би програмыг ашигладаг

© 2024 ermake.ru -- Компьютер засварын тухай - Мэдээллийн портал