mit rsync Dateien verschieben

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

mit rsync Dateien verschieben

Beitrag von cphowdy » 27.03.2009 08:39:18

Hi, ich habe folgendes Problem:

ich möchte Dateien von einem Ordner auf Server A in einen Ordner auf Server B via Cronjob verschieben. Hab es mit rsync versucht und dazu ein kleines Script geschrieben. Ich hätte aber gerne, dass die Dateien die kopiert worden sind gelöscht werden. Oder am besten verschoben. Aber meine Suche in google hat auch schon ergeben, dass rsync wohl nur Daten kopiert und nicht verschiebt.
mmv soll das ja auch können, aber kann es das auch von Server A nach Server B ??

Danke für eure Hilfe

Grüße

uname
Beiträge: 12481
Registriert: 03.06.2008 09:33:02

Re: mit rsync Dateien verschieben

Beitrag von uname » 27.03.2009 08:47:04

Es gibt wohl einen rsync-Parameter, der aber nicht die Verzeichnisse mitlöscht. Nicht selbst probiert. Auf gleichem Filesystem würde ich immer "mv" nutzen und bei unterschiedlichen Filesystemen oder Rechnern kann man am Ende die Daten auch von Hand löschen.

Code: Alles auswählen

 
--remove-source-files

This tells rsync to remove from the sending side the files (meaning non-directories)  that are a part of the transfer and have been successfully duplicated on the receiving side.

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: mit rsync Dateien verschieben

Beitrag von cphowdy » 27.03.2009 09:00:16

Gerade getestet! Funktioniert - danke! Wie simpel die parameter manchmal sind -.-"
Und warum steht sowas nicht in "man rsync" ?! Naja .. hmm das Problem ist jetzt noch das das ganze über eine eher unsichere Leitung geht (bricht öfters mal zusammen) und es wäre nicht gerade von Vorteil wenn die Dateiübertragung abbricht, rsync aber trotzdem alles löscht...
Hmm man könnte dich aber ne if Abfrage machen ob rsync geklappt hat und danach mit rm alles löschen oder ?! Fällt mir jetzt grad so ein ^^

if [ $? = 0 ] ; then
rm $FILE_ROOT/*
fi

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: mit rsync Dateien verschieben

Beitrag von nepos » 27.03.2009 10:18:33

cphowdy hat geschrieben: Und warum steht sowas nicht in "man rsync" ?! Naja .. hmm das Problem ist jetzt noch das das ganze über eine eher unsichere Leitung geht (bricht öfters mal zusammen) und es wäre nicht gerade von Vorteil wenn die Dateiübertragung abbricht, rsync aber trotzdem alles löscht...
Steht doch drin:

Code: Alles auswählen

OPTIONS SUMMARY
       Here is a short summary of the options available in rsync. Please refer to the detailed description below for  a  complete  descrip‐
       tion.
...
            --existing              skip creating new files on receiver
            --ignore-existing       skip updating files that exist on receiver
            --remove-source-files   sender removes synchronized files (non-dir)
            --del                   an alias for --delete-during
            --delete                delete extraneous files from dest dirs
...
Denke mal, dass rsync so schlau ist, die Quelldatei erst dann zu löschen, wenn er sie sauber übertragen hat:

Code: Alles auswählen

       --remove-source-files
              This tells rsync to remove from the sending side the files (meaning non-directories) that are a part of the transfer and have
              been successfully duplicated on the receiving side.

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: mit rsync Dateien verschieben

Beitrag von cphowdy » 27.03.2009 10:48:07

Ok -.-" Dann habs ich überlesen...
Werde das noch testen. Danke

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: mit rsync Dateien verschieben

Beitrag von cphowdy » 27.03.2009 11:11:42

Ich hätte noch eine andere Frage:

Wie kann ich mit einer if Abfrage prüfen wie alt eine Datei ist. Sprich wann sie erstellt wurde?

Danke

Benutzeravatar
DerFux
Beiträge: 17
Registriert: 18.04.2006 13:44:37
Kontaktdaten:

Re: mit rsync Dateien verschieben

Beitrag von DerFux » 03.04.2009 08:27:33

Hallo,

mit

Code: Alles auswählen

ls -l --time-style='full-iso' path/to/file      # ausgiebiges Datumsformat
oder

Code: Alles auswählen

ls -l --time-style="+%s'                        # zeigt sekunden seit 1.1.1970 an
kannst du das Datum das Alter deiner Dateien anzeigen lassen.
Das kannst du extrahieren und abgleichen.

Code: Alles auswählen

 
FILESEC=.... # die musst du dir irgendwie besorgen
CURSEC=`date '+%s'

if test `expr $CURSEC - $FILESEC` > 3600; then
    tu etwas mit der datei, die 1 Stunde alt ist....
fi
Alternativ kannst dir die Dateien, die älter als $HOUR sind auch direkt mit find anzeigen:

Code: Alles auswählen

[...]
       -amin n
              File was last accessed n minutes ago.
       -anewer file
              File was last accessed more recently than file was modified.  If file is a symbolic link and the -H option or the -L option is in effect, the  access  time  of  the
              file it points to is always used.
       -atime n
              File  was  last accessed n*24 hours ago.  When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match
              -atime +1, a file has to have been accessed at least two days ago.
       -cmin n
              File’s status was last changed n minutes ago.
       -cnewer file
              File’s status was last changed more recently than file was modified.  If file is a symbolic link and the -H option or the -L option is in effect, the  status-change
              time of the file it points to is always used.
       -ctime n
              File’s status was last changed n*24 hours ago.  See the comments for -atime to understand how rounding affects the interpretation of file status change times.
[...]
Nur als Tipp: Das ganze hat zwei Minuten gedauert und ich habe nur man benutzt...

cphowdy
Beiträge: 24
Registriert: 03.02.2009 16:23:51

Re: mit rsync Dateien verschieben

Beitrag von cphowdy » 03.04.2009 12:09:26

Ok danke hab den Wink mit dem Zaunpfahl verstanden...

Habs auch hingekriegt auf ne andere Weise und hab auch nur 5 Min in Google investiert.
Hät mir die Frage sparen können - ich weiß.

Antworten