Kopieren von dateien

Post Reply
Message
Author
blotter
Posts: 2
Joined: 06. Oct 2004 12:35

Kopieren von dateien

#1 Post by blotter »

Hi!!

Ich hab ein paar hltv server laufen und die nehmen durchweg demos auf. Die demos werden in ein und dem selben ordner gespeichert. Nun will ich per cronjop diese dateien einmal am tag in einen ordner kopieren wo man sie per http downloaden kann. Mein problem ist das ich nur alle koppieren kann ( copy demo* /var/www/...../demos ) . In dem ordner Sind sagen wir mal 15 dateien ( variable größe ) alle beginnen mit demo,. Nun will ich alle dateien außer die letzten 2 ( variable größe ) in einen neuen ordner verschieben / kopieren. Wie kann ich das bewerkstelligen das das scipt was von cron einmal am tag gestartet wird alle dateien bis auf die letzten 2 (variable größe ) in einen extra ordner kopiert / verschiebt?
Die letzten 2 ( variabke größe ) weil diese dateien von dem hltv noch in neutzung sind aber trotzdem kopiert werden können was aber im nachhinein die demos unanschaubar macht.

Ich würde mich freuen wenn mir einer helfen kann bzw mir einen ansatz zeigt wie ich dies bewerkstelligen kann

mfg blotter

User avatar
killerhippy
Posts: 529
Joined: 19. May 2000 19:36
Contact:

#2 Post by killerhippy »

Hi,

das Verschieben von Dateien innerhalb gleicher Partiitionen, solange sie offen sind, funktioniert deshalb, weil sie ihre inode Nummer behalten und deshalb wird weiterhin darin geschrieben. Ueber Partitionsgrenzen hinweg funktioniert das nicht.

Dein Problem laesst sich mit ein bisschen scripten mit

Code: Select all

ls -lrt | head -n 14
etwas sed, cut und grep bewerkstelligen.
Last edited by killerhippy on 06. Oct 2004 21:19, edited 1 time in total.
Es gibt keine dumme Fragen!

Killerhippy

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#3 Post by Lateralus »

Ganz unsauber so:

Code: Select all

#!/bin/sh

anzahl=0
for file in $(ls [Quellverzeichnis]/demo*); do
  anzahl=$[$count+1]
done

count=0
for file in $(ls [Quellverzeichnis]/demo*); do
  if [ "$count" -le "$[$anzahl-2]" ]; then
    cp file [Zielverzeichnis]
  fi
  count=$[$count+1]
done


blotter
Posts: 2
Joined: 06. Oct 2004 12:35

#4 Post by blotter »

Hi!

Ich danke euch für eure schnell hilfe.
Iich werd das kleine script mal ausprobieren.
....
Ich hab das scipt mal ausprobiert und bissel was gändert

Code: Select all

#!/bin/bash
# 06.10.04 first add by Lateralus
# 07.10.04 modify by blotter

# set vars
anzahl=0
count=0
subtr=2
sdir="QUELLVERZEICHNIS + datei*"
cdir="ZIElVERZEICHNIS"

# lets work start now
#
# get number of the files contained in the directory
for file in $(ls $sdir); do
    anzahl=$[$anzahl+1]
    #echo $anzahl $file
done

# move the files from the directory in a new directory out of the last $subtr
for file in $(ls $sdir); do
    count=$[$count+1]
    if [ "$count" -le "$[$anzahl-$subtr]" ]; then
        cp $file $cdir
        rm $file
        #echo $count $file
    fi
   # echo $count $file
done
mfg blotter

Post Reply