/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Slette mapper der er ældre end x timer
Fra : Michael


Dato : 16-02-04 21:24

Der har tidligere været nogle script-stump-eksempler, hvor man via
shell/Perl kunne slette nogle filer som var ældre end x dage.

Nogen der har nogle eksempler på kode som kan slette en mappe der er
ældre end x timer?

--
Mvh

 
 
Peter Mogensen (16-02-2004)
Kommentar
Fra : Peter Mogensen


Dato : 16-02-04 21:29

Michael wrote:
> Der har tidligere været nogle script-stump-eksempler, hvor man via
> shell/Perl kunne slette nogle filer som var ældre end x dage.
>
> Nogen der har nogle eksempler på kode som kan slette en mappe der er
> ældre end x timer?

find <directory> -mtime +x -exec rm -rf {} \;

I det hele taget:
man find


Klaus Ellegaard (16-02-2004)
Kommentar
Fra : Klaus Ellegaard


Dato : 16-02-04 21:32

Peter Mogensen <apm-at-mutex-dot-dk@nospam.no> writes:

>> Nogen der har nogle eksempler på kode som kan slette en mappe der er
>> ældre end x timer?

>find <directory> -mtime +x -exec rm -rf {} \;

Der er vist dømt stort "how to shoot oneself in the foot"-
potentiale dér

Mvh.
   Klaus.

Thomas Rasmussen (16-02-2004)
Kommentar
Fra : Thomas Rasmussen


Dato : 16-02-04 21:35

Klaus Ellegaard <klausellegaard@msn.com> writes:

> Der er vist dømt stort "how to shoot oneself in the foot"-
> potentiale dér

Well, det er der jo altid når man leder efter scripts til at slette
filer/dirs, en god vane er at inden man prøver sådan noget at undlade
-exec rm {}

Og når man er 112% sikker på at det kun fanger de rigtige dirs, så
tilføjer man exec eller måske endnu bedre |xargs rm -rf (giver færre
kald til rm kommandoen).

/Thomas

--
/"\ | Human Knowledge Belongs To The World
\ / | -- Milo Hoffman in "AntiTrust"
x |
/ \ <-- (ASCII Ribbon Campain against html emails and postings!)

Klaus Ellegaard (16-02-2004)
Kommentar
Fra : Klaus Ellegaard


Dato : 16-02-04 22:28

Thomas Rasmussen <simpsons@invalid.kom.auc.dk> writes:

>> Der er vist dømt stort "how to shoot oneself in the foot"-
>> potentiale dér

>Well, det er der jo altid når man leder efter scripts til at slette
>filer/dirs, en god vane er at inden man prøver sådan noget at undlade
>-exec rm {}

Snarere bør man tænke på options. Er det kataloger, man vil af
med, er "-type d" en god plan. Personligt ville jeg aldrig vove
mig ud i noget, der involverede "rm -rf". Der er lidt for mange
kedelige fortilfælde.

Personligt ville jeg lave en "find", der endte med at flytte de
ting, der skal slettes, ned i et passende katalog, som så kunne
slettes efterfølgende. Det er væsentligt mere overskueligt og
langt mindre farligt.

Der er masser af herlige ubehageligheder, man kan udsætte sig selv
for med rm. For eksempel "rm -rf $DIR/$TMP" (eller analogt "find
$DIR/$TMP ... -exec rm ..."), hvor man i et øjebliks uopmærksomhed
glemmer at sætte de to variable. Det forekommer mig, at der var en
SunOS 4-patch, der havde tendenser i den retning, men jeg kan ikke
lige finde noget relevant med Google.

Og så den herlige detalje: hard links. Især hvis nogen har været
så ufattelig usmart at gøre det på kataloger (de fleste filsystemer
har efterhånden fundet ud af at nægte den slags). Samme effekt kan
fås med et lettere defekt filsystem, hvor en enkelt inode-refernce
peger et meget forkert sted hen.

Så uanset metode og kriterier: pas nu på. Automagiske ting, der
bruger svært gennemskuelige kriterier til at slette med (det vil
næsten altid inkludere brug af "find"), er altid en risikabel
kombination. Eventuelt kan man blot erstatte "-exec rm" med et
script, der f.eks. har en ide om mængden, der skal slettes. Hvis
man forventer at skulle slette 2-300 filer, men rm en dag bliver
kaldt 200-300.000 gange, er det nok usundt at fortsætte udover de
forventede 300.

Mvh.
   Klaus.

Peter Mogensen (16-02-2004)
Kommentar
Fra : Peter Mogensen


Dato : 16-02-04 21:46

Klaus Ellegaard wrote:
> Peter Mogensen <apm-at-mutex-dot-dk@nospam.no> writes:
>
>
>>>Nogen der har nogle eksempler på kode som kan slette en mappe der er
>>>ældre end x timer?
>
>
>>find <directory> -mtime +x -exec rm -rf {} \;
>
>
> Der er vist dømt stort "how to shoot oneself in the foot"-
> potentiale dér

Well... som jeg sagde: man find :)

Den skal nok lige have -type f på også og så glemme -r :)

Peter


Kent Friis (16-02-2004)
Kommentar
Fra : Kent Friis


Dato : 16-02-04 22:31

Den Mon, 16 Feb 2004 21:46:14 +0100 skrev Peter Mogensen:
>Klaus Ellegaard wrote:
>> Peter Mogensen <apm-at-mutex-dot-dk@nospam.no> writes:
>>
>>
>>>>Nogen der har nogle eksempler på kode som kan slette en mappe der er
>>>>ældre end x timer?
>>
>>
>>>find <directory> -mtime +x -exec rm -rf {} \;
>>
>>
>> Der er vist dømt stort "how to shoot oneself in the foot"-
>> potentiale dér
>
>Well... som jeg sagde: man find :)
>
>Den skal nok lige have -type f på også og så glemme -r :)

Der blev bedt om "som kan slette en mappe".

Mvh
Kent
--
Help test this great MMORPG game - http://www.eternal-lands.com/

Peter Mogensen (16-02-2004)
Kommentar
Fra : Peter Mogensen


Dato : 16-02-04 22:42

Kent Friis wrote:
> Der blev bedt om "som kan slette en mappe".

Det gjorde der sørme også. Jeg blev lige i tvivl. Det oprindelige
spørgsmål nævnte jo også et perl-script, der slettede _filer_.

Jeg fik vist blandet filer og mapper lidt sammen. Så skal man nok lige
teste først hvordan mtime virker på directories. Det er muligt at ctime
er mere anvendelig.

Men I har jo ret i at man bør teste den slags find kommandoer, der
anvender rm -rf _meget_ grundigt inden man lader dem køre for alvor.

Peter


Ivar Madsen (17-02-2004)
Kommentar
Fra : Ivar Madsen


Dato : 17-02-04 22:44

Peter Mogensen skrev i -dk.edb.system.unix:

> Men I har jo ret i at man bør teste den slags find kommandoer, der
> anvender rm -rf meget grundigt inden man lader dem køre for alvor.

Og hvor grundigt kan man så teste?
Jeg sider og tænker på engang for efterhånden mange år siden, jeg havde lavet
noget i Statistikparken SAS, kørte med et rimeligt stort datasæt på ~2000
record, og ~2000 variable pr. record. Jeg havde testet tabellerne med de
første 100 record, og fået godkendt det af forskeren.
Næste dag lå der en stor stark printoutput, ~30 % af recordene indholdt værdier
i nogle variable, der fik generet noget ubruligt noget, første record med
"fejlen" var record 104,,,


Jeg vil tillade mig at sige, tag en backup inden der køres for alvor med at
slette,,,

--
Med venlig hilsen | Jeg søger et foto / realistisk maleri over
| omgivelserne ved og lige syd for skovbrynes st
Ivar Madsen | ved Bagsværd fra tiden efter krigen, og
Der kører mdk9.2 | frem til motorvejbyggeriet blev påbegyndt

Peter Mogensen (17-02-2004)
Kommentar
Fra : Peter Mogensen


Dato : 17-02-04 22:56

Ivar Madsen wrote:
>
> Jeg vil tillade mig at sige, tag en backup inden der køres for alvor med at
> slette,,,

rigtige mænd tager ikke backup - de græder :)




Jacob Sparre Anderse~ (17-02-2004)
Kommentar
Fra : Jacob Sparre Anderse~


Dato : 17-02-04 23:23

Ivar Madsen skrev:

> Jeg vil tillade mig at sige, tag en backup inden der køres for alvor
> med at slette,,,

Laver man ikke altid sikkerhedskopier - uanset om man har _planlagt_
at slette filer eller ej?

Jacob
--
"if a person can't communicate,
the very least he can do is to shut up!"

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste