Linux I/O (Giriş/Çykyş) gönükdirmegiň işleýşiniň esaslaryny öwreniň


Linux administrasiýasyndaky iň möhüm we gyzykly mowzuklaryň biri I/O gönükdirme. Buýruk setiriniň bu aýratynlygy, buýruklaryň girişini we/ýa-da çykyşyny we/ýa-da faýllara gönükdirmäge ýa-da turbalary ulanyp birnäçe buýrugy birleşdirip,\buýruk turbageçirijisi diýlip atlandyrylýan zady emele getirýär.

Işleýän ähli buýruklarymyz esasan iki görnüşli önüm öndürýär:

  1. buýruk netijesi - programma öndürmek üçin döredilen maglumatlar we
  2. programmanyň ýagdaýy we ulanyja programmanyň ýerine ýetiriş jikme-jikliklerini habar berýän säwlik habarlary.

Linux we Unix-a meňzeş beýleki ulgamlarda aşakda ady agzalan üç sany faýl bar, olaram faýl suratlandyryjy belgilerini ulanyp gabyk tarapyndan kesgitlenýär:

  1. stdin ýa-da 0 - klawiatura birikdirilen, programmalaryň köpüsi bu faýldan giriş okaýar.
  2. stdout ýa-da 1 - ekrana dakylýar we ähli programmalar netijelerini şu faýla we
  3. iberýärler
  4. stderr ýa-da 2 - programmalar ekrana birikdirilen bu faýla status/ýalňyşlyk habarlaryny iberýär.

Şonuň üçin I/O gönükdirme buýrugyň giriş çeşmesini, çykyş we ýalňyş habarlarynyň nirä iberilendigini üýtgetmäge mümkinçilik berýär. Bu bolsa \< we \> gönükdirme operatorlary tarapyndan mümkin boldy.

Standart çykyşy Linux-da faýla nädip gönükdirmeli

Adaty çykyşy aşakdaky mysaldaky ýaly gönükdirip bilersiňiz, şu ýerde, ýokarky buýrugyň çykyşyny soňraky gözden geçirmek üçin saklamak isleýäris:

$ top -bn 5 >top.log

Baýdaklar nirede:

  1. -b - topy partiýa re modeiminde işlemäge mümkinçilik berýär, şeýlelik bilen çykyşyny bir faýla ýa-da başga bir buýruga gönükdirip bilersiňiz.
  2. -n - buýruk gutarmanka gaýtalanma sanyny kesgitleýär.

Pişik buýrugyny ulanyp, top.log faýlynyň mazmunyny aşakdaky ýaly görüp bilersiňiz:

$ cat top.log

Buýrugyň çykyşyny goşmak üçin \>> operatory ulanyň.

Mysal üçin, ýokarky buýrugyň netijesini top.log faýlynda esasanam skriptiň içinde (ýa-da buýruk setirinde) goşmak üçin aşakdaky setiri giriziň:

$ top -bn 5 >>top.log

Bellik: Faýl beýan edijiniň belgisini ulanyp, ýokardaky çykyş gönükdirme buýrugy:

$ top -bn 5 1>top.log

Standart ýalňyşlygy Linux-da faýla nädip gönükdirmeli

Buýrugyň adaty ýalňyşlygyny gönükdirmek üçin, gabygyň näme etjek bolýandygyňyza düşünmegi üçin faýl düşündiriş belgisini, 2 aç-açan görkezmeli.

Mysal üçin, aşakdaky ls buýrugy adaty ulgam ulanyjysy tarapyndan kök aýratynlyklary bolmazdan ýerine ýetirilende ýalňyşlyk döreder:

$ ls -l /root/

Adaty ýalňyşlygy aşakdaky ýaly bir faýla gönükdirip bilersiňiz:

$ ls -l /root/ 2>ls-error.log
$ cat ls-error.log 

Adaty ýalňyşlygy goşmak üçin aşakdaky buýrugy ulanyň:

$ ls -l /root/ 2>>ls-error.log

Standart çykyşy/ýalňyşlygy bir faýla nädip gönükdirmeli

Şeýle hem buýrugyň ähli çykyşlaryny (adaty çykyş we adaty ýalňyşlyk) bir faýla alyp bolýar. Bu, faýl beýan edijiniň belgilerini görkezmek bilen iki mümkin bolup biler:

1. Birinjisi, aşakdaky ýaly işleýän has köne usul:

$ ls -l /root/ >ls-error.log 2>&1

Aboveokardaky buýruk, gabygyň ilki bilen ls buýrugynyň çykyşyny ls-error.log faýlyna (> ls-error.log ulanyp) iberjekdigini we soňra ähli ýalňyş habarlaryny faýl beýanyna ýazjakdygyny aňladýar. 2 (standart çykyş) ls-error.log faýlyna ugrukdyryldy ( 2> & 1 ulanyp). Adaty ýalňyşlygy görkezmek, adaty çykyş bilen bir faýla iberilýär.

2. Ikinji we göni usul:

$ ls -l /root/ &>ls-error.log

Şeýle hem bir faýla standart çykyşy we adaty ýalňyşlygy goşup bilersiňiz:

$ ls -l /root/ &>>ls-error.log

Standart girizişi faýla nädip gönükdirmeli

Commandshli buýruklaryň köpüsi girişini adaty girişden almasa we adaty standart giriş klawiatura birikdirilýär.

Klawiaturadan başga faýldan standart girişleri gönükdirmek üçin aşakdaky ýaly \< operatory ulanyň:

$ cat <domains.list 

Standart giriş/çykyşy faýla nädip gönükdirmeli

Aşakdaky ýaly sort buýrugyny ulanyp, şol bir wagtyň özünde standart giriş, standart çykyş gönükdirmesini ýerine ýetirip bilersiňiz:

$ sort <domains.list >sort.output

Turbalary ulanyp I/O gönükdirmäni nädip ulanmaly

Bir buýrugyň çykyşyny beýlekisiniň girişi hökmünde gönükdirmek üçin turbalary ulanyp bilersiňiz, bu çylşyrymly amallar üçin peýdaly buýruk setirlerini gurmagyň güýçli serişdesidir.

Mysal üçin, aşakdaky buýruk ýakynda üýtgedilen iň gowy bäş faýly görkezer.

$ ls -lt | head -n 5 

Ine, saýlawlar:

  1. -l - uzyn sanaw sanawyny açýar
  2. -t - iň täze faýllar bilen üýtgetmek wagty boýunça tertipläň ilki
  3. görkezilýär
  4. -n - görkezmek üçin sözbaşy setirleriniň sanyny kesgitleýär

Turbageçirijileri gurmak üçin möhüm buýruklar

Bu ýerde, buýruk turbageçirijilerini gurmak üçin iki möhüm buýrugy gysgaça gözden geçireris we olar:

adaty girişden buýruk setirlerini gurmak we ýerine ýetirmek üçin ulanylýan xargs. Aşakda xargs ulanýan turbageçirijiniň mysaly, bu buýruk faýly Linux-da birnäçe kataloglara göçürmek üçin ulanylýar:

$ echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

Saýlawlar:

  1. -n 1 - xargs-a buýruk setirinde iň köp argument ulanmagy we cp buýrugyna ibermegi tabşyrýar
  2. cp - faýly göçürýär
  3. -v - göçürme buýrugynyň gidişini görkezýär.

Has köp ulanylyş opsiýalary we maglumat üçin “xargs” sahypasyny okaň:

$ man xargs 

Tee buýrugy adaty girişden okaýar we adaty çykyşlara we faýllara ýazýar. Çaýyň nähili işleýändigini görkezip bileris:

$ echo "Testing how tee command works" | tee file1 

Linux ulgam dolandyryş meseleleri.

Linux süzgüçleri we turbalary barada has giňişleýin maglumat üçin şu makalany okaň, Apache serwerine girýän iň gowy 10 IP adresi tapyň, süzgüçleri we turbalary ulanmagyň peýdaly mysalyny görkezýär.

Bu makalada Linux-da I/O gönükdirmegiň esaslaryny düşündirdik. Aşakdaky seslenme bölümi arkaly pikirleriňizi paýlaşmagy ýatdan çykarmaň.