1. #1
    Avatar von Sq252
    Registriert seit
    02.01.2012
    Beiträge
    11
    Thanked 4 Times in 3 Posts

    Standard [Shell Script]Upload Script (7z & ncftp)

    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
    Geändert von Sq252 (08.01.2012 um 20:09 Uhr)

Ähnliche Themen

  1. K-Script Vorfall
    Von Waterpolo im Forum Knuddels Underground Szene
    Antworten: 162
    Letzter Beitrag: 19.09.2012, 19:38
  2. [PHP] Bild Upload Script
    Von Minecraft im Forum PHP
    Antworten: 3
    Letzter Beitrag: 11.07.2012, 16:21
  3. [3D] K-Script of the Road
    Von Dewu im Forum Showroom
    Antworten: 5
    Letzter Beitrag: 21.03.2012, 19:41
  4. K-Script Bot FAQ
    Von JackThursby im Forum Knuddels Allgemein
    Antworten: 6
    Letzter Beitrag: 22.10.2011, 22:55
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.