ftpsync2.sh

download

#!/bin/sh

# DESCR: FTP syncing script
# AUTHOR: Dariusz Cieślak, cieslakd at gazeta.pl
#
# USAGE:
#
#   ftpsync remote_dir stamp_file [files ...] | pftp hostname
#   touch stamp_file
#
# I know this is simple, but allows high flexibility
# A this time allows only two-level hierarchy od directories

REMOTE_DIR="$1"
STAMP="$2"

test -z "$REMOTE_DIR" && {
    echo "$0 remote_dir [stamp_file]"
    exit 1
}

shift # remote_dir
shift # stamp file

echo "mkdir $REMOTE_DIR"

save() {
    a="$1"
    if test -z "$STAMP" -o $a -nt "$STAMP"
    then
        if test -d $a
        then
            echo "mkdir $REMOTE_DIR/$a"
        else
            echo "put $a $REMOTE_DIR/$a"
            case $a in
            *cgi)
                echo "chmod 0755 $REMOTE_DIR/$a"
            ;;
            esac
        fi
    fi
}

for a
do
    save $a
done

#while read a
#do
#    save $a
#done


(...) Nie ma bowiem łatwych odpowiedzi. Nie istnieje nic takiego jak najlepsze rozwiązanie - zarówno jeśli chodzi o narzędzia, jak i języki czy systemy operacyjne. Są jedynie systemy, które mogą być bardziej odpowiednie w konkretnych okolicznościach.

I tu właśnie do gry wchodzi pragmatyzm. Nie należy przywiązywać się do żadnej określonej metody, ale mieć na tyle rozległą wiedzę i doświadczenie, by w danej sytuacji wybrać dobre rozwiązanie. (...)

Andrew Hunt, David Thomas "Pragmatyczny Programista"