Bandbackup i Linux
Att använda band är väldigt annorlunda mot att använda externa hårddiskar eller
USB-stickor att göra backup på. Istället för att bara skicka filerna till en
monterad enhet i systemet måste man här använda speciella program och hålla reda
på vart på bandet man är. Ett band är precis vad det låter som, ett band, precis
som de gamla kasettbanden eller VHS-banden. Det innebär att datan lagras i en
lång sekvens på bandet, alla filerna efter varandra. En fil på bandet är då en
tar
-fil som har en början och ett slut. tar
-filen i sin tur innehåller alla
de filer som vi har gjort backup på. De flesta band som idag används i
backupsyfte rymmer långt över 1 gb. Den bandstationen jag själv använder och som
jag kommer att använda i denna artikel är en DAT-bandare som rymmer 72 gb
data. Fast egentligen ryms inte 72 gb data på bandet då dessa 72 gb avser
komprimerad data. Notera här att komprimeringen är inget jag behöver bry mig om
själv eftersom bandstationen sköter allt detta i
hårdvaran. Hårdvarukomprimeringen har många fördelar jämfört med om vi skulle
komprimerat datan själv. Den största fördelen är att vår dators CPU inte
belastas med komprimeringen, allt sker i bandstationen. I princip alla
bandstationer använder inbyggd komprimering.
Nedan visas en enkel skiss på hur band lagrar data. Tar-filerna nedan på bandet är just tar-filerna, inte de enskilda filerna som vi har tagit backup på.
Bandstationer under Linux
Bandstationer i Linux dyker upp som /dev/st0
för första SCSI-bandstationen
(samt även USB-enheter), och som /dev/ht0
för första
IDE-bandstationen. I mitt system är min bandstation /dev/st0
eftersom det är
en extern USB-enhet. Använder man enheten /dev/st0
så kommer bandet
automatiskt att spolas tillbaks till början efter varje operation. Vill man att
bandet skall stanna där den senaste operationen tog slut måste man istället
använda enheten /dev/nst0
(n för non-rewinding). Detsamma gäller för
IDE-enheterna, här heter alltså den icke-tillbakaspolande enheten /dev/nht0
.
Om vi ska förflytta oss på bandet måste vi använda oss av en non-rewinding
enhet, annars kommer bandet spolas tillbaks från början så fort kommandot har
utförts.
Program
De program vi kommer att använda här för att göra backup och för att styra
bandstationen är tar
och mt
. tar
använder vi ofta för att packa ihop och
skicka filer över internet. Men tar
är faktiskt egentligen avsett för just
bandbackuper. Namnet tar
kommer just från tape archive.
Vi gör en backup
Det enklaste sättet att förstå sig på bandbackuper är att testa sig fram lite. Så här kommer jag att visa hur man kan göra flera backuper på samma band, enligt skissen ovan. Här kommer vi att göra backup på tre hemkataloger på systemet, där varje hemkatalog ligger för sig själv på bandet. Så om vi enbart vill återställa Lisas hemkatalog kan vi spola fram bandet till Lisas tar-fil och återställa endast den.
Skapa backupen
/home
ser ut som följande på mitt system.
root@red-dwarf:/home# ls -l
total 40
drwxr-xr-x 2 joakim joakim 4096 okt 11 22:00 joakim
drwxr-xr-x 2 kalle kalle 4096 okt 11 22:05 kalle
drwxr-xr-x 3 lisa lisa 4096 okt 11 22:03 lisa
drwx------ 2 root root 16384 apr 27 19:50 lost+found
Det är alltså katalogerna joakim, kalle och lisa som vi ska ta backup på. Vi
börjar med att starta vår bandstation, sätta i ett band och kontrollera
statusen. Statusen kontrollerar vi med kommandot mt
.
root@red-dwarf:/home# mt -f /dev/st0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 0
block number = 0
Här ser vi att vi står i början av bander (file number = 0
och block number =
0
). Inga fel har heller detekteras på bandet eller bandstationen så vi går
vidare med backupen.
Först gör vi backup av joakims hemkatalog. Därefter kontrollerar vi var på bandet
vi befinner oss med mt
-kommandot igen. Observera att jag här hela tiden
använder /dev/nst0
för att bandet inte ska spolas tillbaks automatiskt.
root@red-dwarf:/home# tar cvf /dev/nst0 joakim/
joakim/
joakim/.bashrc
joakim/story.txt
joakim/.bash_history
joakim/wallpaperimage.jpg
joakim/.bash_logout
joakim/toys-wallpaper-hd-16339-17046-hd-wallpapers.jpg
joakim/2iphone.jpg
joakim/.profile
joakim/alice.txt
joakim/.viminfo
root@red-dwarf:/home# mt -f /dev/nst0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 1
block number = 0
Vi befinner oss nu på filnummer ett. Kom ihåg att vi alltid börjar räkna från noll, så filnummer ett är egentligen den andra filen. Det vill säga att vi står efter den första filen (fil 0). Nu fortsätter vi med backupen av Kalles hemkatalog och kontrollerar sedan återigen vart vi befinner oss på bandet.
root@red-dwarf:/home# tar cvf /dev/nst0 kalle/
kalle/
kalle/spreadsheet.csv
kalle/.bashrc
kalle/.bash_history
kalle/hugesheet.csv
kalle/.bash_logout
kalle/417259.jpg
kalle/Sample-Spreadsheet-500000-rows.csv
kalle/.profile
root@red-dwarf:/home# mt -f /dev/nst0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 2
block number = 0
Mycket riktigt befinner vi oss nu på filnummer två (alltså vid starten av den tredje filen, som inte finns än). Se bilden här nedan vart vi befinner oss på bandet.
Nu bestämmer vi oss för att göra klart Lisas backup en annan dag och spolar
tillbaks bandet och stänger av bandstationen. Detta gör vi med mt -f /dev/st0
rewind
.
När vi några dagar senare vill fortsätta med backup och återgå till
filnummerposition två (starten till den tredje filen) använder vi återigen
mt
-kommandot, denna gång med fsf 2
. Vi kontrollerar därefter att vi befinner
oss på rätt plats med status
och gör sedan backupen med tar
.
root@red-dwarf:/home# mt -f /dev/nst0 fsf 2
root@red-dwarf:/home# mt -f /dev/nst0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 2
block number = 0
root@red-dwarf:/home# tar cvf /dev/nst0 lisa/
lisa/
lisa/.bashrc
lisa/visualization_-_sun_and_sky_demo.dwg
lisa/.bash_history
lisa/FL_insurance_sample.csv.zip
lisa/.bash_logout
lisa/.profile
lisa/__MACOSX/
lisa/__MACOSX/._FL_insurance_sample.csv
lisa/big_buck_bunny_720p_2mb.mp4
lisa/Sample-SQL-File-10000rows.sql
root@red-dwarf:/home# mt -f /dev/nst0 status
drive type = 114
drive status = 1191182336
sense key error = 0
residue count = 0
file number = 3
block number = 0
Nu befinner vi alltså på filnummer tre (fyra eftersom vi börjar på noll). Nu ska
kontrollera så att allting verkligen stämmer. Låt oss börja med att se så att
Joakims filer fortfarande finns som första filen på bandet (filnummer noll). Här
använder vi asf
till mt
som betyder att vi vill gå till den absouluta
positionen (samma sak som att spola tillbaks bandet till noll, och sedan utgå
därifrån).
root@red-dwarf:/home# mt -f /dev/nst0 asf 0
root@red-dwarf:/home# tar tvf /dev/st0
drwxr-xr-x joakim/joakim 0 2016-10-11 22:00 joakim/
-rw-r--r-- joakim/joakim 3526 2016-10-11 21:56 joakim/.bashrc
-rw-r--r-- joakim/joakim 9 2016-10-11 21:59 joakim/story.txt
-rw------- joakim/joakim 499 2016-10-11 22:00 joakim/.bash_history
-rw-r--r-- joakim/joakim 185615 2015-12-19 14:25 joakim/wallpaperimage.jpg
-rw-r--r-- joakim/joakim 220 2016-10-11 21:56 joakim/.bash_logout
-rw-r--r-- joakim/joakim 501977 2016-09-03 08:46 joakim/toys-wallpaper-hd-16339-17046-hd-wallpapers.jpg
-rw-r--r-- joakim/joakim 200051 2015-12-19 14:28 joakim/2iphone.jpg
-rw-r--r-- joakim/joakim 655 2016-10-11 21:56 joakim/.profile
-rw-r--r-- joakim/joakim 6 2016-10-11 22:00 joakim/alice.txt
-rw------- joakim/joakim 599 2016-10-11 22:00 joakim/.viminfo
Mycket riktigt, här finns alla joakims filer. Nu spolar vi fram bandet till filnummer två och ser efter ifall lisas filer finns där.
root@red-dwarf:/home# mt -f /dev/nst0 asf 2
root@red-dwarf:/home# tar tvf /dev/st0
drwxr-xr-x lisa/lisa 0 2016-10-11 22:03 lisa/
-rw-r--r-- lisa/lisa 3526 2016-10-11 21:56 lisa/.bashrc
-rw-r--r-- lisa/lisa 553297 2011-11-08 20:10 lisa/visualization_-_sun_and_sky_demo.dwg
-rw------- lisa/lisa 414 2016-10-11 22:03 lisa/.bash_history
-rw-r--r-- lisa/lisa 866400 2013-01-29 21:51 lisa/FL_insurance_sample.csv.zip
-rw-r--r-- lisa/lisa 220 2016-10-11 21:56 lisa/.bash_logout
-rw-r--r-- lisa/lisa 655 2016-10-11 21:56 lisa/.profile
drwxrwxr-x lisa/lisa 0 2013-01-29 21:51 lisa/__MACOSX/
-rw-r--r-- lisa/lisa 603 2013-01-29 21:50 lisa/__MACOSX/._FL_insurance_sample.csv
-rw-r--r-- lisa/lisa 2107842 2016-10-08 21:40 lisa/big_buck_bunny_720p_2mb.mp4
-rw-r--r-- lisa/lisa 870367 2016-10-08 21:40 lisa/Sample-SQL-File-10000rows.sql
Japp, även lisas filer låg precis där de skulle, vid filposition två.
På detta viset arbetar man med bandbackuper. Mer information om
tar
och mt
finns i manualsidorna (man mt
och man tar
).
Nyhetsbrev
Nyhetsuppdateringar från tidningen direkt till din inkorg, helt kostnadsfritt. Avsluta när du vill.
Relaterade artiklar
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Var försiktig med att curl:a skript som root
Att installera program i Linux genom att omdirigera utdata från Curl till skalet är snabbt och smidigt. Men det är ack så farligt om du inte känner till programmet eller dess ursprung.
-
Vidarebefordran av SSH-agenten
SSH agent forwarding, eller vidarebefordran av SSH-agenten, innebär att man kan vidarebefordra SSH-agenten till ett fjärrsystem. På så sätt behöver man inte kopiera sin privata SSH-nyckel till fjärrsystemet, eller skapa flera nycklar för olika system. Men det finns risker med det.
-
Jenkins som ett alternativ till Ansible Tower
Ansible Tower kommer med en stor prislapp, speciellt för ett mindre företag eller en privatperson. AWX å andra sidan är helt fritt, men kräver numera Kubernetes. För den som vill automatisera sina Ansible Playbooks går det dock bra att använda Jenkins som en ersättning för Tower och AWX.
-
Hämta data från API:er med cURL och jq
Med cURL och jq går det att extrahera data från API:er direkt från kommandoraden. Jq är en JSON-tolkare och beskrivs av utvecklarna som sed och awk för JSON.
Senaste nyheterna och inläggen
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Sommarens skånska demopartyn
Årets sommar bjuder på två skånska demopartyn. Först ut är Reunion i Kvidinge den 28–30 juni. Därefter är det Pågadata i Örtofta den 9–11 augusti.
-
Riskerna med BankID som ingen pratar om
BankID är ett säkert och smidigt sätt att identifiera sig online. Men i takt med dess ökade popularitet och användning har det blivit en svag länk – en single point of failure – på mer än ett sätt.
-
Polisernas fängelsedomar står fast
Efter tre år är målet mot de två poliser som olovligen tog sig in i en berusad mans bostad i Landskrona och misshandlade honom klart. Högsta domstolen beslutade den sjätte mars att avvisa överklagan. Fängelsedomarna för poliserna står därmed fast.
Utvalda artiklar
-
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Datorparty i Landskrona
I helgen höll Syntax Society sitt årliga sommarparty. Platsen var en källarlokal i Landskrona där ett femtontal personer medverkade.
-
Det första Pågadata har ägt rum
I helgen ägde det första Pågadata rum – uppföljaren till Gubbdata. Platsen var Folkets Hus i Kvidinge. Organisatör av partyt var Johan “z-nexx” Osvaldsson med hjälp från Jesper “Skuggan” Klingvall. Partyt hade över 100 anmälda deltagare.
-
Även hovrätten fäller poliserna för att ha satt dit oskyldig
Hovrätten fastställer straffet för de två poliser som förra året dömdes till vardera ett års fängelse av Lunds tingsrätt för att ha misshandlat och satt dit en oskyldig man. De båda poliserna ska även betala skadestånd till mannen.
-
Retroloppis i Påarp
Idag var det retroloppis hos Andreas Nilsson i Påarp. På baksidan av huset fanns hundratals spel uppradade på långa bord. Trots friska vindar och sval temperatur var loppisen välbesökt.
CyberInfo Sverige är ett it- och medieföretag i nordvästra Skåne som tillhandahåller böcker, utbildningar, nyheter och konsulttjänster inom Linux, säkerhet och programmering.
CyberInfo Sverige är godkänd för F-skatt, är momsregistrerat och innehar
utgivningsbevis för webbplatsen www.cyberinfo.se.