![]() |
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt. |
Több, UNIX és Linux fórum témák Ön által talált Hasznos
|
||||
| Szál | Thread Starter | Fórum | Válaszok | Utolsó hozzászólás |
| rekurzív chmod hogy csak érinti a könyvtárakat? | retrovertigo | A UNIX a fejlett és szakértői Felhasználók | 1 | 06-22-2007 05:02 PM |
| Rekurzív pid script | jbarnhar | Shell programozás és Scripting | 3 | 05-02-2007 04:14 PM |
| Probléma a Rekurzív függvény | Malle | Shell programozás és Scripting | 4 | 02-03-2007 10:40 AM |
| könyvtárak probléma | yeah016 | A UNIX a dummies Kérdések és válaszok | 2 | 07-22-2006 08:48 AM |
| grep recursive könyvtárak | jagannatha | A UNIX a dummies Kérdések és válaszok | 8 | 07-24-2003 05:00 PM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
Script probléma miatt recursive könyvtárak Segíts kérlek
Hello mindenkinek, Én egy jobb megoldást, akkor az egyik hoztam létre az én feladatom A feladat a következő: Csináljunk egy automatizált szkript, amely ellenőrizni fogja a feltöltések egy megadott könyvtár és helyezzük át őket egy másik megadott könyvtárba, ha a fájlok teljesen feltöltött. A fájlok FTP'd a megadott könyvtárba Több FTPS lehetne fut úgy tudja, ha egy adott FTP teljes nehéz számomra, hogy ellenőrizzék Process ID Én hoztam létre a forgatókönyvet az alább felsorolt, de láthatjuk, hogy kérdések merülnek fel Feltöltések Fák például Ha a feltöltés könyvtárban a következő: Idézet:
akkor kéne; t jelent hogy minden fájlt és könyvtárat al alacsonyabb Directory lesz teljesen feltöltött, valamint az idősebb, akkor a kora I am looking for? ...... Remélem, hogy volt értelme .... Nem hiszem, hogy ez a helyzet, ha .... Remélem, van egy jobb módja annak, hogy foglalkozzon ezzel a kérdéssel. Köszönöm, hogy ott. Kód:
#!/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
|
|
||||
|
Hello ... Szeretném megoldani ezt a problémát PERL, De most szerettem volna foglalkozni lehetőségek ismerete, ha a fájl feltöltése befejeződött ... A szokásos módja ennek az, hogy az a személy vagy a szoftver, hogy működik a feltöltési átnevezése (ftp REN parancs) egy másik könyvtárba ugyanabban a fájlrendszerben. Mert egy RENAME (mint egy mv mozoghatunk a héj) csak a változásokat mutató, a folyamat azonnali, így ha a fájl megjelenik a költöztek-es könyvtár, tudod, hogy teljesnek kell lennie ....
így például ... .. / uploaddir / commitdir Feltöltött fájlokat a uploaddir és amikor a feltöltés befejeztével parancsot ad ki, mint ftp> REN uploadedfile commitdir / uploadedfile Ön kutatások commitdir folyamat, nem pedig a uploaddir. Ha egy fájl jelenik meg commitdir, tudod, hogy kell feltölteni és teljesen zárt. |
|
||||
|
Hello Quine, köszönöm a választ,
A probléma az, hogy én szeretném, hogy egy cron feladatként fut ez a szkript és a könyvtár, hogy a fájlok kerülnek át nem látható és nem hozzáférhető a feltöltő. Miután a fájlokat van feltöltött és mozgott, a feltöltő nem férhet hozzájuk. (jól fogadja a kis időn között cron munkahelyek kb. 1-5 perc max) Egy perl megoldás lenne elfogadható számomra, elfogadni Nekem van kódolva csak egy modul perl az életemben, akkor valószínűleg hallott róla ..... "Hello World" ![]() Shell script tudok átevickél valahogy mint látod a forgatókönyvet írtam eddig. Így bármilyen, például még a perl válna az én kérdés. köszönöm |
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|