torsdag 29 april 2010

Bittorrent på headless server med webgränssnitt

För att ladda ner senaste ubuntu använde jag bittorrent. Det är praktiskt att göra detta på min server, eftersom den är påslagen jämt och nåbar.
Förut har jag kört genom att logga in och sedan med transmission-remote för att kontrollera transmission-daemon. Det finns ett annat sätt att göra - genom att köra genom webgränssnitt.

Här är en guide för att få till transmission så att det fungerar. Det kräver visst pyssel för att få till säkerhetsmässigt och att undvika överbelastning av server och router. Samtidigt ska uppsättningen vara säker.
Som alltid kan man göra på många sätt. Det här är sättet jag valde. Guiden avser linux.

  1. skapa en separat användare för att köra nedladdningen
  2. skapa kataloger som har rätt rättigheter (för att undvika konsekvenser av ev. intrång)
  3. bygg transmission
  4. starta demonen och stäng sedan av den.
  5. redigera konfigurationsfilen
  6. starta demonen (crontab, eller manuellt).
  7. anslut via webgränssnitt
  8. tuta och kör!
Steg 1
Jag väljer att skapa användaren "transmission". Med roträttigheter kör jag adduser transmission. Jag väljer att ta bort lösenordet genom att köra passwd -l transmission. På det sättet riskerar jag inte att någon kan logga in som den nya användaren. För att förenkla att komma åt det jag laddar ner låter jag användaren ha en grupptillhörighet som min vanliga användare också är med i. Det görs med usermod -g gruppnamn -G gruppnamn transmission.

Steg 2
mkdir -p /sökväg/till/bra/plats/för/nedladdade/filer/downloaddir
mkdir -p /sökväg/till/bra/plats/för/nedladdade/filer/incompletedir

Se till att katalogen ägs/har rättigheter på ett sådant sätt att transmission kan skriva till den.


Steg 3
bygg transmission. Jag checkade ut revision 10363 från transmission. Detta pekar till en fungerande version. Jag körde först head, men det var inte särskilt stabilt. I exemplet nedan används den utpekade versionen.
Som användare transmission (su - transmission som root, eller sudo su - transmission för er ubuntufreaks :-) :
installera först beroenden (och subversion, gcc om du inte redan har det. ) Beroenden kan jag inte på rak arm, men de finns listade på http://trac.transmissionbt.com/wiki/Building
Det är viktigt att allt är disable utom daemon när du kör configure. Se listan längst ner på sidan som länkas till ovan.
mkdir -p ~/code/thirdparty
cd ~/code/thirdparty
svn co -r10363 svn://svn.m0k.org/Transmission/trunk/ transmission
.cd transmission
./autogen.sh
./configure --disable-gtk --disable-allt-utom-daemon --enable-daemon
make

Det tar rätt lång tid både för configure och make ovan. Ha tålamod!

Steg 4
kör demonen med
code/thirdparty/transmission/daemon/transmission-daemon -f
och avsluta med ctrl c efter en stund. Då finns en konfigurationsfil att utgå från.


Steg 5
redigera konfigurationsfilen. Min ser ut såhär. Detta är viktigt för att få det att fungera. Kolla inställningarna noga - annars så aktiveras till exempel inte webgränssnittet!
emacs ~/config/transmission-daemon/settings.json
[
"alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "dht-enabled": true,
    "download-dir": "/sökväg/till/bra/plats/för/nedladdade/filer/downloaddir",
    "encryption": 1,
    "incomplete-dir": "/sökväg/till/bra/plats/för/nedladdade/filer/incompletedir",
    "incomplete-dir-enabled": true,
    "lazy-bitfield-enabled": true,
    "message-level": 2,
    "open-file-limit": 32,
    "peer-limit-global": 40,
    "peer-limit-per-torrent": 30,
    "peer-port": 6881,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": 0,
    "pex-enabled": true,
    "port-forwarding-enabled": false,
    "preallocation": 1,
    "proxy": "",
    "proxy-auth-enabled": false,
    "proxy-auth-password": "",
    "proxy-auth-username": "",
    "proxy-enabled": false,
    "proxy-port": 80,
    "proxy-type": 0,
    "ratio-limit": 2.0000,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": false,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "{redigardavmigförattdetförmodligenärdumtattvisamittlösenordhär",
    "rpc-port": 9091,
    "rpc-username": "",
    "rpc-whitelist": "127.0.0.1",
  "rpc-whitelist-enabled": true,
    "speed-limit-down": 500,
    "speed-limit-down-enabled": true,
    "speed-limit-up": 500,
    "speed-limit-up-enabled": true,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-slots-per-torrent": 14
}

Jag har begränsat hastigheten och antal anslutningar, eftersom min router inte klarar mer.

Steg 6
Sen körde jag igång klienten. Rpc-whitelist begränsar vem som kan nå webgränssnittet, genom att sätta det till 127.0.0.1 kommer man bara åt det lokalt. Jag gör så att jag vidarebefodrar en port med ssh från dee dator jag sitter vid, dvs ssh -L9091:localhost:9091 server.com och ansluter sedan till localhost:9091 på den lokala datorn.

Jag har följande i min crontab. Nästa ombootning får avslöja om det fungerar....
@reboot sleep 120s && TRANSMISSION_WEB_HOME=$HOME/code/thirdparty/transmission/web/ $HOME/code/thirdparty/transmission/daemon/transmission-daemon -f

för att provköra använder jag det som är efter &&.

Steg 7
Jag sätter upp en port-vidarebefodring med ssh
ssh -L9091:localhost:9091 server.com
och ansluter sedan med en webläsare till http://localhost:9091/

Steg 8
Hurra, det fungerar!

Ubuntu 10.04 är här!

Idag släpptes äntligen Ubuntu 10.04. Otroligt snygg installation. Här en skärmdump från installation via mac os x/virtualbox.

Grafiken tycker jag har fått sig ett lyft, riktigt snyggt i min smak! Allra mest intressanta nyheten är den snabba starten. Nu gick det inte särskilt fort för mig ändå, strax under 40 sekunder från boot till fungerande kommandorad. Helt ok. Det tog fem minuter att starta red hat 2001, när jag började med linux...

Det kändes kul att installera octave och octave sockets, eftersom jag har skrivit en (liten) del av koden! Installera octave3.2 och octave-sockets så kan du prova själv. Det är min förtjänst att minnet inte går åt i samma takt som nätverkstrafiken strömmar in över octavesocketarna.

måndag 26 april 2010

Namnbyte från Sundvall till Dreik

Jag har bytt namn från Paul Sundvall till Paul Dreik!

Bloggen kommer  att byta adress (pauldreik.blogspot.com), men jag låter det gå en vecka eller så så att den inte bara försvinner från gamla adressen.

måndag 19 april 2010

Slumpmässig information 6

Yttermåtten på en metrisk gänga är föredömligt enkelt uttryckta.
http://en.wikipedia.org/wiki/ISO_metric_screw_thread

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"