Iṣẹ-ṣiṣe ti o rọrun julọ, diẹ sii ni igbagbogbo Mo ṣe awọn aṣiṣe

Iṣẹ-ṣiṣe ti o rọrun julọ, diẹ sii ni igbagbogbo Mo ṣe awọn aṣiṣe

Iṣẹ́ kékeré kọ́ yìí wáyé lọ́sàn-án ọjọ́ Friday kan, ó sì yẹ kí ó ti gba ìṣẹ́jú 2-3. Ni gbogbogbo, bi nigbagbogbo.

A ẹlẹgbẹ beere fun mi lati fix awọn akosile lori olupin rẹ. Mo ṣe, mo fi fun u ati pe mo lọ silẹ laimọra: “Aago ni iyara iṣẹju 5.” Jẹ ki olupin naa mu amuṣiṣẹpọ funrararẹ. Idaji wakati kan, wakati kan ti kọja, o si tun nfa ati idakẹjẹ ti o bú.

“Omugo! - Mo ro pe, yi pada si console olupin - o dara, Emi yoo gba isinmi fun iṣẹju diẹ diẹ sii.”

Jẹ ki a ri ntp, rdate, sdwdate ko fi sori ẹrọ timesyncd alaabo ati ki o ko nṣiṣẹ.

# 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

Nibi Emi yoo ṣe akiyesi lẹsẹkẹsẹ pe akoko ohun elo jẹ deede: yoo rọrun lati lilö kiri siwaju sii.

Eyi ni ibi ti lẹsẹsẹ awọn aṣiṣe bẹrẹ.

Aṣiṣe akọkọ. Igbẹkẹle ara ẹni

Tẹ-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

Ohun gbogbo dara, akoko ti muuṣiṣẹpọ, akoko eto baamu ohun elo ọkan. "Gba," Mo sọ ati pada si iṣowo mi.

“Gba kini? - ẹlẹgbẹ naa binu. "O jẹ akoko kanna!"

Bi o ṣe yanju awọn iṣoro aṣoju diẹ sii, diẹ sii ni ironu rẹ yoo di parun ati pe iwọ ko ronu mọ pe ipo ọgọrun tabi ẹgbẹrun yoo yatọ, ṣugbọn kii ṣe ni akoko yii.

# 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

Akoko eto jẹ aṣiṣe lẹẹkansi.

Jẹ ki a gbiyanju lẹẹkansi:

# 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

Jẹ ki a ṣe ni oriṣiriṣi:

# 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

Ati bi eleyi:

# 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

Awọn akoko ti ṣeto fun a pipin keji, ati lẹsẹkẹsẹ bẹrẹ lati "adie" lẹẹkansi.

Ni akoko kanna, ninu awọn akọọlẹ, ni akoko iru iyipada afọwọṣe, a rii awọn ijabọ eto nikan pe akoko ti yipada, lẹsẹsẹ, ni ọna ti o tọ / aṣiṣe ati lẹẹkọọkan. Atunṣiṣẹpọ lati 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

nibi

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

Ni aaye yii, o ti jẹ dandan tẹlẹ lati wa idi naa, ṣugbọn ju ọdun 18 ti iṣakoso, ọpọlọ ti kojọpọ awọn iṣiro lori awọn aṣiṣe “akoko” ati, laisi iwa, tun da ibawi mimuuṣiṣẹpọ.
Jẹ ki a pa a patapata.

# 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

ati ninu awọn akọọlẹ

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

Atunṣiṣẹpọ sọnu ati bibẹkọ ti awọn àkọọlẹ ni o wa pristine.

Ṣiṣayẹwo awọn ipari tcpdump lori ibudo 123 lori gbogbo awọn atọkun. Ko si awọn ibeere, ṣugbọn akoko ṣi nṣiṣẹ kuro.

Aṣiṣe meji. Yara

Wakati kan wa titi di opin ọsẹ iṣẹ, ati pe Emi ko fẹ lati lọ kuro ni ipari ose pẹlu iṣoro kekere ti ko yanju (maṣe ṣe akiyesi akoko ninu koodu naa, a kọ nkan naa ni awọn ọjọ atẹle. ).
Ati nihin lẹẹkansi, dipo wiwa idi, Mo bẹrẹ lati gbiyanju lati wa pẹlu alaye fun abajade. Mo sọ pe “ipilẹṣẹ” nitori laibikita bawo ni alaye ti o ni oye fun abajade le jẹ, o jẹ ọna abawọn lati yanju iṣoro naa.

Olupin yii jẹ olupin ṣiṣanwọle ati iyipada ṣiṣan DVB-S2 sinu IP. ṣiṣan DVB-S ni awọn ami igba, nitorinaa awọn olugba, awọn onilọpọ, scramblers ati awọn tẹlifisiọnu nigbagbogbo lo wọn lati mu aago eto ṣiṣẹpọ. Awọn awakọ ọkọ DVB-S ti wa ni itumọ ti sinu ekuro, nitorinaa ọna ti o yara julọ lati rii daju pe a ti yọ ṣiṣan DVB-S2 kuro ni lati ge asopọ awọn kebulu ti o nbọ lati “awọn awo”. O da, olupin naa wa lẹhin odi, nitorina o jẹ.

Nitoribẹẹ, ti awọn akọọlẹ ba ti ni ohun ti o yẹ ki o wa nibẹ, eyi kii yoo ṣẹlẹ, ṣugbọn diẹ sii lori iyẹn, lẹẹkansi, ni ipari nkan naa.

O dara, niwọn igba ti a ti yọ gbogbo awọn ami satẹlaiti kuro, a yoo tun yọ awọn ti ilẹ kuro - ni akoko kanna a fa gbogbo awọn kebulu nẹtiwọọki jade. Awọn olupin di ge ni pipa lati ita aye ati ki o ṣiṣẹ patapata autonomously, ṣugbọn awọn eto aago jẹ ṣi ni nkanju.

Ọsẹ iṣẹ ti pari, ati pe ọrọ ọjọ / akoko funrararẹ ko ṣe pataki, nitorinaa o le kan lọ si ile, ṣugbọn nibi Mo ṣe aṣiṣe tuntun kan.

Aṣiṣe mẹta. Awọn oludamoran

Kò! Maṣe beere awọn ibeere lori awọn apejọ ati awọn aaye amọja gbogbogbo (a la stackoverflow) ti idahun ba nilo diẹ sii ju kikọ oju-iwe akọkọ ti Google ati kika oju-iwe ọkunrin kan.

Won yoo fi o pada si Google, ka kanna ọkunrin ati ki o gbajumo se alaye awọn ofin ti forum / ojula, sugbon yoo ko fun o ohun idahun.

Eyi ni diẹ ninu awọn okunfa idi:

  • ko si ẹnikan ayafi o le mọ iṣoro naa pẹlu;
  • ko si ẹnikan ti o le ṣe awọn idanwo labẹ awọn ipo kanna bi tirẹ

ati ero-ara:

  • o le ma fun gbogbo awọn igbewọle fun lohun iṣoro naa, nitori pe o ti wa tẹlẹ pẹlu itọsọna "ọtun" ati pe o ṣe afihan pataki ti ọrọ naa ti o fojusi lori rẹ;
  • alabojuto (alabojuto, arugbo-akoko, admin) jẹ ẹtọ nigbagbogbo, ti oludari naa ba jẹ aṣiṣe ... daradara, o mọ ...

Ti, nigbati o ba n fesi si awọn asọye, o wa laarin awọn opin ti awọn fokabulari ti ifọwọyi, lẹhinna o ni awọn ara to lagbara.

Ipinnu

Ko si ye lati pin awọn iṣẹ-ṣiṣe si rọrun ati eka.

A dẹkun gbigbekele iriri wa, awọn iṣiro, awọn onimọran ati bẹrẹ lati ma ṣe “ṣalaye” abajade ipari, ṣugbọn lati wa idi nigbagbogbo.

Niwọn igba ti ẹnikan ti ṣeto akoko, ipe eto ibaramu gbọdọ waye.

Gẹgẹ bi ninu iwe sọfitiwia awọn iwe aṣẹ ti o dara julọ jẹ awọn orisun, nitorinaa ni iṣakoso eto oluranlọwọ ti o dara julọ jẹ iṣayẹwo, ninu ọran wa se ayewo.

A akoko ti iyemejiMo ti lọ nipasẹ awọn mana, sugbon je ko šee igbọkanle daju pe awọn akoko ni Linux le nikan wa ni ṣeto clock_settime и settimeofday, nitorina fun idanwo akọkọ Mo yan gbogbo awọn ipe "dara":

# 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

ati sisọnu s390_runtime_instr, akoko, timerfd_create, eyiti àyẹwò àyẹ̀wò ko ṣe idanimọ rẹ, ni ibẹrẹ ṣe ifilọlẹ iṣayẹwo ni fọọmu:

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

Lẹhin ṣiṣe idaniloju pe ko si awọn akọọlẹ miiran ni awọn ipo log ti Mo nifẹ si syscals Yato si awọn meji wọnyi, Mo lo nikan wọn siwaju sii.

Ṣiṣe ayẹwo ipe eto clock_settime и settimeofday ati gbiyanju lati yi ọjọ pada:

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

Idaduro iṣẹju-aaya marun ti wa ni afikun ki "parasite" wa ni idaniloju lati ṣe atunṣe akoko naa.

Jẹ ki a wo ijabọ naa:

# 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

Nibi ti a ri wa ọjọ ati aimọ si wa chkcache_processes. O pari ni ijabọ loke nitori aureport lẹsẹsẹ awọn iṣẹjade nipasẹ ọjọ nigba iyipada lati alakomeji, ati pe iṣẹlẹ naa waye ni akoko ti a ṣeto. ọjọ -s "2019-08-22 12:10:00".
Ta ló bí i?

# 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/agbegbe/bin/oscam - A ti ri parasite wa. Pelu ihuwasi “irira” rẹ, ko ṣee ṣe lati kọ eto iraye si ipo, ṣugbọn Emi yoo tun fẹ lati mọ oscam, WTF?

Idahun si ti wa ni kiakia ri ni awọn koodu orisun:

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

Bawo ni o ṣe wuyi nibi commented jade ila ìkìlọ...

orisun: www.habr.com

Fi ọrọìwòye kun