Med Eksempelkommandoer

navnettar er efter de fleste konti forkortelse for tape archive. De pågældende “bånd”ville være alle de magnetiske lagerdrev, der var populære helt tilbage i 1950′ erne.

det antyder, at tar værktøjet kan være lidt gammelt og forbi dets prime. Men sandheden er, at tar gennem alle årene og gennem alle de seismiske ændringer i IT-verdenen har mistet ingen af sin magt og værdi.

i denne artikel vil jeg vise dig det grundlæggende i oprettelse af tar-arkiv, komprimering og restaurering. Lad os starte i begyndelsen.

dette eksempel tager alle filer og mapper inden for og under det aktuelle arbejdsmappe og bygger en arkivfil, som jeg Smart har navngivet archivename.tar.

Her bruger jeg tre argumenter efter tar-kommandoen:

  • c fortæller tar at oprette et nyt arkiv,
  • v indstiller skærmoutputtet til verbose, så jeg får opdateringer, og
  • f peger på filnavnet, jeg gerne vil give arkivet.

* er det, der fortællertar for at inkludere alle filer og lokale mapper rekursivt.

$ tar cvf archivename.tar *file1file2file3directory1directory1/morestuffdirectory1/morestuff/file100directory1/morestuff/file101

tar – kommandoen vil aldrig flytte eller slette nogen af de originale mapper og filer, du fodrer den-den laver kun arkiverede kopier.

Du skal også bemærke, at du bruger en prik (.) i stedet for en stjerne ( * ) i den foregående kommando vil omfatte selv skjulte filer (hvis filnavne begynder med en prik) i arkivet.

Hvis du følger med på din egen computer (som du helt sikkert burde), så vil du se en ny fil med navnet archivename.tjære. Den .tar filnavn udvidelse er ikke nødvendig, men det er altid en god ide at klart kommunikere formålet med en fil på så mange måder som muligt.

det er nemt at udtrække dit arkiv for at gendanne filerne: Brug bare xvf i stedet for cvf. Det vil i eksemplet gemme nye kopier af de originale filer og mapper på den aktuelle placering.

$ tar xvf archivename.tarfile1file2file3directory1directory1/morestuffdirectory1/morestuff/file100directory1/morestuff/file101

selvfølgelig kan du også få tar til at sende dine udpakkede filer til et andet sted ved hjælp af argumentet-C efterfulgt af målplaceringen:

$ tar xvf archivename.tar -C /home/mydata/oldfiles/

du vil ikke altid medtage alle filerne i et katalogtræ i dit arkiv.

Antag, at du har produceret nogle videoer, men de opbevares i øjeblikket i mapper sammen med alle slags grafik -, lyd-og tekstfiler (der indeholder dine noter). De eneste filer, du har brug for at tage backup af, er de endelige videoklip ved hjælp af .mp4 filnavn udvidelse.

Sådan gør du det:

$ tar cvf archivename.tar *.mp4

det er fantastisk. Men disse videofiler er enorme. Ville det ikke være rart at gøre arkivet lidt mindre ved hjælp af komprimering?

sig ikke mere! Kør bare den forrige kommando med argumentetz (lynlås). Det vil fortælle gsip-programmet at komprimere arkivet.

Hvis du vil følge konventionen, kan du også tilføje en .gz udvidelse ud over .tar der allerede er der. Husk: klarhed.

Sådan spiller det ud:

$ tar czvf archivename.tar.gz *.mp4

Hvis du prøver dette på egen hånd .mp4-filer og derefter kører ls-l på den mappe, der indeholder de nye arkiver, kan du bemærke, at .tar.gz filen er ikke så meget mindre end .tar fil, måske 10% eller deromkring. Hvad er der med det?

Nå,.mp4 filformatet er selv komprimeret, så der er meget mindre plads til gsip at gøre sine ting.

da tar er fuldt ud klar over sit miljø, kan du bruge det til at vælge Filer og mapper, der bor uden for din nuværende arbejdsmappe. Dette eksempel tilføjer alle .mp4 filer i /home/myuser/Videos/ mappe:

$ tar czvf archivename.tar.gz /home/myuser/Videos/*.mp4

fordi arkivfiler kan blive store, kan det nogle gange være fornuftigt at opdele dem i flere mindre filer, overføre dem til deres nye hjem og derefter genskabe den originale fil i den anden ende. Split-værktøjet er lavet til dette formål.

i dette eksempel fortæller-b at opdele arkivnavnet.tjære.1 GB-størrelse dele. Operationen navngiver derefter hver af delene-arkivnavn.tjære.GS.partaa, arkivnavn.tjære.GS.partab, arkivnavn.tjære.GS.partac og så videre:

$ split -b 1G archivename.tar.gz "archivename.tar.gz.part"

på den anden side genopretter du arkivet ved at læse hver af delene i rækkefølge (cat archivename.tjære.GS.del*), derefter omdirigere output til en ny fil kaldet archivename.tjære.

$ cat archivename.tar.gz.part* > archivename.tar.gz

Streaming file system archives

Her er hvor de gode ting starter. Jeg vil vise dig, hvordan du opretter et arkivbillede af en fungerende installation og streamer det til en fjernlagringsplacering — alt sammen inden for en enkelt kommando. Her er kommandoen:

# tar czvf - --one-file-system / /usr /var \ --exclude=/home/andy/ | ssh [email protected] \ "cat > /home/username/workstation-backup-Apr-10.tar.gz"

i stedet for at forsøge at forklare alt det med det samme, vil jeg bruge mindre eksempler til at udforske det et stykke ad gangen.

lad os oprette et arkiv med indholdet af en mappe kaldet vigtigstuff, der er fyldt med, virkelig vigtige ting:

$ tar czvf - importantstuff/ | ssh [email protected] "cat > /home/username/myfiles.tar.gz"importantstuff/filename1importantstuff/[email protected]'s password:

lad mig forklare det eksempel. I stedet for at indtaste arkivnavnet lige efter kommandoargumenterne (som du har gjort indtil nu), brugte jeg et bindestreg.

dash udsender data til standard output. Det giver dig mulighed for at skubbe arkivfilnavnedetaljerne tilbage til slutningen af kommandoen og fortæller tar at forvente kildeindholdet til arkivet i stedet.

Jeg pipede derefter (|) det unavngivne, komprimerede arkiv til et SSH-login på en fjernserver, hvor jeg blev bedt om min adgangskode.

kommandoen indeholdt i anførselstegn udførte derefter cat mod arkivdatastrømmen, som skrev streamindholdet til en fil kaldet myfiles.tjære.i min hjemmekatalog på den eksterne vært.

en fordel ved at generere arkiver på denne måde er, at du undgår overhead af et mellemtrin. Der er ingen grund til selv midlertidigt at gemme en kopi af arkivet på den lokale maskine. Forestil dig at sikkerhedskopiere en installation, der fylder 110 GB af sin 128 GB ledig plads. Hvor skal arkivet hen?

det var bare en mappe med filer. Antag, at du skal sikkerhedskopiere et aktivt operativsystem til et USB-drev, så du kan flytte det over til en separat maskine og slippe det i maskinens hoveddrev. hvis man antager, at der allerede er en ny installation af den samme version på den anden maskine, vil den næste kopi/indsæt-operation generere en nøjagtig kopi af den første.

BEMÆRK: Dette fungerer ikke på et måldrev, der ikke allerede har et filsystem installeret. For at håndtere denne situation skal du bruge dd

det næste eksempel opretter et komprimeret arkiv på USB-drevet kendt som/dev/sdc1.

--one-file-system argumentet udelukker alle data fra ethvert filsystem udover det nuværende. Dette betyder, at pseudopartitioner som /sys/ og /dev/ vil ikke blive tilføjet til arkivet. Hvis der er andre partitioner, du vil medtage (som du vil gøre for /usr/ og /var/ i dette eksempel), skal de eksplicit tilføjes.

endelig kan du ekskludere data fra det aktuelle filsystem ved hjælp af --exclude argument:

# tar czvf /dev/sdc1/workstation-backup-Apr-10.tar.gz \ --one-file-system \ / /usr /var \ --exclude=/home/andy/

lad os nu gå tilbage til det kommandoeksempel med fuld service. Brug det, du allerede har lært, til at arkivere alle vigtige mapper i et filsystem og kopiere arkivfilen til et USB-drev. Det skal give mening for dig nu:

# tar czvf - --one-file-system / /usr /var \ --exclude=/home/andy/ | ssh [email protected] \ "cat > /home/username/workstation-backup-Apr-10.tar.gz"

Der er meget mere administration godhed i form af bøger, kurser og artikler til rådighed på min bootstrap-it.com.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *