Folosind unix parte 5

În ultimii ani, hardware-ul a devenit extrem de ieftin. Gigabiți de capacitate a unității de hard disk costă 0,5 dolari, un monitor LCD de 19 inch costă mai puțin de 200 de dolari, iar un computer cu sistem de operare UNIX® poate fi cumpărat pentru mai puțin de 1,000 de dolari. Chiar și hardware-ul de server specializat pentru servere a devenit un produs accesibil pentru o gamă largă de clienți.

Prețurile scăzute ale echipamentelor permit companiilor mijlocii și mari să aloce un calculator separat pentru fiecare sarcină. Mai mult, a devenit foarte simplu să măriți puterea de procesare: conectați computerul la rețea, copiați imaginea hard diskului într-un nou computer "curat" (cutie albă) și reporniți-l. Fiecare computer are nevoie de o serie de condiții pentru o funcționare normală: tensiune stabilă, ventilație bună a carcasei și suport tehnic competent.

Una dintre cele mai frecvente probleme când gestionați un număr mare de computere este să furnizați o instalare sincronă a celor mai recente actualizări software pentru fiecare dintre ele. Uneori trebuie să instalați aceeași versiune a programului pe toate computerele, pentru a nu confunda utilizatorii cu diferențe și posibile neconcordanțe între diferitele versiuni ale acestui program. Un alt exemplu este situația când trebuie să puneți același sistem de operare pe toate serverele care îndeplinesc aceeași sarcină. Predictibilitatea este bună.

Chiar și pentru un utilizator care are doar un laptop și un PC desktop, sincronizarea a două computere poate fi o sarcină plictisitoare. Astăzi a lucrat cu un laptop, ieri - cu un PC desktop, și de data aceasta le-a încărcat câteva fișiere de pe serverul central. Cu o actualizare atât de rapidă a datelor, este ușor să pierdeți concentrarea în ele.

În cel de-al cincilea articol al acestei serii de articole, vom fi familiarizați cu tehnici utile care vor ajuta la optimizarea operațiilor cu un număr mare de fișiere.

Utilitarul de gudron

Evident, cel mai simplu mod de a asigura coerența datelor pe mai multe calculatoare - transporta întotdeauna fișiere (foi de calcul, baze de date, fișiere text, etc) cu tine. În cazul în care utilizatorul are acces fizic la calculator cu care funcționează, atunci ar trebui să efectueze un disc gol CD-RW sau USB-drive și pur și simplu copiați-le la fișierele dorite de pe computer.

Cu toate acestea, există situații în care aveți nevoie de fișiere de pe un computer la distanță sau un computer se află în camera serverului, iar dispozitivele externe de stocare nu pot fi conectate la acesta. Apoi, utilizatorul poate face o arhivă a fișierelor lor (toate sau unele) pentru a se conecta la o rețea locală (LAN) sau o rețea de arie largă (WAN), copiați fișierul în computerul țintă în rețea, fișiere unzip de pe computerul țintă, și să continue să lucreze la. În plus, puteți utiliza copii de arhivă ale datelor în caz de "dezastru", de exemplu, dacă laptopul a fost uitat într-un taxi.

Pe sistemele bazate pe UNIX, tar este folosit pentru a lucra cu arhive. Utilitarul de tariere leagă unul sau mai multe fișiere sau directoare într-un singur fișier, păstrând tipurile de fișiere, drepturile de acces la acestea, numele proprietarilor acestora și locația acestor fișiere în sistemul de fișiere sursă. Utilitarul tar scrie o copie exactă a datelor pe bandă: tar este decriptată ca arhivator de bandă.

De exemplu, să presupunem că există un director cu fișiere diferite, după cum se arată în Lista 1.

Listarea 1. Directorul cu fișiere

Pentru a crea o arhivă pentru două fișiere și un director, rulați tar:

Opțiunea --create spune tar. că trebuie să creați o arhivă. Opțiunea --verbose listează fișierele cu care rulează tar. Opțiunea --gzip vă permite să executați o compresie gzip care comprimă arhiva și - arhive.tgz - fișierul specifică numele arhivei.

Carcasa shell interpretează asteriscul (*) ca "orice fișier" și, prin urmare, extinde acțiunea arhivatorului la două fișiere și un director. B informații de ieșire de la tar. Se poate vedea că tar arhiva directorul css și este chemat din nou pentru a arhiva conținutul său.

După rularea gudronului. directorul curent de lucru conține noul fișier archive.tgz:

Acum puteți copia arhive.tgz pe un alt computer și utilizați tar de pe computerul la distanță pentru a extrage date din această arhivă. Comanda care restaurează fișiere este foarte asemănătoare cu comanda pentru arhivare. Pentru a dezarhiva comanda:

Această comandă tar va extrage conținutul arhivei archive.tgz. Opțiunea - extract este opusul opțiunii --create. Opțiunea --gunzip este inversa opțiunii --gzip. și --preserve-permissions restabilește drepturile de acces folosite în fișierele sursă.

După executarea acestei comenzi, fișierele salvate sunt restaurate cu păstrarea timpului de modificare, a drepturilor lor de acces și a numelor acestora. Catalogul css cu conținutul său este, de asemenea, creat in situ.

Utilitarul de gudron are multe opțiuni: - creați. --extract și --list (care afișează conținutul fișierului .tar fără a-l extrage). Alte opțiuni (de exemplu, --gzip și --preserve-permissions) controlează procesul de creare a unei arhive de tar. O descriere detaliată a sintaxei fiecărei opțiuni poate fi găsită pe pagina tar din manualul pentru o anumită versiune a sistemului UNIX.

Această comandă efectuează mai multe acțiuni simultan. Să o analizăm:

  1. Secvența de comenzi închise în paranteze se numește subshell. Modificările făcute în shell-ul subshell - de exemplu, schimbarea directorului - nu vor afecta întreaga echipă și va afecta numai mediul shell shell. Prin urmare, prima secvență de control este (cd

/ chestii; tar --create --gzip --file - *) modifică directorul de lucru curent la

Deci, cu ajutorul unei comenzi, arhiva a fost creată, transferată și despachetată. Apropo, modificând ușor această comandă, puteți să copiați arhiva de pe un computer la distanță și să o dezarhivați. Iată comanda pe care trebuie să o executați pe computerul local:

Arhiva de pe calculatorul la distanță va fi deschisă, apoi fluxul de octeți din pisică va fi trimis la shell-ul imbricat, care va înlocui directorul de lucru și apoi extrage arhiva. (Adăugarea compusului -C

/ stuff la comanda tar va produce aceleași rezultate; exemplul arată doar că subshell-ul poate funcționa și cu datele de intrare.)

Puteți utiliza aceeași tehnică pentru a copia fișiere în același computer. Încercați următoarea comandă:

Utilizarea tarului împreună cu ssh este o modalitate convenabilă de a transfera fișiere de pe un computer în altul. Utilitatea tar crează o arhivă, iar ssh asigură un transfer sigur de arhivă.

Un alt mod de a realiza această sarcină este de a folosi capacitatea ssh încorporată de a transfera fișiere de pe un computer în altul. SFTP - alte aplicații ssh - oferă toate proprietățile protocolului File Transfer Protocol (FTP), și, în plus, protejează fișierele în timpul transmisiei (transmisia prin FTP este nici o protecție a datelor, astfel încât acesta este în principal utilizat numai pentru a încărca fișierul pentru a deschide FTP -Server).

Un utilizator care are experiență cu FTP va controla cu ușurință sftp. care este foarte similar cu FTP. Trebuie doar să introduceți destinația SFTP pentru conectarea la un computer numit de destinație la distanță și de a efectua comanda FTP pentru a muta fișiere (de exemplu, CD-uri. Lcd. Mput si mget).

De exemplu, dacă doriți să copiați unele fișiere și directoare de pe un computer la distanță într-un director de pe computerul local, puteți utiliza comanda din listare 2.

În acest exemplu, cp -pr copiază recursiv toate fișierele și directoarele în directorul / home / joe / stuff. Opțiunea -r este responsabilă pentru recursivitate; opțiunea -p salvează timpul pentru editarea și crearea fișierelor.

De asemenea, puteți copia fișiere în același computer utilizând scp:

Dar dacă specificați un sistem la distanță, scp va copia fișierele prin rețea:

Să presupunem că directorul / home / joe / stuff există pe computerul la distanță și că utilizatorul are dreptul să scrie date către el; Este creată o copie exactă a celor două fișiere și a subdirectoarelor de pe computerul la distanță. Cum cp. scp utilizează opțiunea -p pentru a salva timpul de schimbare a fișierului și -r pentru recurs.

scp de utilitate este extrem de ușor de utilizat, mai ales atunci când este administrat de o cheie publică și o cheie privată, astfel încât să nu introduceți o parolă pentru fiecare operațiune efectuată ssh / PCD / SFTP.

Cu toate acestea, utilitarul scp are o caracteristică de luat în considerare. Să presupunem că există un subdirector numit doc în directorul de acasă și trebuie să îl copiați în sistemul la distanță. În plus, este necesar ca conținutul

/ doc a înlocuit conținutul directorului doc pe computerul la distanță dacă numele fișierului sau directorului se potrivesc. Echipa care va rezolva această sarcină va arăta astfel:

Rețineți că calea către directorul de pe computerul de la distanță nu are o bară de închidere (/). scp interpretează această comandă ca fiind "conținutul directorului copie

/ Doc la directorul / calea / spre / doc de pe masina de la distanță. „Ca cu comanda cp. Fișierele șterse și foldere ale căror nume se potrivesc cu numele de fișiere și directoare să fie susținute sunt suprascrise, și fișiere unice de pe sistemul de la distanță rămân intacte .

Cu toate acestea, hai să vedem ce se va schimba dacă adăugați o slash de închidere:

Apoi, scp interpretează comanda ca "director de copiere

/ Doc la directorul / calea / spre / doc /. „Prin urmare, în loc de a suprascrie conținutul directorului de la distanță, directorul doc de pe computerul sursă va fi pur și simplu copiat în directorul aflat la distanță.

Prezența sau absența unei tăieturi de închidere nu reprezintă o eroare - ar trebui utilizată în funcție de situație.

Sincronizați-vă datele

scp este foarte convenabil, deoarece este foarte asemănător cu cp. tar și ssh sunt puțin mai complicate de utilizat, dar salvează metadatele fișierului, cum ar fi numele proprietarului și permisiunile fișierului.

Cu toate acestea, atât utilitarele tar și scp nu pot sincroniza conținutul directoarelor locale și de la distanță. De exemplu, dacă utilizatorul a înlocuit un fișier în sistemul local și celalalt pe sistemul de la distanță, va trebui să dublați comanda scp pentru a sincroniza datele. Acum, imaginați-vă că există o mulțime de fișiere modificate, cele mai multe dintre acestea fiind numite și ele la fel. Evident, sincronizarea lor va necesita un timp considerabil.

Din fericire, există un utilitar rsync. care sincronizează fișierele. Avantajul rsync este că transmite numai acele fișiere care au fost modificate, reducând astfel cantitatea de date transferate.

Ca și în tar. Puteți combina utilizarea rsync cu ssh pentru a vă conecta la un sistem la distanță și pentru a sincroniza fișierele de pe calculatoarele de la distanță și locale. Ca în scp. Puteți utiliza rsync pentru a copia fișierele pe computerul local. De asemenea, puteți folosi rsync pentru a obține o listă de fișiere.

Și cel mai important avantaj al rsync este că acest utilitar poate face un director o copie exactă a celeilalte, ștergând, dacă este necesar, în directorul țintă acele fișiere care nu există în sursă. Să aruncăm o privire la câteva exemple de utilizare a acestui utilitar:

Această comandă copiază toate fișierele text din directorul de lucru curent în directorul de domiciliu al utilizatorului de pe computerul numit destinație. Opțiunea -times salvează timpul de creare, ultima accesare și modificare pentru fiecare fișier.

Această comandă rsync afișează directorul doc local în directorul de domiciliu de pe computerul la distanță. Momentul de modificare, accesare și crearea fișierului este salvat, drepturile de acces la fișier sunt, de asemenea, salvate, iar fișierele suplimentare (fișiere din directorul la distanță care nu există în fișierul sursă) sunt șterse.

Deoarece rsync poate duce la modificări semnificative, puteți adăuga opțiunea --dry-run la linia de comandă a comenzii pentru a vedea pașii rsync. Opțiunea - dry-run nu face nicio modificare în rsync și oferă doar informații despre acțiunile curente ale acestui utilitar, așa cum se arată în Lista 3.

Listarea 3. Vizionarea acțiunii rsync

rsync are următoarele opțiuni:

  • -a este cea mai puternică opțiune, deoarece este o abreviere pentru secvența de evacuare - grup - proprietar - permuri - ori - servicii - legături - recursiv. Opțiunea --devices se recreează fișierele dispozitivului, iar opțiunea --links copiază link-urile simbolice în sine și nu ceea ce specifică.
  • --actualizarea nu permite rsync să suprascrie versiunile noi ale fișierelor cu cele vechi. Dacă fișierul de pe sistemul de la distanță este o versiune mai nouă decât în ​​sistemul local, acest fișier este salvat neschimbat.
  • Încercați să utilizați --verbose pentru a vedea cum funcționează utilitarul rsync.

O descriere detaliată a rsync poate fi găsită pe pagina sa din manualul utilizatorului. O caracteristică importantă a acestui utilitar este că poate include și exclude fișiere din procesul de sincronizare printr-o condiție specificată de utilizator.

concluzie

UNIX a fost utilizat în sisteme de rețea de peste 20 de ani. În acest timp s-au înregistrat schimbări semnificative în echipament, dar majoritatea software-ului rămân aceleași și lucrul cu acesta oferă în continuare unele dificultăți administratorilor de sistem și utilizatorilor. Una dintre cele mai mari probleme este urmărirea datelor, ceea ce devine din ce în ce mai dificil datorită capacității tot mai mari de a face discuri. Astfel de utilități ca gudronul. sftp / scp și rsync vă vor ajuta să restaurați ordinea chiar și pe computerul care rulează cel mai mult.

Partea 6 din această serie de articole va lua în considerare conceptul de automatizare - un alt mod de a economisi timp și de a reduce riscul de eroare datorat factorului uman.

Obțineți produse și tehnologii

  • Z cochilie. Din pagina principală a proiectului shell shell, puteți descărca cea mai recentă versiune a shell-ului Z.
  • Software-ul de încercare IBM. versiuni de încercare ale software-ului pentru dezvoltatori care pot fi descărcate direct de la comunitatea dezvoltatorWorks.

Articole similare