Bittorrent med screen
Från Unix.se, den fria unixresursen.
Det är ofta man vill ha gång många torrent-nedladdningar på samma gång. Det löser man bäst (tycker jag) med screen och en textbaserad eller ncursesbaserad klient som bittorrent-curses (http://bittorrent.com) (följer med den officiella klienten), btdownloadcurses (http://www.bittornado.com/) (följer med BitTornados klient) eller rtorrent (http://libtorrent.rakshasa.no/).
Om man är lat (som jag är) så skriver man ett script om man vill sätta igång flera nedladdningar samtidigt. Jag kallar scriptet multitorrents och det används på följande sätt:
samel@force:/mnt/data/torrents$ multitorrents fil1.torrent fil2.torrent
eller
samel@force:/mnt/data/torrents$ multitorrents *.torrent
Då startas screen med n st fönster där n är antal torrentfiler man har angett som argument. Jag använder btdownloadcurses som program. Scriptet kan användas till andra saker, som att till exempel öppna flera textfiler i vim när man ska koda.
När man ser att ens nedladdningar är igång så trycker man C-a d. (Håll inne ctrl och a, släpp knapparna och tryck sen på d). Då detachas screen och man kan se vilka screen-sessioner som är tillgängliga genom att skriva
samel@force:~$ screen -ls There is a screen on: 6909.screenscript (Detached) 1 Socket in /var/run/screen/S-samel.
Sen re-attachar man genom att skriva
samel@force:~$ screen -r 6909.screenscript
Eller om man vet att man bara har en screen-session igång så kan man skriva
samel@force:~$ screen -R
Scriptet ser ut så här:
#!/bin/bash # multitorrents, a script by Samel ######## BEGIN CONFIGS ##################### #what program to run program=btdownloadcurses #dir to put conf files in dir=/tmp/screenscript ######## END CONFIGS ##################### # create the dir where we put our config files if [ ! -d $dir ]; then mkdir $dir fi # find a file that does not exist # that will be our conf file nbr=0 while [ -e $dir/$nbr ]; do let nbr++ done conf=$dir/$nbr touch $conf # write the conf file echo source ~/.screenrc >> $conf win=0 for i in $@; do echo screen $win $program $i >> $conf let win++ done # start screen screen -c $conf -S screenscript
Spara filen, gör den exekverbar (chmod +x multitorrents) och lägg den i en katalog som finns i din $PATH, exempelvis ~/bin eller /usr/bin.