LFCS: Sådan arkiveres/komprimeres filer og kataloger, indstilling af filattributter og søgning af filer i Linux - del 3


For nylig startede Linux Foundation LFCS (Linux Foundation Certified Sysadmin) certificering, et helt nyt program, hvis formål er at give enkeltpersoner fra alle hjørner af kloden adgang til en eksamen, som, hvis den er godkendt, attesterer, at personen er vidende til at udføre grundlæggende til mellemliggende systemadministrationsopgaver på Linux-systemer. Dette inkluderer understøttelse af allerede kørende systemer og tjenester sammen med fejlfinding og analyse på første niveau plus evnen til at beslutte, hvornår man skal eskalere problemer til ingeniørteams.

Se nedenstående video, der giver ideen om Linux Foundation-certificeringsprogrammet.

Dette indlæg er del 3 af en 10-tutorial-serie, her i denne del vil vi dække, hvordan man arkiverer/komprimerer filer og mapper, indstiller filattributter og finder filer på filsystemet, der kræves til LFCS-certificeringseksamen.

Arkiverings- og komprimeringsværktøjer

Et arkiveringsværktøj til grupper grupperer et sæt filer i en enkelt enkeltstående fil, som vi kan sikkerhedskopiere til flere typer medier, overføre på tværs af et netværk eller sende via e-mail. Det mest anvendte arkiveringsværktøj i Linux er tar . Når et arkiveringsværktøj bruges sammen med et komprimeringsværktøj, giver det mulighed for at reducere den diskstørrelse, der er nødvendig for at gemme de samme filer og oplysninger.

tar bundter en gruppe filer sammen i et enkelt arkiv (ofte kaldet en tar-fil eller tarball). Navnet stod oprindeligt for båndarkiver, men vi skal bemærke, at vi kan bruge dette værktøj til at arkivere data til alle slags skrivbare medier (ikke kun til bånd). Tjære bruges normalt med et komprimeringsværktøj såsom gzip , bzip2 eller xz til at producere en komprimeret tarball.

# tar [options] [pathname ...]

Hvor repræsenterer det udtryk, der bruges til at specificere, hvilke filer der skal handles med.

Gzip er det ældste komprimeringsværktøj og giver mindst kompression, mens bzip2 giver forbedret komprimering. Derudover er xz den nyeste, men giver (normalt) den bedste kompression. Disse fordele ved bedste komprimering har en pris: den tid, det tager at fuldføre operationen, og systemressourcer, der bruges under processen.

Normalt har tar filer, der er komprimeret med disse hjælpeprogrammer, henholdsvis .gz , .bz2 eller .xz udvidelser. I de følgende eksempler bruger vi disse filer: file1, file2, file3, file4 og file5.

Gruppér alle filerne i den aktuelle arbejdsmappe, og komprimer den resulterende pakke med gzip , bzip2 og xz (bemærk brugen af en almindelig udtryk for at angive, hvilke filer der skal inkluderes i pakken - dette er for at forhindre arkiveringsværktøjet til at gruppere tarballs oprettet i tidligere trin).

# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]

Angiv indholdet af en tarball, og vis de samme oplysninger som en lang katalogoversigt. Bemærk, at opdatering eller tilføj handlinger ikke kan anvendes på komprimerede filer direkte (hvis du har brug for at opdatere eller tilføje en fil til en komprimeret tarball, skal du afpakke tarfilen og opdater/tilføj den, komprimer derefter igen).

# tar tvf [tarball]

Kør en af følgende kommandoer:

# gzip -d myfiles.tar.gz	[#1] 
# bzip2 -d myfiles.tar.bz2	[#2] 
# xz -d myfiles.tar.xz 		[#3] 

Derefter

# tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
# tar --update --file myfiles.tar file4 (adds the updated file)

og

# gzip myfiles.tar		[ if you choose #1 above ]
# bzip2 myfiles.tar		[ if you choose #2 above ]
# xz myfiles.tar 		[ if you choose #3 above ]

Langt om længe,

# tar tvf [tarball] #again

og sammenlign ændringsdatoen og -tidspunktet for fil4 med de samme oplysninger som vist tidligere.

Antag, at du vil foretage en sikkerhedskopi af brugerens hjem -mapper. En god sysadmin-praksis ville være (kan også specificeres af virksomhedens politikker) for at udelukke alle video- og lydfiler fra sikkerhedskopier.

Måske er din første tilgang at udelukke alle filer med en .mp3 eller .mp4 udvidelse (eller andre udvidelser) fra sikkerhedskopien. Hvad hvis du har en smart bruger, der kan ændre udvidelsen til .txt eller .bkp , vil din tilgang ikke gøre dig meget godt. For at registrere en lyd- eller videofil skal du kontrollere dens filtype med fil. Følgende shell-script udfører jobbet.

#!/bin/bash
# Pass the directory to backup as first argument.
DIR=$1
# Create the tarball and compress it. Exclude files with the MPEG string in its file type.
# -If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
# -If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

Du kan derefter gendanne sikkerhedskopien til den oprindelige brugers hjemmekatalog (bruger_gendannelse i dette eksempel) og bevare tilladelser med følgende kommando.

# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

Læs også :

  1. 18 tjære kommandoeksempler i Linux
  2. Dtrx - Et intelligent arkivværktøj til Linux

Brug find Command til at søge efter filer

Kommandoen find bruges til at søge rekursivt gennem katalogtræer efter filer eller mapper, der matcher bestemte egenskaber, og kan derefter enten udskrive de matchende filer eller mapper eller udføre andre handlinger på kampene.

Normalt søger vi efter navn, ejer, gruppe, type, tilladelser, dato og størrelse.

# find [katalog_til_søgning] [udtryk]

Find alle filer ( -f ) i det aktuelle bibliotek (. ) og 2 underkataloger nedenfor ( -maksimal dybde 3 inkluderer den aktuelle arbejdsmappe og 2 niveauer nede), hvis størrelse ( -størrelse ) er større end 2 MB .

# find . -maxdepth 3 -type f -size +2M

Filer med 777 tilladelser betragtes undertiden som en åben dør for eksterne angribere. Uanset hvad er det ikke sikkert at lade nogen gøre noget med filer. Vi vil tage en ret aggressiv tilgang og slette dem! (‘ {} + bruges til at “samle” resultaterne af søgningen).

# find /home/user -perm 777 -exec rm '{}' +

Søg efter konfigurationsfiler i /etc , der er åbnet ( -tid ) eller ændret ( -mtime ) mere ( +180 ) eller mindre ( -180 ) end for 6 måneder siden eller for nøjagtigt for 6 måneder siden ( 180 ) .

Ændr følgende kommando i henhold til eksemplet nedenfor:

# find /etc -iname "*.conf" -mtime -180 -print

Læs også : 35 Praktiske eksempler på Linux 'find' kommando

Filtilladelser og grundlæggende attributter

De første 10 tegn i output fra ls -l er filattributterne. Den første af disse tegn bruges til at angive filtypen:

  1. - : en almindelig fil
  2. -d : et bibliotek
  3. -l : et symbolsk link
  4. -c : en karakterenhed (der behandler data som en strøm af bytes, dvs. en terminal)
  5. -b : en blokenhed (som håndterer data i blokke, dvs. lagerenheder)

De næste ni tegn i filattributterne kaldes filtilstand og repræsenterer læsningen ( r ), skriv ( w ) og udfør ( x ) tilladelser for filens ejer, filens gruppeejer og resten af brugerne (ofte benævnt "verdenen").

Mens læsningstilladelsen i en fil tillader, at den samme åbnes og læses, tillader den samme tilladelse i en mappe, at dens indhold kan vises, hvis også eksekveringstilladelsen er angivet. Derudover tillader eksekveringstilladelsen i en fil, at den håndteres som et program og køres, mens det i et bibliotek tillader, at det samme cd'es ind i det.

Filtilladelser ændres med kommandoen chmod , hvis grundlæggende syntaks er som følger:

# chmod [new_mode] file

Hvor ny_tilstand enten er et oktalt tal eller et udtryk, der specificerer de nye tilladelser.

Det oktale tal kan konverteres fra dets binære ækvivalent, der beregnes ud fra de ønskede filtilladelser for ejeren, gruppen og verden som følger:

Tilstedeværelsen af en bestemt tilladelse er lig med en effekt på 2 ( r = 22 , w = 21 , x = 20 ), mens dets fravær svarer til 0 . For eksempel:

For at indstille filens tilladelser som ovenfor i oktal form skal du skrive:

# chmod 744 myfile

Du kan også indstille en filtilstand ved hjælp af et udtryk, der angiver ejerens rettigheder med bogstavet u , gruppeejerens rettigheder med bogstavet g , og resten med o . Alle disse " individer " kan repræsenteres på samme tid med bogstavet a . Tilladelser gives (eller tilbagekaldes) med henholdsvis + eller - tegnene.

Som vi forklarede tidligere, kan vi tilbagekalde en bestemt tilladelse forud for den med minustegnet og angive, om den skal tilbagekaldes for ejeren, gruppeejeren eller alle brugere. One-liner nedenfor kan fortolkes som følger: Skift tilstand for alle ( a ) brugere, tilbagekald ( - ) udfør tilladelse ( x ) .

# chmod a-x backup.sh

Tildeling af læsning, skrivning og udførelse af tilladelser til en fil til ejeren og gruppeejeren og læsetilladelser for hele verden.

Når vi bruger et 3-cifret oktalt tal til at indstille tilladelser til en fil, angiver det første ciffer tilladelserne for ejeren, det andet ciffer for gruppeejeren og det tredje ciffer for alle andre:

  1. Ejer : (r = 22 + w = 21 + x = 20 = 7)
  2. Gruppeejer : (r = 22 + w = 21 + x = 20 = 7)
  3. Verden : (r = 22 + w = 0 + x = 0 = 4),

# chmod 774 myfile

Med tiden og med praksis vil du være i stand til at beslutte, hvilken metode der skal ændres, en filtilstand, der fungerer bedst for dig i hvert tilfælde. En lang katalogoversigt viser også filens ejer og dets gruppeejer (som fungerer som en rudimentær, men alligevel effektiv adgangskontrol til filer i et system):

Filejerskab ændres med kommandoen chown . Ejeren og gruppeejeren kan skiftes på samme tid eller separat. Dens basale syntaks er som følger:

# chown user:group file

Hvor mindst bruger eller gruppe skal være til stede.

Ændring af ejeren af en fil til en bestemt bruger.

# chown gacanepa sent

Ændring af ejer og gruppe af en fil til en bestemt bruger: gruppepar.

# chown gacanepa:gacanepa TestFile

Ændring af kun gruppeejeren af en fil til en bestemt gruppe. Bemærk kolon før gruppens navn.

# chown :gacanepa email_body.txt

Konklusion

Som sysadmin skal du vide, hvordan du opretter og gendanner sikkerhedskopier, hvordan du finder filer i dit system og ændrer deres attributter sammen med et par tricks, der kan gøre dit liv lettere og forhindrer dig i at løbe ind i fremtidige problemer.

Jeg håber, at tipene i denne artikel vil hjælpe dig med at nå dette mål. Du er velkommen til at tilføje dine egne tip og ideer i kommentarfeltet til gavn for samfundet. Tak på forhånd!

  1. Om LFCS
  2. Hvorfor få en Linux Foundation-certificering?
  3. Tilmeld dig LFCS-eksamen