mit rsync Dateien verschieben
mit rsync Dateien verschieben
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
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
Re: mit rsync Dateien verschieben
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.
Re: mit rsync Dateien verschieben
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
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
Re: mit rsync Dateien verschieben
Steht doch drin: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...
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
...
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.
Re: mit rsync Dateien verschieben
Ok -.-" Dann habs ich überlesen...
Werde das noch testen. Danke
Werde das noch testen. Danke
Re: mit rsync Dateien verschieben
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
Wie kann ich mit einer if Abfrage prüfen wie alt eine Datei ist. Sprich wann sie erstellt wurde?
Danke
Re: mit rsync Dateien verschieben
Hallo,
mit
oder
kannst du das Datum das Alter deiner Dateien anzeigen lassen.
Das kannst du extrahieren und abgleichen.
Alternativ kannst dir die Dateien, die älter als $HOUR sind auch direkt mit find anzeigen:
Nur als Tipp: Das ganze hat zwei Minuten gedauert und ich habe nur man benutzt...
mit
Code: Alles auswählen
ls -l --time-style='full-iso' path/to/file # ausgiebiges Datumsformat
Code: Alles auswählen
ls -l --time-style="+%s' # zeigt sekunden seit 1.1.1970 an
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
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.
[...]
Re: mit rsync Dateien verschieben
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ß.
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ß.