Lapho umsebenzi uba lula, kulapho ngenza amaphutha kaningi

Lapho umsebenzi uba lula, kulapho ngenza amaphutha kaningi

Lo msebenzi ongasho lutho uqhamuke ngolunye uLwesihlanu ntambama futhi bekufanele uthathe imizuzu emi-2-3. Ngokuvamile, njengenjwayelo.

Uzakwethu ungicele ukuthi ngilungise umbhalo kuseva yakhe. Ngikwenzile, ngamnika futhi ngehla ngingaqondile: “Isikhathi sishesha ngemizuzu emi-5.” Vumela iseva isingathe ukuvumelanisa ngokwayo. Kwadlula ihora nehora, elokhu ekhukhumala ethuka ethule.

“Silima! - Ngicabange, ngishintshela kukhonsoli yeseva - kulungile, ngizothatha ikhefu eminye imizuzu embalwa. "

Asibone ntp, date, sdwdate ayifakiwe umagazine ikhubazekile futhi ayisebenzi.

# timedatectl
      Local time: Sun 2019-08-25 20:44:39 +03
  Universal time: Sun 2019-08-25 17:44:39 UTC
        RTC time: Sun 2019-08-25 17:39:52
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Lapha ngizoqaphela ngokushesha ukuthi isikhathi se-hardware silungile: kuzoba lula ukuzulazula ngokuqhubekayo.

Yilapho kwaqala khona uchungechunge lwamaphutha.

Iphutha lokuqala. Ukusiqhenya

Chofoza-cindezela...

# systemctl enable systemd-timesyncd.service && systemctl start systemd-timesyncd.service && ntpdate 0.ru.pool.ntp.org && timedatectl set-ntp on && timedatectl
25 Aug 21:00:10 ntpdate[28114]: adjust time server 195.210.189.106 offset -249.015251 sec
      Local time: Sun 2019-08-25 21:00:10 +03
  Universal time: Sun 2019-08-25 18:00:10 UTC
        RTC time: Sun 2019-08-25 18:00:10
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

Konke kuhamba kahle, isikhathi siyavunyelaniswa, isikhathi sohlelo sifana nehardware eyodwa. “Yithathe,” kusho mina bese ngibuyela ebhizinisini lami.

“Thatha ini? - uzakwabo wathukuthela. “Isikhathi esifanayo!”

Lapho uxazulula izinkinga ezivamile, kulapho ukucabanga kwakho kuya kucwayiza futhi awusacabangi ukuthi isimo sekhulu noma senkulungwane sizohluka, kodwa hhayi kulokhu.

# timedatectl
      Local time: Sun 2019-08-25 21:09:15 +03
  Universal time: Sun 2019-08-25 18:09:15 UTC
        RTC time: Sun 2019-08-25 18:05:04
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Isikhathi sohlelo asilungile futhi.

Ake sizame futhi:

# ntpdate 0.ru.pool.ntp.org && timedatectl && sleep 1 && timedatectl
25 Aug 21:07:37 ntpdate[30350]: step time server 89.175.20.7 offset -249.220828 sec
      Local time: Sun 2019-08-25 21:07:37 +03
  Universal time: Sun 2019-08-25 18:07:37 UTC
        RTC time: Sun 2019-08-25 18:07:37
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
      Local time: Sun 2019-08-25 21:11:46 +03
  Universal time: Sun 2019-08-25 18:11:46 UTC
        RTC time: Sun 2019-08-25 18:07:37
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Masikwenze ngendlela ehlukile:

# date -s "2019-08-25 21:10:30" && date && sleep 1 && timedatectl
Sun Aug 25 21:10:30 +03 2019
Sun Aug 25 21:10:30 +03 2019
      Local time: Sun 2019-08-25 21:14:36 +03
  Universal time: Sun 2019-08-25 18:14:36 UTC
        RTC time: Sun 2019-08-25 18:10:30
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Futhi kanje:

# hwclock --hctosys && timedatectl && sleep 1 && timedatectl
      Local time: Sun 2019-08-25 21:11:31 +03
  Universal time: Sun 2019-08-25 18:11:31 UTC
        RTC time: Sun 2019-08-25 18:11:31
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
      Local time: Sun 2019-08-25 21:15:36 +03
  Universal time: Sun 2019-08-25 18:15:36 UTC
        RTC time: Sun 2019-08-25 18:11:32
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Isikhathi sisethelwe umzuzwana wokuhlukaniswa, futhi ngokushesha siqala "ukushesha" futhi.

Ngesikhathi esifanayo, kulogi, ngesikhathi soshintsho olunjalo lwezandla, sibona kuphela imibiko yesistimu ukuthi isikhathi sishintshile, ngokulandelana, ngendlela efanele / engalungile futhi ngezikhathi ezithile. Ivumelanisa kabusha kusuka ku-systemd-timesyncd.

Aug 25 21:18:51 wisi systemd[1]: Time has been changed
Aug 25 21:18:51 wisi systemd-timesyncd[29258]: System time changed. Resyncing.
Aug 25 21:18:51 wisi systemd[1187]: Time has been changed
Aug 25 21:18:51 wisi systemd[1]: Time has been changed
Aug 25 21:18:51 wisi systemd[1187]: Time has been changed

lapha

# ps afx | grep "[1]187"
 1187 ?        Ss     0:02 /lib/systemd/systemd --user

Ngalesi sikhathi, kwase kudingekile kakade ukubheka isizathu, kodwa ngaphezu kweminyaka engu-18 yokuphatha, ubuchopho buqongelele izibalo zamaphutha "esikhathi" futhi, ngenxa yomkhuba, futhi busola ukuvumelanisa.
Masiyicime ngokuphelele.

# timedatectl set-ntp off && systemctl stop systemd-timesyncd.service
# hwclock --hctosys && timedatectl && sleep 1 && timedatectl
      Local time: Sun 2019-08-25 21:25:40 +03
  Universal time: Sun 2019-08-25 18:25:40 UTC
        RTC time: Sun 2019-08-25 18:25:40
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
      Local time: Sun 2019-08-25 21:29:31 +03
  Universal time: Sun 2019-08-25 18:29:31 UTC
        RTC time: Sun 2019-08-25 18:25:41
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

nasezingodweni

Aug 25 21:25:40 wisi systemd[1]: Time has been changed
Aug 25 21:25:40 wisi systemd[1187]: Time has been changed
Aug 25 21:29:30 wisi systemd[1]: Time has been changed
Aug 25 21:29:30 wisi systemd[1187]: Time has been changed

Ivumelanisa kabusha zanyamalala futhi ngaphandle kwalokho izingodo zihlanzekile.

Ukuhlola iziphetho tcpdump ku-port 123 kuzo zonke izixhumanisi. Azikho izicelo, kepha isikhathi sisabaleka.

Iphutha lesibili. Ukuphuthuma

Kusele ihora kuze kuphele isonto lomsebenzi, futhi angifuni ukuhamba ngempelasonto nenkinga engaxazululiwe (ungasinaki isikhathi esikukhodi, isihloko sabhalwa ezinsukwini ezilandelayo. ).
Futhi lapha futhi, esikhundleni sokubheka isizathu, ngaqala ukuzama ukuza nencazelo yomphumela. Ngithi “sungula” ngoba noma ngabe incazelo yomphumela ingaba enengqondo kangakanani, kuyindlela enephutha yokuxazulula inkinga.

Le seva iyiseva yokusakaza futhi iguqula ukusakaza kwe-DVB-S2 kube yi-IP. Ukusakaza kwe-DVB-S kuqukethe izitembu zesikhathi, ngakho-ke abamukeli, abaphindaphindayo, ama-scrambler namathelevishini bavame ukuwasebenzisa ukuze bavumelanise iwashi lesistimu. Abashayeli bebhodi le-DVB-S bakhelwe ku-kernel, ngakho-ke indlela esheshayo yokuqinisekisa ukuthi umfudlana we-DVB-S2 uyasuswa ukunqamula izintambo eziphuma “kumapuleti”. Ngenhlanhla, iseva ingemuva kodonga, makube njalo.

Yiqiniso, ukube izingodo beziqukethe okufanele kube khona, lokhu bekungeke kwenzeke, kodwa ngaphezulu kwalokho, futhi, ekupheleni kwesihloko.

Hhayi-ke, njengoba sesivele sazisusa zonke izimpawu zesathelayithi, sizokhipha nezasemhlabeni - ngesikhathi esifanayo sikhipha zonke izintambo zenethiwekhi. Iseva iyanqanyulwa ezweni langaphandle futhi isebenze ngokuzilawula ngokuphelele, kodwa iwashi lesistimu lisajahile.

Isonto lomsebenzi seliphelile, futhi udaba lwedethi/isikhathi ngokwalo alubalulekile, ngakho-ke ungavele uye ekhaya, kodwa lapha ngenza iphutha elisha.

Iphutha lesithathu. Abeluleki

Ungalokothi! Ungalokothi ubuze imibuzo ezingosini nakumasayithi akhethekile (a la stackoverflow) uma impendulo yawo idinga okungaphezu kokutadisha ikhasi lokuqala le-Google nokufunda ikhasi lomuntu oyedwa.

Bazokuthumelela emuva ku-Google, bafunde indoda efanayo futhi bachaze ngokudumile imithetho yesithangami/isayithi, kodwa ngeke bakunikeze impendulo.

Nazi ezinye izici zenhloso:

  • akekho ngaphandle kwakho ongayazi inkinga futhi;
  • akekho ongenza izivivinyo ngaphansi kwezimo ezifanayo nezakho

futhi subjective:

  • ungase unganikezi wonke umbono wokuxazulula inkinga, ngoba usuvele uqhamuke nendlela “elungile” futhi wethula ingqikithi yodaba ugxile kuyo;
  • induna (moderator, old-time, admin) ihlezi ilungile, uma induna inephutha...awu, uyazi...

Uma, lapho uphendula amazwana, uhlale ngaphakathi kwemingcele yesilulumagama esihloliwe, kusho ukuthi unemizwa enamandla.

Isixazululo

Asikho isidingo sokuhlukanisa imisebenzi ibe lula futhi eyinkimbinkimbi.

Siyayeka ukuncika kokuhlangenwe nakho kwethu, izibalo, abeluleki futhi siqale "ukungachazi" umphumela wokugcina, kodwa ngokuqhubekayo sibheke isizathu.

Njengoba othile esetha isikhathi, ikholi yesistimu ehambisanayo kufanele yenzeke.

Njengoba nje emibhalweni yesofthiwe imibhalo engcono kakhulu iyimithombo, ngakho-ke ekuphathweni kwesistimu umsizi ongcono kakhulu ukucwaninga, kithi ihlolwe.

Umzuzwana wokungabazaNgidlule ku-mana, kodwa bengingaqiniseki ngokuphelele ukuthi isikhathi ku-Linux singasethwa kuphela clock_settime и settimeofday, ngakho-ke ekuhlolweni kokuqala ngikhethe zonke izingcingo “ezifanelekile”:

# man syscalls | col | grep -F '(2)' | grep -vE '(:|;)' | grep -E '(time|date|clock)' | sed "s/(2).*//" | xargs -I SYSCALL echo "-S SYSCALL " | xargs echo
-S adjtimex -S clock_adjtime -S clock_getres -S clock_gettime -S clock_nanosleep -S clock_settime -S futimesat -S getitimer -S gettimeofday -S mq_timedreceive -S mq_timedsend -S rt_sigtimedwait -S s390_runtime_instr -S setitimer -S settimeofday -S stime -S time -S timer_create -S timer_delete -S timer_getoverrun -S timer_gettime -S timer_settime -S timerfd_create -S timerfd_gettime -S timerfd_settime -S times -S utime -S utimensat -S utimes

nokulahla s390_runtime_instr, stime, timerfd_create, okuthi i-audictl ayikwazanga, iqale yethula ucwaningo ngefomu:

auditctl -a exit,always -S adjtimex -S clock_adjtime -S clock_getres -S clock_nanosleep -S clock_settime -S futimesat -S getitimer -S gettimeofday -S mq_timedreceive -S mq_timedsend -S rt_sigtimedwait -S semtimedop -S setitimer -S settimeofday -S time -S timer_create -S timer_delete -S timer_getoverrun -S timer_gettime -S timer_settime -S timerfd_gettime -S timerfd_settime -S times -S utime -S utimensat -S utimes

Ngemuva kokuqinisekisa ukuthi awekho amanye amalogi ezindaweni zelogi engizithandayo ama-syscalls Ngaphandle kwalezi ezimbili, ngasebenzisa zona kuphela ngokuqhubekayo.

Isebenzisa ukuhlolwa kwekholi yesistimu clock_settime и settimeofday bese uzama ukushintsha idethi:

# auditctl -a exit,always -S clock_settime -S settimeofday && date -s "2019-08-22 12:10:00" && sleep 5 && auditctl -D

Ukubambezeleka kwemizuzwana emihlanu kwengezwa ukuze "i-parasite" yethu iqinisekisiwe ukulungisa isikhathi.

Ake sibheke umbiko:

# aureport -s -i

Syscall Report
=======================================
# date time syscall pid comm auid event
=======================================
Warning - freq is non-zero and incremental flushing not selected.
1. 08/22/2019 12:10:00 settimeofday 3088 chkcache_proces root 479630
2. 08/26/2019 09:37:06 clock_settime 1538 date root 479629

Lapha sibona okwethu Usuku futhi esingaziwa chkcache_processes. Igcine embikweni ongenhla ngoba i-aureport ihlele okukhiphayo ngedethi lapho iguqula isuka kokuthi kanambambili, futhi isigameko senzeka ngesikhathi sisetha. usuku -s "2019-08-22 12:10:00".
Ubani owamzala?

# ausearch -sc settimeofday --comm "chkcache_proces"
----
time->Thu Aug 22 12:10:00 2019
type=PROCTITLE msg=audit(1566465000.000:479630): proctitle="/usr/local/bin/oscam"
type=SYSCALL msg=audit(1566465000.000:479630): arch=c000003e syscall=164 success=yes exit=0 a0=7fde0dfc6e60 a1=0 a2=136cf a3=713ba56 items=0 ppid=3081 pid=3088 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts20 ses=68149 comm="chkcache_proces" exe="/usr/local/bin/oscam" key=(null)

/usr/local/bin/oscam - i-parasite yethu itholakele. Naphezu kokuziphatha kwayo "okunonya", akunakwenzeka ukwenqaba isistimu yokufinyelela enemibandela, kodwa ngisangathanda ukwazi oscam, WTF?

Impendulo itholakala ngokushesha ku imithombo:

#if defined(CLOCKFIX)
if (tv.tv_sec > lasttime.tv_sec || (tv.tv_sec == lasttime.tv_sec && tv.tv_usec >= lasttime.tv_usec)) // check for time issues!
{
  lasttime = tv; // register this valid time
}
  else
{
  tv = lasttime;
  settimeofday(&tv, NULL); // set time back to last known valid time
  //fprintf(stderr, "*** WARNING: BAD TIME AFFECTING WHOLE OSCAM ECM HANDLING, SYSTEMTIME SET TO LAST KNOWN VALID TIME **** n");
}

Indlela ebukeka ngayo lapha waphawula umugqa isixwayiso...

Source: www.habr.com

Engeza amazwana