Visar inlägg med etikett linux. Visa alla inlägg
Visar inlägg med etikett linux. Visa alla inlägg

tisdag 26 oktober 2010

Backup

Jag har råkat ta bort en mapp med 80 GB data i.

Hinner tänka en del fula ord, eftersom den varit exkluderad från mitt normala backupsystem baserat på rsync+hårdlänk+ssh+extern plats. Men, första regeln vid dataförlust är dont panic. Jag konstaterar kallt att jag råkat ta bort mappen på något sätt, och att data förmodligen inte är överskrivna eftersom ingen ytterligare aktivitet skett på partitionen. Jag monterar av partitionen, gör en lvm snapshot och kopierar den råa partitionen med dd till en extern disk. Data finns där, möjligtvis osammanhängande och utan metainformation om filnamn och datum men filerna borde gå att återvinna iallafall.

Innan jag hinner inspektera det stället den backupas till dagligen oroar jag mig att jag synkroniserar - och att borttagningen av mappen kan ha synkroniserats även den. För att se om det går att vinna data söker jag på "undelete file ext3" och liknande och hittar en hel del intressanta script. Jag hinner testa några och visst går det att hitta filerna igen! Tidsstämplarna är fel och filnamnen är borta, men själva filinnehållet är bevarat.
Jag prövade bland annat photorec som finns tillgängligt i ubuntu. Några andra intressanta uppslag är ext3grep och ext3undel.

Ungefär samtidigt hinner jag inspektera målet för backupen, och visst, där finns alla filerna. Jag har kört med rsync utan flaggan --delete. Skönt att jag tänkte till när jag satte upp det scriptet.

Några nygamla slutsatser:
  • backupen ska vara på en annan fysisk plats
  • på annat fysiskt media (följer av föregående :-)
  • ske automatiskt (annars blir den aldrig gjord)
  • vara skyddad mot användarmisstag (demonstreras av det som hänt mig)
Min normala backuprutin uppfyller alla krav ovan. Det är denna mapp som inte omfattas av den normala backupen, som på grund av sin storlek fått en separat rutin. Det blir ändring på det nu. Jag lutar åt ett alternativ med rsync+hårdlänk. Jag funderar även på vilket filsystem som är bäst ur återskapningssynpunkt. Verkar som att ext2 är bättre än ext3, men det tar alldeles för lång tid vid filkontroll för att vara praktiskt.

När backupade du senast?

måndag 11 oktober 2010

Rate limit a pipe

Something I often do while developing is replaying recorded network traffic.
Something along
$nc host port
to send data in the traffic.bin to host, via tcp. This will however dump the data as fast as possible, which makes it difficult to keep up with the data pace at the other end (which I try to study/debug).
A solution is to use pipe viewer which can do many things, one of them to rate limit data.
Running
$pv -L 100
gives 100 bytes per second rate. pipe viewer is installed by
$apt-get install pv
on Debian. I was just about to write a tool like this, but searched for an existing solution instead!

onsdag 4 augusti 2010

Lättlästa nyheter om linuxkärnan

Att versionsnumren tickar framåt på linuxkärnan är lätt att se (www.kernel.org). Commitloggen är inte lätt att förstå, och det är svårt att se skogen för alla träden. Det behövs tolkningshjälp. 

Jag har tidigare läst den bra sammanställningen på kernel newbies.
Här finns en annan bra förklaring: h-online.com

torsdag 15 april 2010

Konvertera mts-filer i linux

Jag har spelat in filmer i HD-format med en canon legria hf200 videokamera (full HD). Det genererar mts-filer som innehåller video på avchd-format. (för mig 1920x1080i, 2*25 Hz)

Jag följde guiden på http://wesleybailey.com/articles/ffmpeg-tutorial-convert-avchd-mts-m2ts
och lyckades koda om video inspelad i högsta kvalitet till ett format jag kan spela utan problem.

Jag använder debian lenny och la till debian multimedia i repositorien, innan jag följde guiden.

relevanta rader i /etc/apt/sources.list:
deb http://ftp.de.debian.org/debian/ lenny main contrib non-free
deb http://ftp.sunet.se/pub/os/Linux/distributions/debian-multimedia/ lenny main


För information: jag visar här information från ffmpeg om videoklippen när jag spelat in i de olika kvalitetslägena på kameran, högsta till lägsta. Detta är skapat med ffmpeg -i [filnamn]

bitrate: 24055 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s


bitrate: 17021 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s

bitrate: 12483 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s


bitrate: 7122 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s

bitrate: 6258 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s





För att konvertera till ett format som är lättare att spela upp utan att det hackar, använder jag följande kommando:
bitrate=4000
size="1280x720"
ffmpeg -i "$infile" -vcodec libxvid -b ${bitrate}k -acodec copy -deinterlace -s $size "$outfile"

torsdag 4 mars 2010

Storleksändring av krypterad disk (luks)

Den här artikeln avser diskkryptering på Linux, med luks och ext3.

En guide för hur man konfigurar kryptering finns här.

Om du är otålig, hoppa till de sex nedersta raderna och byt ut mina namn mot dina.

Jag använder diskkryptering för att skydda mina data. Mina diskar hanteras av LVM, vilket jag varmt kan rekommendera. Nu har diskutrymmet tagit slut inom den krypterade partitionen, och jag behöver därför storleksändra den. Det är en av fördelarna med LVM, så länge det finns fysiskt diskutrymme kvar någonstans går det att öka valfri partition utan att det kräver några stora ändringar eller tar lång tid.

Jag kör kommandona nedan medan jag är inloggad och filsystemen är monterade. Det går utmärkt. Otroligt, egentligen, att det går!

Bakgrundsinformation:
Nedan heter min volymgrypp (lvm volume group) minvg, min logiska volym (lvm logical volume) minlv. Namnet för den krypterade volymen är minkv.
I /etc/crypttab står det:
#
minkv /dev/minvg/minlv none luks,noearly

I /etc/fstab finns raden:
/dev/mapper/minkv /home/mittnamn ext3 defaults 0 4

Såhär gör du:

Storleksändra först lvm-partitionen (här ökning med 5 GB):
$lvextend -L +5G /dev/minvg/minlv

Öka sedan den krypterade volymens storlek:
$cryptsetup resize minkv

Öka sedan filsystemets storlek:
$resize2fs /dev/mapper/minkv

torsdag 23 juli 2009

Roxcore trådlös överföring av ljud i Ubuntu

Jag köpte en manick (Roxcore, okänt modellnummer) för att överföra ljud trådlöst (via radio, inte ljudvågor!:-) från datorn till högtalare. Skönt med en kabel mindre över golvet hemma.
Jag köpte den via kjell och company. Det består av en usbsticka som sänder ljud och en liten mottagarlåda som sätts in i högtalarna/förstärkaren/stereon etc.

Pluggade in den i min laptop och parade den enligt instruktion som följde med i kartongen. Började funka direkt, var bara att välja "usb audio device" i menyn system/Inställningar/Ljud (jag kör ubuntu på laptopen).

Att få spotify att funka var däremot svårare - Spotify vill använda första enheten i Alsa, vilket för mig råkar vara det inbyggda ljudkortet i datorn. Jag löste det med
asoundconf list
som gav mig
Names of available sound cards:
Intel
Audio
En koll av aplay -l gav att "Audio" verkar vara usb-ljudet. Jag väljer detta som förvalt ljudkort med asoundconf set-default-card Audio
En omstart av spotify och konfiguration av winecfg enligt supportsidan på spotify, och voila, nu spelar jag Genesis!

Uppdatering:
som en av kommentarerna säger, så störs trådlösa nätverket av att köra med denna produkt! Inga problem med att läsa mail etc, men att strömma musik via spotify blir mer eller mindre omöjligt. Jag har inte provat att byta kanal på trådlösa nätverket resp. roxcoredongeln. Möjligtvis skulle en uppdatering till trådlöst nätverk på 5GHz-bandet lösa problemet.

fredag 27 februari 2009

Kommandoradskungen

En enorm fördel med linux (eller vilket nix som helst för den delen) är möjligheten att göra saker med kommandoraden. På den här sidan fanns riktigt bra tips!

http://www.commandlinefu.com/commands/browse/sort-by-votes

måndag 15 december 2008

Access control lists i linux

Att använda ett vanligt linuxsystem själv är inga problem. När det kommer in fler användare blir det svårare - att dela filer etc gör att rättigheter måste sättas korrekt. Om man har en enkel struktur är det lätt att göra så att alla har samma primärgrupp, vilket gör att de filer man skapar blir läs/skrivbara av andra (grovt förenklat, det beror naturligtvis på en väldig massa saker). För mer komplicerade strukturer behövs tyngre vapen: access control lists.

Här finns en läsvärd text: http://www.suse.de/~agruen/acl/linux-acls/online/
Såhär samverkar det med samba: http://www.samba.org/ .......

En snabbstart:
  1. se till att filsystemet är monterat med acl påslaget: mount -oremount,acl,rw,noatime /dev/sdaX /mntpnt (för att göra permanent, lägg till acl i options i /etc/fstab)
  2. Se till att du har acl installerat. På debian är det apt-get install acl som ordnar det.
  3. pröva: mkdir /mntpnt/slask
  4. getfacl /mntpnt/slask ger :
    getfacl /mntpnt/slask
    # file: slask
    # owner: pauls
    # group: pauls
    user::rwx
    group::r-x
    other::r-x

  5. pröva att sätta acl:setfacl -d -m g:musiclovers:rw musik/
  6. getfacl musik
    # file: musik
    # owner: pauls
    # group: musiclovers
    user::rwx
    group::rwx
    other::---
    default:user::rwx
    default:group::rwx
    default:group:musiclovers:rw-
    default:mask::rwx
    default:other::---

Ganska lätt, och väldigt kraftfullt. Tyvärr är det inte helt lätt att bevara dessa rättigheter för backup. Det verkar som att rsync har möjlighet att bevara rättigheterna (via flagga -A), tyvärr måste man då ha motsvarande grupper uppsatta på det system som backas upp mot. Tips mottages gärna!

tisdag 11 november 2008

Compile realtime kernel in Debian lenny (preemption patch)

This is how to compile a realtime kernel (preemptive kernel) in Debian Lenny. It should pretty much be cut and paste. I run a 64 bit Intel Q6600 system on a standard pc, and had a bit of hazzle before I got latencies down to a reasonable level.
I will use the directory /var/tmp/KERNEL to build in but that is not important.
  • become root
  • mkdir /var/tmp/KERNEL
  • cd /var/tmp/KERNEL
  • wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.6.tar.bz2
  • wget
    http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.26.6-rt11.bz2
  • tar xvjf linux-2.6.26.6.tar.bz2
  • cd linux-2.6.26.6
  • bzcat ../patch-2.6.26.6-rt11.bz2 |patch -p1
  • make clean && make mrproper
  • make menuconfig (select complete preemption, choose 1000 Hz timer frequency. High resolution timers and symmetric multiprocessing SMP were already enabled)
  • make-kpkg clean
  • fakeroot make-kpkg --initrd --append-to-version=-rt-200811111930 kernel_image kernel_headers
  • dpkg -i ../linux-headers-2.6.26.6-rt11-rt-200811111930_2.6.26.6-rt11-rt-200811111930-10.00.Custom_amd64.deb ../linux-image-2.6.26.6-rt11-rt-200811111930_2.6.26.6-rt11-rt-200811111930-10.00.Custom_amd64.deb
To make sure everything works as intended, run cyclictest (see previous post here) and make sure the latencies are low. I get approximately 300 us max latency which is a bit high compared to other results I have seen, but low enough for me. Make sure you stress the computer when running the test. Without the preemption patch, I get 3000 us in latency when I open a web browser. I also had to turn off things in the bios to get down to 300 us.
I tried the ubuntu realtime kernel 2.6.24 which installs fine on debian lenny, but the latency would just not come down. This indicates the BIOS setting was the crook. I use noapic nolapic as boot settings, which seem to be needed.

Update 2008-11-12:
The frequency scaling is the crook! Running a preemptive kernel as compiled above works fine until the cpu frequency jumps. It has nothing to do with noapic or nolapic, it is sufficient to prevent the frequency to change. You can do this with either disabling frequency scaling in BIOS, or lock the frequency with
for i in `seq 0 3`; do cpufreq-set -c$i -g performance; done
to get constant full speed or
for i in `seq 0 3`; do cpufreq-set -c$i -g powersave; done

to get lowest speed. Both work fine and gets the latency down to 250 us (performance ) to 20 us (powersave) when I tested, as compared to 3000 us with ondemand frequncy scaling governor. I guess I should test with heavier load and longer time to be sure, but I am confident that the frequency scaling is the one to blame. To bad, because frequency scaling is a wonderful thing.
I tried to keep only one core constant speed and locking the processes to that core with taskset
echo `seq 6050 6056` |xargs -n1 taskset -p 0x1

where 6050 is the process id reported by cyclictest.

fredag 7 november 2008

Kompilera cyclictest

Jag experimenterar med realtidslinux i form av standard linux med patchar för preemption (se rt wiki).
Såhär gör man för att köra cyclictest:
git-clone git://git.kernel.org/pub/scm/linux/kernel/git/tglx/rt-tests.git \ rt-test
cd rt-test
make
./cyclictest -p 20 -t5 -n

(som root, eller med sudo framför om man kör t ex ubuntu)

tisdag 16 september 2008

batteridriven GPS-logger


Jag snubblade över en GPS-logger DG-100 från Globalsat. Den verkar perfekt för att lagra data när man seglar. Vore skoj att ha flera båtar med sådana här så att man kan jämföra vägval etc i efterhand!
Prestanda verkar vara tillräckliga vad gäller gpsmottagning, batteritid och lagring. Bäst av allt är att den verkar fungera i *nix trots att det inte stöds officiellt. Inte är den särskilt dyr heller, 649 kr på komplett.
Några frågetecken kvarstår:
  • lagras hastighet och kurs? uppdatering: det verkar delvis så, att döma av skärmdumpen här. Man verkar kunna välja position, time, date, speed som loggformat. Men kursen?
  • vilken upplösning har lagrade data? (dvs vilken precision har dataformatet, eller antal siffror som andra skulle säga)

fredag 22 augusti 2008

Mappa windows+e till "utforskare"

En behändig sak i windows är att windowsknappen+e öppnar en utforskare. Något som jag använt ofta, även om jag sällan använder windows numera.
En liknande funktion har jag åstadkommit i linux/kde genom att ställa in i systeminställningar att thunar ska öppnas. Thunar är en väldigt snabb och resurssnål filutforskare som faller mig i smaken. Konqueror och andra har jag aldrig gillat.

I linux/gnome har jag inte vetat hur jag ska göra, förrän nu:
  1. öppna gconf-editor genom att skriva gconf-editor i en terminal
  2. leta dig fram till apps/metacity/keybinding_commands
  3. ändra command_1 till "thunar"
  4. leta dig fram till apps/metacity/global_keybindings
  5. ändra run_command_1 till "e"
På samma sätt har jag windowsknappen+t kopplat till en terminal.

måndag 7 april 2008

Skicka epost från kommandoraden

En mycket användbar funktion i *nix-system är möjligheten att skicka epost via kommandoraden. T ex såhär:
echo "hej hopp" | mailx -s"ämnesrad" slask@paulsundvall.net

Detta kräver förstås att datorn är konfigurerad korrekt. Jag har ett externt smtp-konto och använder det för att skicka post i mitt system. För att ställa in allting följde jag instruktionerna på http://wiki.debian.org/GmailAndExim4
Instruktionen gäller för att använda gmail som leverantör, men det fungerade med min epostleverantör utan problem.

tisdag 1 april 2008

Räkna rader i filer

Jag undrade hur många rader kod jag skrivit i ett projekt - såhär enkelt var det att göra ett bashscript som räknade rader!

#!/bin/bash
echo -n "The number of source lines is "
( echo 0;
for ending in cc hh ; do
find . -name "*."$ending -print | (
while read banan ; do
wc -l <"$banan"
echo '+'
done
)
done ; echo p
) | dc

onsdag 12 mars 2008

Min nästa server?

Den här datorn verkar vara lämplig att använda som server, även om den har grafikutgång. Det är något oklart hur mycket effekt den genomsnittligt drar, men någonstans 5-10W skulle jag tro. Kostar ca 1200 kr.

I dagsläget använder jag en Linksys NSLU2 som server (drar ungefär 7 W med 2.5-tums hårddisk), som kör Debian etch. Det som jag saknar med den är att minnet är i minsta laget (32MB) för att kunna köra det utmärkta men tyvärr minneshungriga synkroniseringsverktyget unison.


UPPDATERING 20080616: här finns en kommande produkt som verkar intressant. Ska enligt uppgift dra endast 2 W. cherrypal. Denna ska enligt uppgift köra en strippad version av debian. Trevligt!

tisdag 30 oktober 2007

Presentera med mobilen som styrning

Jag har just hållit en presentation och styrt den med mobilen via bluetooth.
Presentationen gjorde jag med beamer i latex och visade i kpdf.
Mobilen är en Sony Ericsson K610i.
  1. aktivera bluetooth på mobilen och på datorn
  2. hcitool scan för att få reda på mobilens ID
  3. som root: hidd --server
  4. som root: hidd --connect där är det som kom ut från hcitool scan.
  5. Starta Underhållning/presenter på mobilen
  6. styr presentationen med knapparna på mobilen (funkar ungefär som en vanlig mus)
En bra sak är att det funkar utan fri sikt till datorn, till skillnad från infraröd kommunikation.

måndag 22 oktober 2007

lvm är bra

En del av er har erfarenhet av att partitionera hårddiskar och känner till problemet med att man inte i förväg vet hur stora partitionerna bör vara för att inte slösa med utrymme i onödan men ändå vara tillräckligt stora för framtida behov.
En fantastisk lösning på detta problem är lvm (se wikipedia).
Defaultinstallationen för / var för liten. Att utöka den var så enkelt som att (medan systemet är igång!)
lvextend -L +2G /dev/quadricepsjr/root
ext2online /dev/quadricepsjr/root
så hade jag helt plötsligt 2 GB extra ledigt.

Uppdatering: jag hittade en guide på precis lagom nivå skriven av Steve Kemp. Här hittar du den: http://www.debian-administration.org/articles/410
Steve skriver väldigt bra tycker jag, han har bland annat skrivit det mycket praktiska jukeboxliknande programmet gnump3d som jag kör på min nslu2.

Nu har jag använt lvm till att slå ihop "överblivna" partitioner till en som är tillräckligt stor för att rymma det jag ska ha den till. Detta utan att behöva skapa nya partitioner och röra till det för min installation; det är skönt att ha åtminstone en dator som jag inte experimenterar med utan får lov att vara stabil.

torsdag 4 oktober 2007

Skapa ett tomt odt-dokument från kommandoraden

Jag vill kunna skapa en file från kommandoraden och sedan redigera den senare.
T ex
touch fil.txt
kate fil.txt

Motsvarande sak med odt-fil (open document, kan öppnas med t ex open office) vill jag ska kunna ske så här ungefär:
touch fil.odt
ooffice fil.odt

men det går inte eftersom fil.odt är tom och jag får varningar och felmeddelanden.
Lite arbete med google ger mig följande:
(tack http://www.livejournal.com/doc/server/lj.install.perl_setup.modules.html)

Installera OpenOffice::OODoc
som root, starta CPAN-skalet:
# perl -MCPAN -e shell
uppgradera cpan:
cpan> install Bundle::CPAN
kör sen:
cpan> reload cpan


sen är det dags för det jag egentligen ville:
cpan> install OpenOffice::OODoc
nu är jag klar och kan från en annan terminal som vanlig användare köra
oobuild tomt_dokument.ods --opendocument
som jag sedan kan öppna med openoffice:
ooffice tomt_dokument.ods

Jag använder debian testing men detta bör fungera på även andra distributioner.

onsdag 26 september 2007

Alfapet eller korsord med kommandoraden

Jag snubblade över ett intressant inlägg här: http://penguinpetes.com/b2evo/index.php?title=obscure_linux_commands_cheating_at_word&more=1&c=1&tb=1&pb=1
Det handlar om hur man kan använda kommandoraden för att lösa vissa ordspel. Ett bra exempel på hur flexibelt och användbart det är att använda kommandorad!

tisdag 31 juli 2007

umount: device is busy

...är ett svar man ibland får när man försöker avmontera ett filsystem på en hårddisk eller usbpinne. Det beror oftast på att nån har en fil öppen. Hur kan man ta reda på vilken process det är? jo, man använder
lsof /dev/sda1
där /dev/sda1 är det device (enhet?) som man är intresserad av. då får man en lista med vilka processer som har filer öppna.


exempel:
sniiigel:~# umount /dev/sdb1
umount: /mnt/sdb1: device is busy
umount: /mnt/sdb1: device is busy
sniiigel:~# lsof /dev/sdb1
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 20204 theuser cwd DIR 8,17 4096 1270485 /mnt/sdb1/Shared/musik/theuser
sniiigel:~#

sådärja, då är det bara att avsluta den process som håller på med filen, i det här fallet genom att be användaren "theuser" att byta arbetskatalog.