![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| chmod récursif qui ne concerne que les répertoires? | retrovertigo | UNIX for Advanced & Expert Users | 1 | 06-22-2007 05:02 PM |
| Recursive pid script | jbarnhar | De programmation et de script Shell | 3 | 05-02-2007 04:14 PM |
| Problème avec la fonction récursive | malle | De programmation et de script Shell | 4 | 02-03-2007 10:40 AM |
| répertoires problème | yeah016 | UNIX pour les nuls Questions et réponses | 2 | 07-22-2006 08:48 AM |
| grep récursif de répertoires | jagannatha | UNIX pour les nuls Questions et réponses | 8 | 07-24-2003 05:00 PM |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
||||
|
Script problème de répertoires récursifs Aide s'il vous plaît
Bonjour à tous, je suis à la recherche d'une meilleure solution que celle que j'ai créé pour le Groupe de mon La tâche est la suivante: Créer un script qui vérifie Uploads dans un répertoire et de les déplacer vers un autre répertoire spécifié si les fichiers sont téléchargés. Les fichiers sont FTP'd dans le répertoire spécifié FTPS multiples pourrait être en cours d'exécution afin de savoir si un FTP est complète est difficile pour moi de vérifier par l'ID de processus J'ai créé le script ci-dessous, mais il peut voir que les problèmes peuvent survenir avec des arbres Uploads par exemple Si le répertoire a Envoyer le texte suivant: Citation:
ne devrais alors, que signifie t que tous les fichiers et sous répertoires du répertoire qui sera complètement téléchargée et donc aussi les anciennes puis l'âge que je cherche? ...... J'espère que de sens .... Je ne pense pas que si c'est le cas .... J'espère que il ya une meilleure façon de traiter cette question. Merci d'être là. 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
|
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|