PHP-Code:
#!/bin/sh

function upload() 
{
    
#Settings:
    
ARCHIVPW=archivpasswort123
    ARCHIVPARTSIZE
=100M

    FTPHOST
=ftp.deite.de
    FTPUSR
=ftpuser
    FTPPW
=secret123

    
#Choices for OSD notifications:
    # 0 = off
    # 1 = notify-send
    # 2 = growlnotify

    
OSDNOTIFICATIONS=1
    OSDICON
=/usr/share/pixmaps/terminal.xpm
    OSDTIMEOUT
=10000

    
#OSD per SSH ;)
    # PublicKeyAuth needed!
    # 0 = deactivated
    # 1 = activated

    
SENDOSDPERSSH=1
    SSHHOST
=192.168.10.24
    SSHUSR
=square
    SSHAUTHKEYNAME
=SqsHQ
    
### Script starts here ###

    
SHUSER=`whoami`

    echo 
":: Please enter Archivname ::"
    
read ARCHIVNAME
    
echo ":: Please enter Season ::"
    
read SEASON

    i
=01    
    
for INPUTFILE in `ls .
    {
        echo 
"::: Zipping $INPUTFILE"
        
        
EPISODE=`printf "%.2i\n" $i`
        
ARCHIVNAMEFINAL=`echo "$ARCHIVNAME$SEASON$EPISODE"`
        echo 
"::: Archivename: $ARCHIVNAMEFINAL"
        
if [ $OSDNOTIFICATIONS -ne 0 ];then
            
if [ $SENDOSDPERSSH -eq 1 ];then
                
if [ $OSDNOTIFICATIONS -eq 1 ];then
                    ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/bin/notify-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>Start</b> zipping"'
                
elif $OSDNOTIFICATIONS -eq 2 ];then
                    ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/local/bin/growlnotify -t "Upload" -m "Start zipping"'
                
fi
            elif 
$SENDOSDPERSSH -eq 0 ];then
                
if [ $OSDNOTIFICATIONS -eq 1 ];then
                    notify
-send -i $OSDICON -t $OSDTIMEOUT "Upload" "Start zipping of <b>$INPUTFILE</b>as <b>$ARCHIVNAMEFINAL"
                
elif [$OSDNOTIFICATIONS -eq 2 ];then
                    growlnotify 
-"Upload" -"Start zipping of $INPUTFILE as $ARCHIVNAMEFINAL"    
                
fi
            fi

        fi
        7z a 
-mhe=on  -p$ARCHIVPW -v$ARCHIVPARTSIZE $ARCHIVNAMEFINAL.7z $INPUTFILE
        SEXC
=$?
        if [ 
$SEXC -ne 0 ];then
            
if [ $SEXC -eq 255 ];then
                
echo "::: **NOTICE** User interrupted Zipping. Stopping."
                
if [ $OSDNOTIFICATIONS -ne 0 ];then
                    
if [ $SENDOSDPERSSH -eq 1 ];then
                        
if [ $OSDNOTIFICATIONS -eq 1 ];then
                            ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/bin/notify-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>***STOP***</b> User interrupted 7z"'
                        
elif $OSDNOTIFICATIONS -eq 2 ];then
                            ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/local/bin/growlnotify -t "Upload" -m "***STOP*** User interrupted 7z"'
                        
fi
                    elif 
[$SENDOSDPERSSH -eq 0 ];then
                        
if [ $OSDNOTIFICATIONS -eq 1 ];then
                            notify
-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>***STOP***</b> User interrupted 7z"
                        
elif $OSDNOTIFICATIONS -eq 2 ];then
                            growlnotify 
-"Upload" -"***STOP*** User interrupted 7z"
                        
fi
                    fi
                fi
                
exit 1
            fi
            t
=1
            
while [ $t -le 3 ];do
                if [ 
$OSDNOTIFICATIONS -ne 0 ];then
                    
if [ $SENDOSDPERSSH -eq 1 ];then
                        
if [ $OSDNOTIFICATIONS -eq 1 ];then
                            ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/bin/notify-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>***WARNING***</b>7z failed, retry"'
                        
elif $OSDNOTIFICATIONS -eq 2 ];then
                            ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/local/bin/growlnotify -t "Upload" -m "***WARNING***7z failed, retry"'
                        
fi
                    elif 
[$SENDOSDPERSSH -eq 0 ];then
                        
if [ $OSDNOTIFICATIONS -eq 1 ];then
                            notify
-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>***WARNING***</b>7z failed at $INPUTFILE bzw $ARCHIVNAMEFINAL, retry $t of 3"
                        
elif $OSDNOTIFICATIONS -eq 2 ];then
                            growlnotify 
-"Upload" -"***WARNING***7z failed at $INPUTFILE bzw $ARCHIVNAMEFINAL, retry $t of 3"
                        
fi
                    fi
                fi
                7z a 
-mhe=on  -p$ARCHIVPW -v$ARCHIVPARTSIZE $ARCHIVNAMEFINAL.7z $INPUTFILE
                7ZOUT
=$?
                if [ $
7ZOUT -eq 0 ];then
                    t 
5
                fi
                t
=`expr $t + 1`
                if [ 
$t -eq 4 ];then
                    
echo "::: **CRITICAL** Zipping failed after 3 trys."
                    
if [ $OSDNOTIFICATIONS -ne 0 ];then
                        
if [ $SENDOSDPERSSH -eq 1 ];then
                            
if [ $OSDNOTIFICATIONS -eq 1 ];then
                                ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/bin/notify-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>***ERROR***</b> 7z failed 3 times. Stopping script."'
                            
elif $OSDNOTIFICATIONS -eq 2 ];then
                                ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/local/bin/growlnotify -t "Upload" -m "***ERROR*** 7z failed 3 times. Stopping script."'
                            
fi
                        elif 
$SENDOSDPERSSH -eq 0 ];then
                            
if [ $OSDNOTIFICATIONS -eq 1 ];then
                                notify
-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>***ERROR***</b> 7z failed 3 times at $INPUTFILE bzw $ARCHIVNAMEFINAL. Stopping script."
                            
elif $OSDNOTIFICATIONS -eq 2 ];then
                                growlnotify 
-"Upload" -"***ERROR*** 7z failed 3 times at $INPUTFILE bzw $ARCHIVNAMEFINAL. Stopping script."
                            
fi
                        fi
                    fi
                    
exit 5
                fi
            done
        fi
        i
=$[$i+1]
        echo 
"::: All zipped, starting Upload"
        
if [ $OSDNOTIFICATIONS -ne 0 ];then
            
if [ $SENDOSDPERSSH -eq 1 ];then
                
if [ $OSDNOTIFICATIONS -eq 1 ];then
                    ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/bin/notify-send -i $OSDICON -t $OSDTIMEOUT "Upload" "Zipping done, starting upload"'
                
elif $OSDNOTIFICATIONS -eq 2 ];then
                    ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/local/bin/growlnotify -t "Upload" -m "Zipping done, starting upload"'
                
fi
            elif 
$SENDOSDPERSSH -eq 0 ];then
                
if [ $OSDNOTIFICATIONS -eq 1 ];then
                    notify
-send -i $OSDICON -t $OSDTIMEOUT "Upload" "Zipping of <b>$INPUTFILE bzw $ARCHIVNAMEFINAL</b> done, starting upload"
                
elif $OSDNOTIFICATIONS -eq 2 ];then
                    growlnotify 
-"Upload" -"Zipping of $INPUTFILE bzw $ARCHIVNAMEFINAL done, starting upload"    
                
fi
            fi

        fi
        
for UPLOADARCHIVPART in `ls $ARCHIVNAMEFINAL*
        {
            
ncftpput -u $FTPUSR -p $FTPPW -DD $FTPHOST $UPLOADARCHIVPART
            OUT
=$?
            if [ 
$OUT -ne 0 ];then
                t
=1
                
while [ $t -le 3 ];do
                    
ncftpput -u $FTPUSR -p $FTPPW -DD $FTPHOST $UPLOADARCHIVPART
                    OUT
=$?
                    if [ 
$OUT -eq 0 ];then
                        t 
5
                    fi
                    t
=`expr $t + 1`
                    if [ 
$t -eq 4 ];then
                        
echo "::: **CRITICAL** Upload failed after 3 trys."
                        
if [ $OSDNOTIFICATIONS -ne 0 ];then
                            
if [ $SENDOSDPERSSH -eq 1 ];then
                                
if [ $OSDNOTIFICATIONS -eq 1 ];then
                                    ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/bin/notify-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>***ERROR***</b> Upload failed after 3 retrys at file $UPLOADARCHIVPART"'
                                
elif $OSDNOTIFICATIONS -eq 2 ];then
                                    ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/local/bin/growlnotify -t "Upload" -m "***ERROR*** Upload failed after 3 retrys at file $UPLOADARCHIVPART"'
                                
fi
                            elif 
$SENDOSDPERSSH -eq 0 ];then
                                
if [ $OSDNOTIFICATIONS -eq 1 ];then
                                    notify
-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>***ERROR***</b> Upload failed after 3 retrys at file $UPLOADARCHIVPART"
                                
elif $OSDNOTIFICATIONS -eq 2 ];then
                                    growlnotify 
-"Upload" -"***ERROR*** Upload failed after 3 retrys at file $UPLOADARCHIVPART"
                                
fi
                            fi
                        fi
                        
exit 6
                    fi
                done
            elif 
$OUT -eq 0 ];then
                    
if [ $OSDNOTIFICATIONS -ne 0 ];then
                        
if [ $SENDOSDPERSSH -eq 1 ];then
                            
if [ $OSDNOTIFICATIONS -eq 1 ];then
                                ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/bin/notify-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>Sucess!</b> another part has been uploaded. Starting next..."'
                                
elif [$OSDNOTIFICATIONS -eq 2 ];then
                                ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/local/bin/growlnotify -t "Upload" -m "Success, another part has been uploaded Starting next..."'
                            
fi
                        elif 
$SENDOSDPERSSH -eq 0 ];then
                            
if [ $OSDNOTIFICATIONS -eq 1 ];then
                                notify
-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>Upload of $UPLOADARCHIVPART done! starting next...</b>"
                            
elif $OSDNOTIFICATIONS -eq 2 ];then
                                growlnotify 
-"Upload" -"Upload of $UPLOADARCHIVPART done! starting next..."    
                            
fi
                        fi
                    fi
            fi
        

        
    }
    echo 
"::: All done!"
    
if [ $OSDNOTIFICATIONS -ne 0 ];then
        
if [ $SENDOSDPERSSH -eq 1 ];then
            
if [ $OSDNOTIFICATIONS -eq 1 ];then
                ssh 
-/home/$SHUSER/.ssh/$SSHAUTHKEYNAME $SSHUSR@$SSHHOST 'export DISPLAY=:0 && /usr/bin/notify-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>Upload done!</b>"'
            
fi
        elif 
$SENDOSDPERSSH -eq 0 ];then
            
if [ $OSDNOTIFICATIONS -eq 1 ];then
                notify
-send -i $OSDICON -t $OSDTIMEOUT "Upload" "<b>Upload done!</b>"
            
elif $OSDNOTIFICATIONS -eq 2 ];then
                growlnotify 
-"Upload" -"Upload done!"
            
fi
        fi
    fi
}

upload

exit 
Hat heute morgen als 10 Zeiler angefangen
Viel spass, nähere beschreibung auf neimen Blog
Upload Skript (7z und ncftp) - Sq252