All About Me
 Old Crap
 What's Going On
   Important News
 Pictures
   Kitty Porn

 Things I can't live without

> Cars
> Computers
> Food/Recipes
> Humor
> Music
> Privacy
Expand your vocabulary and feed a hungry person!

Download this file

#!/bin/bash

SCP_USER="lolcat"
SCP_HOST="127.0.0.1"

# ==========================================================================
OUTFILE=".getfiles"
INFILE="torrents.list"
FETCHED_FILES="~/.already_fetched_files"

SCPHOST="$SCP_USER@$SCP_HOST"

## trap ctrl-c
trap ctrl_c INT

function ctrl_c()
{
        echo ""
        echo "** Trapped CTRL-C, exiting!"
        exit
}

function logFile()
{
        file="$1"

        #echo "$file" >>$FETCHED_FILES
        ssh $SCPHOST "echo \"$file\" >>$FETCHED_FILES"
}

function fileHasBeenDownloaded()
{
        file="$1"
        ## -x == match whole line
        ssh $SCPHOST "grep -x \"$file\" $FETCHED_FILES"

        #grep $file $HOME/$FETCHED_FILES
}

## get a remote file
function getRemoteFile()
{
    file="$1"

    echo ""
    echo "Now downloading $file"
    rsync -L --partial --progress --rsh=ssh --recursive $SCPHOST:$file .
}

## if we've not specified args, do everything normally
if [ $# -eq 0 ]
then
        echo "Fetching file listing..."
        ssh $SCPHOST "cat $INFILE" >$OUTFILE
        #ssh $SCPHOST "cp /dev/null $INFILE"
else
        echo "Processing files in \"$1\""
        OUTFILE="$1"
fi

if [ -s "$OUTFILE" ]
then
    for file in `cat $OUTFILE | grep -v ^\#`
    do
        LOCAL_FILE=`basename "$file"`
        HAS_BEEN_FETCHED=`fileHasBeenDownloaded "$file"`

        ## make sure we havent completely fetched this file
        ## by checking our FETCHED_FILES list
        if [ -n "$HAS_BEEN_FETCHED" ]
        then
            ## did we already grab this?
            if [ -e "$LOCAL_FILE" ]
            then
                ## if file DOES exist locally, rsync just
                            ## in case it's a partial
                echo "Already fetched $LOCAL_FILE, synchronizing..."
                getRemoteFile $file
            else
                                        ## file does not exist locally but it's in our
                            ## processed list, assume it's been burned to
                            ## dvd
                                    echo "Already seem to have fetched and processed $file, proceeding..."
            fi
        else
                ## file does not exist locally
                ## and it's not in our processed list
                getRemoteFile $file
                logFile $file
        fi
    done
fi


(© 1996-2010. Please don't link to images here; bandwidth costs money. Thanks.)