Skript för att automatiskt seeda Linux-torrents

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Skript för att automatiskt seeda Linux-torrents

Inlägg av ubot »

Jag har skrivit ett skript som startar Transmission (eller valfri BitTorrent-klient) och seedar torrents (t.ex. linuxdistros) när skärmsläckaren går igång (dvs när skärmen är låst). Skriptet startar och stänger bara av Transmission om programmet inte körs innan skärmsläckaren går igång. Det gör att du hjälper till att dela ut Linux-distros så fort datorn inte används manuellt. Här är koden till skriptet:

Kod: Markera allt

#!/bin/bash

trans1=$(which transmission | grep -o "transmission")
trans2=$(which transmission-gtk | grep -o "transmission-gtk")
if [[ ! -z "$(which $1)" ]]; then
    trans=$1
elif [[ "$trans1" == "transmission" ]]; then
    trans='transmission'
elif [[ "$trans2" == "transmission-gtk" ]]; then
    trans='transmission-gtk'
else
#    echo "Script could not find transmission or transmission-gtk. $(date +%Y\-%m\-%d\ %H\:%M)." >> transmission.txt
    exit
fi

while true; do
#    echo "Script was executed $(date +%Y\-%m\-%d\ %H\:%M)." >> transmission.txt
    sleep 60
    status=$(LC_ALL=C gnome-screensaver-command -q | grep -o "active\|inactive")
    pid=$(pidof $trans)
    if [[ "$status" == "active" && -z "$pid" ]]; then
        $trans &
        check=yes
    elif [[ "$status" == "inactive" && "$check" == "yes" ]]; then
        killall -q $trans
        check=no
    fi
done
Så här gör man för att hjälpa till att seeda linuxdistros:

1. Skapa ett tomt dokument och kopiera och klistra in koden här ovanför.

2. Sätt exekveringsrättigheter på filen med kommandot:

Kod: Markera allt

chmod +x /path/to/script.bash
där script.bash är dokumentet du skapade under punkt 1.

3. Lägg in sökvägen till skriptet i Ubuntus Uppstartsprogram (System -> Preferences -> Startup Applications), t.ex.: /home/username/Scripts/script.bash

4. Ladda ner ett gäng linuxdistros som vanligt med Transmission så att det finns något att dela ut när skriptet startar Transmission nästa gång (tänk på att ladda ner distron via BitTorrent):
http://www.ubuntu.com/download/ubuntu/a ... ownload#bt
http://www.linuxmint.com/release.php?id=15
http://www.kubuntu.org/getkubuntu/download
http://fedoraproject.org/en/get-fedora-all

Klart!
Senast redigerad av 19 ubot, redigerad totalt 1 gång.
m!rage
Inlägg: 2550
Blev medlem: 28 apr 2009, 21:47
OS: Arch Linux
Ort: Lund

Re: Skript för att automatiskt seeda Linux-torrents

Inlägg av m!rage »

Schysst! "status" behöver dock ändras till aktiv respektive inaktiv i svenska Ubuntu. Kanske går det att göra en universell lösning som istället frågar över Dbus, men det är ett annat problem. Vilken transmission kör du? Den som följer med Ubuntu heter transmission-gtk.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Skript för att automatiskt seeda Linux-torrents

Inlägg av ubot »

Jag kör kort och gott med kommandot transmission. Det kommandot i Terminalen på min dator startar vanliga Transmission. Testa själv:

Kod: Markera allt

transmission &
Tack för tipset om status-meddelandet. Det hade jag inte tänkt på. Jag blev fartblind av mitt system. Jag använder eng. Ubuntu-version och då fungerar active, resp. inactive klockrent. Jag modifierade skriptet så att det fungerar i sv. och eng. versionen av Ubuntu. Som du säger så får man hitta en annan lösning om man vill ha ett helt språkoberoende skript.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Skript för att automatiskt seeda Linux-torrents

Inlägg av Konservburk »

ubot skrev:Tack för tipset om status-meddelandet. Det hade jag inte tänkt på. Jag blev fartblind av mitt system. Jag använder eng. Ubuntu-version och då fungerar active, resp. inactive klockrent. Jag modifierade skriptet så att det fungerar i sv. och eng. versionen av Ubuntu. Som du säger så får man hitta en annan lösning om man vill ha ett helt språkoberoende skript.
Så här gör du om du alltid vill ha samma utdata oberoende av vilket språk du använder:

Kod: Markera allt

LC_ALL=C gnome-screensaver-command -q
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Skript för att automatiskt seeda Linux-torrents

Inlägg av ubot »

Ok, jag testade det här kommandot:

Kod: Markera allt

qdbus org.gnome.ScreenSaver /ScreenSaver org.gnome.ScreenSaver.GetActive
Får man true och false oberoende av språket i distron eller översätts true och false till sant och falskt?

Edit: Jag gjorde det lätt för mig. Jag använde Konservburks kod istället:

Kod: Markera allt

LC_ALL=C gnome-screensaver-command -q
Tack för tipset/tipsen!
m!rage
Inlägg: 2550
Blev medlem: 28 apr 2009, 21:47
OS: Arch Linux
Ort: Lund

Re: Skript för att automatiskt seeda Linux-torrents

Inlägg av m!rage »

ubot skrev:Jag kör kort och gott med kommandot transmission. Det kommandot i Terminalen på min dator startar vanliga Transmission. Testa själv:

Kod: Markera allt

transmission &
"kommandot hittades inte". Pratar vi om samma Transmission, dvs det GUI som följer med Ubuntu vid installation? Vad får du av

Kod: Markera allt

file $(which transmission)
?
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Skript för att automatiskt seeda Linux-torrents

Inlägg av ubot »

/usr/bin/transmission: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
Jag använder 32-bitars Ubuntu 10.10.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Skript för att automatiskt seeda Linux-torrents

Inlägg av Konservburk »

I lucid och maverick heter den /usr/bin/transmission, men i natty har den bytt namn till /usr/bin/transmission-gtk.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Skript för att automatiskt seeda Linux-torrents

Inlägg av ubot »

Jaha. Det var ju inte så bra. Då får jag väl lägga in en versionskontroll eller går det att få namnet på BitTorrent-klienten som är installerad på ett annat sätt?

Edit: Nu har jag moddat skriptet så att det kontrollerar om programmet heter transmission-gtk eller transmission.
Skriv svar

Återgå till "Terminalforum"