The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
recursieve chmod dat heeft alleen invloed mappen? retrovertigo UNIX for Advanced & Expert Gebruikers 1 06-22-2007 05:02 PM
Recursief pid script jbarnhar Programmeren en Shell Scripting 3 05-02-2007 04:14 PM
Probleem met recursieve functie Malle Programmeren en Shell Scripting 4 02-03-2007 10:40
abonneelijsten probleem yeah016 UNIX voor Dummies Questions & Answers 2 07-22-2006 08:48
grep recursieve abonneelijsten jagannatha UNIX voor Dummies Questions & Answers 8 07-24-2003 05:00 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-27-2008
robertmcol robertmcol is offline
Geregistreerde gebruiker
  
 

Join Date: Feb 2008
Posten: 6
Script probleem te wijten aan recursieve abonneelijsten Help alstublieft

Hallo iedereen, ik ben toen op zoek naar een betere oplossing die ik heb gemaakt voor het mijn taak

De taak is:
Maak een geautomatiseerd script dat controleert voor uploads in een bepaald Directory en ze verhuizen naar een andere opgegeven map als de bestanden volledig zijn geladen.

Bestanden worden FTP'd naar de opgegeven directory
Meerdere FTPS kon draaien dus weten of een bepaalde FTP is voltooid is moeilijk voor mij om te controleren door Process ID


Ik heb het script hieronder vermeld, maar kan zien dat problemen kunnen ontstaan met uploads van Bomen
bijvoorbeeld
Als de upload map heeft de volgende:

Citaat:
# Ls-ltr upload_dir /
Upload_dir /:
Totaal 4
drwxr-xr-x 4 root root 4096 26 april 21:32 Directory1
-rw-r - r - 1 root root 0 26 april 21:31 file1.txt

UPLOAD_DIR/Directory1:
totaal 8
drwxr-xr-x 2 root root 4096 26 april 21:33 SubDir2
drwxr-xr-x 2 root root 4096 26 april 21:32 SubDir1
-rw-r - r - 1 root root 0 26 april 21:32 dir1file1.txt

UPLOAD_DIR/Directory1/SubDir2:
totaal 0
-rw-r - r - 1 root root 0 26 april 21:33 subdir2file2.txt
-rw-r - r - 1 root root 0 26 april 21:33 subdir2file1.txt

UPLOAD_DIR/Directory1/SubDir1:
totaal 0
-rw-r - r - 1 root root 0 26 april 21:32 subdir1file2.txt
-rw-r - r - 1 root root 0 26 april 21:32 subdir1file1.txt
Ik ben niet zeker, maar als de laatst gewijzigd datum van de stat commando op een map ouder is dan de leeftijd die ik ben op zoek naar
dan niet moeten, t dat gemiddelde
dat een bestand en submappen onder dat Indexering volledig zal worden geüpload en ook ouder dan de leeftijd die ik ben op zoek naar?
...... Ik hoop dat logisch ....
Ik denk niet dat het geval is maar ....

Ik hoop er een betere manier om met deze kwestie.

Thanks for being there.


Code:
#!/bin/bash
#
#
# This script will be used to monitor uploads to a specified directory
# and move them to another directory for downloading.
#
# Things to consider:
#       1. Was the uploaded files uploaded in a sub directory.
#       2. Are the files being uploaded complete.
#       3. Move the files to the specified directory
#          with the proper permissions.
#
#
#-------------------------------------------------------------------------------#
#
# Functions
#
#-------------------------------------------------------------------------------#
calc_time() {
        AGE_LAST_CHANGED=`expr ${CURRTIME} - ${FILE_LAST_CHANGED}`
        if [ ${AGE_LAST_CHANGED} -lt ${ACCEPTED_AGE} ];
        then
                OK_TO_MOVE=N
        else
                OK_TO_MOVE=Y
        fi
}
check_date() {
        FILE_LAST_CHANGED=`stat -t ${NEWFILE} |awk '{print $13}'`
}
#-------------------------------------------------------------------------------#
#
# Vairables will go here
#
#-------------------------------------------------------------------------------#
UPUSER=up_user
DOWNUSER=down_user
#
UPPATH=/home/Private/Uploads
DOWNPATH=/home/Private/Downloads

CURRTIME=`date +%s`
ACCEPTED_AGE=300        # 5 minutes of no activity according to date modified


for f in $( ls ${UPPATH} ); do

if [ -d ${UPPATH}/${f} ];
then
#--- Directory with Subfiles In it ---#
        DIR=${UPPATH}/${f}
        echo "${DIR} is a Directory"
        DIRDATE=`date +%Y_%m_%d_%H%M%S`
        NEWDIR=${DOWNPATH}/${f}_${DIRDATE}
        NEWFILE=${DIR}
        check_date
        calc_time
                # It appears that the directory has not been changed in the allowed timeframe (ACCEPTED_AGE)
                # it is ok to create a new directory in the DOWNPATH now.
                # set permissions of new directory to the download user
        mkdir ${NEWDIR}

        # This causes a problem by leaving the original Directory present in th UPLOADS directory.

        for f2 in $(ls  ${UPPATH}/$f ); do
                NEWFILE=${DIR}/${f2} # Set becuase of check_date function
                check_date
                calc_time
                if [ ${OK_TO_MOVE} = "Y" ];
                then
                        mv ${NEWFILE} ${NEWDIR}
                        echo "mv ${NEWFILE} ${NEWDIR} "
                else
                        echo "File date is too new to move better wait"
                fi

        chown -R ${DOWNUSER}:${DOWNUSER} ${NEWDIR}
        done

else
#--- File is in Main Upload directory ---#
        if [ -f ${UPPATH}/$f ]; then
                NEWFILE=${UPPATH}/${f}
                echo "${NEWFILE} is a file"
                check_date
                calc_time

                if [ ${OK_TO_MOVE} = "Y" ];
                then
                        mv ${NEWFILE} ${DOWNPATH}
                        echo "mv ${NEWFILE} ${DOWNPATH} "
                        chown ${DOWNUSER}:${DOWNUSER} ${DOWNPATH}/*
                else
                        echo "File date is too new to move better wait"
                        echo "next pass of cronjob should move this file"
                fi
        fi
fi

done

 

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 06:44 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0