![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
||||
|
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:
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 |
| Display Modes | Beoordeel deze draad |
|
|