Gå til innhold

Flytte filer som ikke er aksessert på en stund


Anbefalte innlegg

Jeg er rimelig ny på Linux, men har fått en Ubuntu 7.10 server opp å gå med samba og vsftpd.

 

Siden mine ftp-brukere kan laste opp filer i en felles katalog så ønsker jeg å flytte filer som lastes opp hit til en annen katalog (hvor ftp-brukere ikke kan gjøre annet med filene enn å lese de). Samtidig ønsker jeg ikke å flytte ting mens noen laster opp/ned de samme filene.

 

Et prakteksempel er hvis noen har en katalog med flere store filer som lastes opp, og jeg kjører en "mv" kommando på den samme katalogen. Resultatet er at ftp-opplasting mislykkes midt inni, jeg antar det skyldes at jeg har flyttet katalogen den holder på å laste opp til.

 

Etter noe knoting (og mye lesing) har jeg kommet frem til følgende kommando:

find /ftphome/upload/* -depth -mount -amin +60 -mmin +60 -type d -exec mv -u '{}' /katalog/barelese/ \;

 

Det jeg tror den gjør er følgende:

- Finn alle kataloger (i /ftphome/upload/) som ikke er aksessert og/eller skrevet til den siste timen

 

- Flytter kataloger som ble funnet til /katalog/barelese/

 

Spørsmålene blir da:

1. Vil kataloger hvor innholdet er oppdatert (ftp-opplasting) få oppdaterte "stat" slik at de blir ekskludert (selv om selve katalogen ikke er oppdatert på over 60 minutter) ?

 

2. Er det bedre å eventuelt lage et script med iterasjon som sjekker alle filer, og bare gjør noe med kataloger hvor også innholdet (rekursivt) ikke er endret innen det samme tidsrom ?

 

3. Hvis svaret på spørsmål 2 er "ja", kan noen fortelle meg hvordan jeg bruker innholdet fra find-kommandoen til iterasjon (f.eks. en for-løkke) ?

Lenke til kommentar
Videoannonse
Annonse
3. Hvis svaret på spørsmål 2 er "ja", kan noen fortelle meg hvordan jeg bruker innholdet fra find-kommandoen til iterasjon (f.eks. en for-løkke) ?

 

Er det ikke det exec gjør da?

 

Jo, men det jeg lurte på er hvordan jeg får det ut så jeg kan jobbe med resultatsettet etterpå. Hele poenget med spørsmålet var dersom ikke spm. 1 gjør nytten så må jeg først finne aktuelle mapper med å lese innholdet før selve katalogen og kun utføre flytteoperasjon dersom alle filer passer med kriteriet.

 

Eventuelt hadde det hjulpet hvis jeg kunne kjørt en ny "find" inni "exec" men med nye parametre, men jeg ser ikke for meg at det går (kan jo teste).

Lenke til kommentar
  • 2 måneder senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...