Mafi sauƙi aikin, yawancin lokuta ina yin kuskure

Mafi sauƙi aikin, yawancin lokuta ina yin kuskure

Wannan ƙaramin aiki ya taso ranar Juma'a da yamma kuma yakamata ya ɗauki mintuna 2-3 na lokaci. Gabaɗaya, kamar koyaushe.

Wani abokin aiki ya tambaye ni in gyara rubutun akan sabar sa. Na yi shi, na mika masa kuma na sauke ba da gangan ba: "Lokaci yana da sauri minti 5." Bari uwar garken ta rike aiki tare da kanta. Rabin sa'a ya wuce, har yanzu yana kumbura yana zagi.

“Wawa! - Na yi tunani, canzawa zuwa na'ura mai ba da hanya tsakanin hanyoyin sadarwa - to, zan huta na wasu mintuna biyu."

Mu gani ntp, ranar, sdwdate ba a shigar ba lokaci nakasassu kuma baya gudu.

# 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

Anan zan lura nan da nan cewa lokacin kayan aikin daidai ne: zai zama sauƙin kewayawa gaba.

Anan ne jerin kurakurai suka fara.

Kuskure na farko. Amincewa da kai

Danna-clack...

# 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

Komai yana da kyau, lokacin yana aiki tare, lokacin tsarin yayi daidai da kayan masarufi. "Dauke shi," na ce kuma na koma kasuwancina.

“Dauki me? - abokin aikin ya fusata. "Lokaci ɗaya ne!"

Yayin da kuke magance matsalolin da aka saba, tunanin ku ya zama lumshe ido kuma ba za ku ƙara tunanin cewa yanayi na ɗari ko na dubu zai bambanta ba, amma ba wannan lokacin ba.

# 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

Lokacin tsarin yayi kuskure kuma.

Mu sake gwadawa:

# 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

Bari mu yi shi daban:

# 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

Kuma kamar haka:

# 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

An saita lokacin don tsagawa na daƙiƙa guda, kuma nan da nan ya fara sake "rush" kuma.

A lokaci guda, a cikin rajistan ayyukan, a lokacin irin wannan canji na hannu, muna ganin rahotannin tsarin kawai cewa lokaci ya canza, bi da bi, a daidai / kuskure kuma lokaci-lokaci. Sake daidaitawa daga 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

a nan

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

A wannan lokaci, ya riga ya zama dole don neman dalilin, amma fiye da shekaru 18 na gudanarwa, kwakwalwa ta tattara kididdiga akan kurakuran "lokaci" kuma, daga al'ada, sake zargi aiki tare.
Mu kashe shi gaba daya.

# 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

kuma a cikin gungumen azaba

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

Sake daidaitawa bace kuma in ba haka ba, gungumen azaba ne.

Duban ƙarshe tppdump a kan tashar jiragen ruwa 123 akan duk hanyoyin sadarwa. Babu buƙatun, amma har yanzu lokaci yana gudu.

Kuskure biyu. Rushewa

Akwai sa'a daya da ya rage har zuwa karshen mako na aiki, kuma ba na so in tafi karshen mako tare da matsala mara kyau da ba a warware ba (kada ku kula da lokaci a cikin lambar, an rubuta labarin a cikin kwanaki masu zuwa. ).
A nan kuma, maimakon in nemi dalili, sai na fara ƙoƙarin kawo bayanin sakamakon. Na ce "ƙirƙira" domin ko yaya ma'anar bayanin sakamakon zai kasance, hanya ce mai kuskure don magance matsalar.

Wannan uwar garken sabar ce mai yawo kuma tana canza rafin DVB-S2 zuwa IP. Rafi na DVB-S yana ƙunshe da tambura, don haka masu karɓa, na'urori masu yawa, na'urori da talabijin sukan yi amfani da su don daidaita agogon tsarin. Ana gina direbobin hukumar DVB-S a cikin kwaya, don haka hanya mafi sauri don tabbatar da cewa an cire rafin DVB-S2 shine cire haɗin igiyoyin da ke fitowa daga “faranti”. Abin farin ciki, uwar garken yana bayan bango, don haka ya kasance.

Tabbas, idan da rajistan ayyukan sun ƙunshi abin da ya kamata a can, wannan ba zai faru ba, amma ƙari akan haka, kuma, a ƙarshen labarin.

To, tun da mun riga mun cire duk siginar tauraron dan adam, za mu kuma cire na ƙasa - a lokaci guda kuma muna fitar da dukkan igiyoyin hanyar sadarwa. Sabar ɗin ya zama yankewa daga duniyar waje kuma yana aiki gaba ɗaya mai cin gashin kansa, amma agogon tsarin yana cikin sauri.

Makon aiki ya ƙare, kuma batun kwanan wata / lokaci kanta ba shi da mahimmanci, don haka za ku iya komawa gida kawai, amma a nan na yi sabon kuskure.

Kuskure uku. Masu ba da shawara

Taba! Kada ku taɓa yin tambayoyi akan dandalin tattaunawa da ƙwararrun shafuka na musamman (a la stackoverflow) idan amsar ta tana buƙatar fiye da nazarin shafin farko na Google da karanta shafin mutum ɗaya.

Za su mayar da ku zuwa Google, karanta mutum ɗaya kuma su bayyana ƙa'idodin dandalin / rukunin yanar gizon, amma ba za su ba ku amsa ba.

Ga wasu dalilai na haƙiƙa:

  • ba wanda sai dai kai ma za ka iya sanin matsalar;
  • babu wanda zai iya gudanar da gwaje-gwaje a ƙarƙashin yanayi iri ɗaya da na ku

da kuma na zahiri:

  • ba za ku iya ba da duk abubuwan da za ku iya ba don magance matsalar ba, saboda kun riga kun fito da hanyar "daidai" kuma kuna gabatar da ainihin batun da ke mai da hankali kan shi;
  • shugaba (moderator, old-timer, admin) a koda yaushe yana da gaskiya, idan shugaban ya yi kuskure...to, ka sani...

Idan, lokacin da kuke ba da amsa ga sharhi, kun kasance cikin iyakokin ƙamus ɗin da aka tantance, to kuna da jijiyoyi masu ƙarfi.

yanke shawara

Babu buƙatar raba ayyuka zuwa sauƙi da rikitarwa.

Mun daina dogara ga kwarewarmu, kididdiga, masu ba da shawara kuma mu fara ba "bayani" sakamakon ƙarshe ba, amma don neman dalili akai-akai.

Tun da wani ya saita lokaci, dole ne kiran tsarin da ya dace ya faru.

Kamar yadda a cikin takaddun software mafi kyawun takardu sune tushen, haka a cikin tsarin gudanarwa mafi kyawun mataimaki shine duba, a cikin yanayinmu duba.

Lokaci na shakkaNa shiga cikin mana, amma ban tabbata ba cewa lokaci a cikin Linux za a iya saita shi kawai clock_settime и saita ranar, don haka don gwajin farko na zaɓi duk kiran "dace":

# 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

da zubarwa s390_runtime_instr, lokaci, timerfd_create, wanda auditctl bai gane shi ba, da farko ya ƙaddamar da bincike a cikin fom:

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

Bayan tabbatar da cewa babu sauran rajistan ayyukan a cikin wuraren log ɗin da nake sha'awar kiran waya Bayan waɗannan biyun, na ƙara amfani da su kawai.

Gudanar da duba kira na tsarin clock_settime и saita ranar kuma kayi kokarin canza kwanan wata:

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

Ana ƙara jinkiri na daƙiƙa biyar don a ba da tabbacin “parasite” ɗin mu don gyara lokacin.

Mu kalli rahoton:

# 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

Anan muna ganin namu date kuma ba a san mu ba chkcache_processes. Ya ƙare a cikin rahoton da ke sama saboda aureport ya tsara fitarwa ta kwanan wata lokacin da aka canza daga binary, kuma taron ya faru a lokacin da muka saita. kwanan wata -s "2019-08-22 12:10:00".
Wanene ya haife shi?

# 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 - An gano parasite ɗin mu. Duk da halinsa na "mugunta", ba shi yiwuwa a ƙi tsarin samun damar sharadi, amma har yanzu ina so in sani. oscam, WTF?

Ana samun amsar da sauri a ciki kafofin:

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

Yadda kyan gani yake a nan yayi sharhi layi gargadi...

source: www.habr.com

Add a comment