Ko te ngawari o te mahi, ko te maha ake o au mahi he

Ko te ngawari o te mahi, ko te maha ake o au mahi he

I ara ake tenei mahi iti i te ahiahi o te Paraire me te 2-3 meneti te roa. I roto i te whānui, rite tonu.

I tono mai tetahi hoa mahi ki ahau ki te whakatika i te tuhinga i runga i tana tūmau. I mahia e ahau, hoatu ana ki a ia, ka heke pohehe: "E 5 meneti te tere." Ma te tūmau tonu e whakahaere te tukutahitanga. He hawhe haora, he haora i pahemo, ka pupuhi tonu ia, ka kanga marie.

“Kuware! — I whakaaro ahau, ka huri ki te papatohu tūmau — pai, ka okioki ahau mo etahi meneti.

Kia kite tatou ntp, rdate, sdwdate kaore i whakauruhia taima kua haua, kua kore e rere.

# 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

I konei ka kite tonu ahau he tika te wa taputapu: ka ngawari ake te whakatere.

Koinei te waahi i timata ai te raupapa o nga hapa.

Ko te hapa tuatahi. Te maia-whaiaro

Pāwhiri-paki...

# 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

He pai nga mea katoa, kua tukutahia te waa, ka rite te wa punaha ki te taputapu kotahi. "Tangohia," ka mea ahau ka hoki ki taku pakihi.

“Tangohia te aha? - i riri te hoa mahi. "Ko te wa ano!"

Ko te nui ake o to whakaoti rapanga angamaheni, ka momo ake to whakaaro ka kore koe e whakaaro he rereke te ahuatanga o te haurau, te haumano ranei, engari kaore i tenei wa.

# 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

He he ano te wa punaha.

Kia ngana ano tatou:

# 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

Me mahi rerekee:

# 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

A penei:

# 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

Kua whakaritea te wa mo te wehenga tuarua, ka timata tonu te "tere" ano.

I te wa ano, i roto i nga raarangi, i te wa o te whakarereketanga a-ringa, ka kite noa tatou i nga purongo punaha kua huri te waa, ia, i te huarahi tika/he, me etahi wa. Tukutahi ano mai i te 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

konei

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

I tenei wa, kua tika ki te rapu i te take, engari i runga i te 18 tau o te whakahaere, kua kohia e te roro nga tatauranga mo nga hapa "wa" a, i runga i te tikanga, ka whakahe ano i te tukutahi.
Kia whakaweto rawatia.

# 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

a i roto i nga rakau

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

Tukutahi ano kua ngaro, me te kore he parakore nga rakau.

Te tirotiro i nga whakatau tcpdump i runga i te tauranga 123 i runga i nga atanga katoa. Karekau he tono, engari kei te rere tonu te wa.

Hapa rua. Hohoro

He haora e toe ana ki te mutunga o te wiki mahi, kare au e pai ki te wehe atu mo te mutunga wiki me te raru nui kaore i whakatauhia (kaua e aro ki te wa i roto i te waehere, i tuhia te tuhinga i nga ra e whai ake nei. ).
Na i konei ano, hei utu mo te rapu i te take, ka tiimata ahau ki te whakaputa korero mo te hua. Ko taku kii "whakaahua" na te mea ahakoa he aha te arorau o te whakamaramatanga mo te hua, he huarahi he ki te whakaoti rapanga.

He tūmau romaroma tēnei tūmau me te huri i te awa DVB-S2 ki IP. Kei roto i te roma DVB-S nga tohu wa, no reira ka whakamahia e nga kaiwhiwhi, maha, scramblers me nga pouaka whakaata hei tukutahi i te karaka punaha. Ko nga taraiwa poari DVB-S kua hangaia ki roto i te kernel, na ko te huarahi tere ki te whakarite kia tangohia te awa DVB-S2 ko te whakakore i nga taura e puta mai ana i nga "papa". Waimarie, kei muri te kaimau i te pakitara, na reira.

Ko te tikanga, mena kei roto i nga raarangi nga mea e tika ana ki reira, kaore tenei i tupu, engari he nui ake ano, i te mutunga o te tuhinga.

Ana, i te mea kua tangohia e matou nga tohu amiorangi katoa, ka tangohia ano e matou nga tohu whenua - i te wa ano ka tangohia e matou nga taura whatunga katoa. Ka motuhia te tūmau mai i te ao o waho ka mahi motuhake, engari kei te tere tonu te karaka o te punaha.

Kua mutu te wiki mahi, a, ko te take ra/waa ake ehara i te mea tino nui, no reira ka taea e koe te hoki ki te kainga, engari i konei ka he hou au.

Hapa toru. Kaitohutohu

Kaua rawa! Kaua rawa e patai nga paatai ​​​​i runga i nga huihuinga me nga waahi motuhake (a la stackoverflow) mena ka nui ake te whakautu ki te ako i te wharangi tuatahi o Google me te panui i te wharangi tangata kotahi.

Ka whakahokia koe ki a Google, ka panuihia te tangata kotahi, ka whakamarama i nga ture o te huinga/pae, engari kaore e hoatu he whakautu ki a koe.

Anei etahi take whainga:

  • kare he tangata engari ko koe anake ka mohio ki te raru;
  • karekau he tangata e ahei te whakahaere i nga whakamatautau i raro i nga tikanga rite ki a koe

me te kaupapa:

  • Kaore pea koe e tuku i nga whakaaro katoa mo te whakaoti rapanga, na te mea kua puta ke koe i te huarahi "tika" me te whakaatu i te ngako o te take e arotahi ana ki runga;
  • Kei te tika tonu te tomana (kaiwhakahaere, kaumatua, kaiwhakahaere), mena kei te he te toihau... kaati, kei te mohio koe...

Mena, i a koe e whakautu ana ki nga korero, i noho koe i roto i nga rohe o nga kupu kua whakatauhia, katahi ka kaha nga uaua.

whakatau

Kaore he take ki te wehewehe i nga mahi ki te ngawari me te uaua.

Ka mutu te whakawhirinaki ki o maatau wheako, tatauranga, kaitohutohu me te tiimata kia kaua e "whakamarama" te hua mutunga, engari ki te rapu tonu i te take.

I te mea ka whakatauhia e te tangata te wa, me puta te waea a te punaha.

Pērā i roto i nga tuhinga rorohiko ko nga tuhinga pai rawa atu ko nga puna, na i roto i te whakahaere punaha ko te kaiawhina pai rawa atu ko te arotake, i roto i a maatau arotakenga.

He wa ruaruaI haere ahau i roto i te mana, engari kaore au i tino mohio ko te waa ki Linux ka taea anake te whakarite karaka_settime и te wa whakarite, na mo te whakamatautau tuatahi i whiriwhiria e au nga waea "pai" katoa:

# 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

me te whakakore s390_runtime_instr, wa, timerfd_create, ko wai arotakectl kaore i mohio, i te tuatahi i whakarewahia he arotake i te ahua:

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

I muri i te mohio karekau etahi atu raarangi i roto i nga waahi rangitaki e pirangi ana ahau hikareti I tua atu i enei mea e rua, i whakamahia e au anake.

Te whakahaere i te arotake waea punaha karaka_settime и te wa whakarite ka ngana ki te huri i te ra:

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

Ka taapirihia he wa roa e rima-hakona kia mau ai to tatou "parasite" ki te whakatika i te waa.

Kia titiro tatou ki te ripoata:

# 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

I konei ka kite tatou i to tatou a kahore e mohiotia e matou chkcache_processes. I mutu i roto i te purongo i runga ake nei na te mea i whakaraupapahia e aureport te putanga ma te ra i te hurihanga mai i te rua, ka puta te takahanga i te wa i whakaritea e matou. rā -s "2019-08-22 12:10:00".
Na wai ia i whanau?

# 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 - kua kitea to tatou parapara. Ahakoa tana whanonga "kino", kaore e taea te whakakore i te punaha uru herenga, engari kei te pirangi tonu ahau ki te mohio oscam, WTF?

Ka kitea tere te whakautu i roto waehere puna:

#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");
}

Ano te ataahua o konei i korero mai raina whakatūpato...

Source: will.com

Tāpiri i te kōrero