The UNIX and Linux Forums  

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 04-27-2008
robertmcol robertmcol is offline
Regisztrált felhasználó
  
 

Join Date: Feb 2008
Hozzászólások: 6
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:
# Ls-ltr UPLOAD_DIR /
UPLOAD_DIR /:
összesen 4
drwxr-xr-x 4 root root 4096 április 26 21:32 Directory1
-rw-r - r - 1 root root 0 április 26. 21:31 file1.txt

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

UPLOAD_DIR/Directory1/SubDir2:
Összesen 0
-rw-r - r - 1 root root 0 április 26. 21:33 subdir2file2.txt
-rw-r - r - 1 root root 0 április 26. 21:33 subdir2file1.txt

UPLOAD_DIR/Directory1/SubDir1:
Összesen 0
-rw-r - r - 1 root root 0 április 26. 21:32 subdir1file2.txt
-rw-r - r - 1 root root 0 április 26. 21:32 subdir1file1.txt
Nem vagyok benne biztos, de ha az utolsó változás időpontja a stat parancsot a könyvtár régi, akkor a kora I am looking for
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

  #2 (permalink)  
Old 04-27-2008
Quine quine is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2008
Helyszín: Bay Area California
Hozzászólások: 68
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.
  #3 (permalink)  
Old 04-27-2008
RobertCo RobertCo is offline
Regisztrált felhasználó
  
 

Join Date: Aug 2006
Hozzászólások: 1
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
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 11:21 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0