ubuntuusers.de

Aktuelles Datum in Dateipfad bei rsync

Status: Ungelöst | Ubuntu-Version: Lubuntu 16.04 (Xenial Xerus)
Antworten |

Basel

Anmeldungsdatum:
4. August 2008

Beiträge: 447

Hallo,

ich für Datensicherungen mit folgendem Befehl aus:

1
rsync -aPv -delete -b --backup-dir=/media/basel/SICHERUNG3/JJMMTT\ del /media/basel/Windows/Users/basel/ /media/basel/SICHERUNG3/basel/

Ich kann jedesmal JJMMTT\ del manuell eingeben. Das hat aber das Restrisiko, dass man die Anpassung mal vergisst. Wenn ich das in ein Skript überführen würde (was ich nicht kann), könnte man wohl eine Variable für das Datum setzen. (s. https://forum.ubuntuusers.de/topic/script-ordner-mit-aktuellem-datum-erstellen/).

Kann ich auch bei einem einfachen Konsolenbefehl automatisiert das JJMMTT vergeben lassen?

Die Datensicherung soll immer eine 1:1-Kopie sein, aber die gelöschten Dateien sollen halt in einen Ordner wie "200106 del" gesichert werden. Gelegentlich kann ich dann die älteren dieser "Papierkörbe" dann löschen, so mein Plan.

Grüße

Basel

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Basel schrieb:

Hallo,

ich für Datensicherungen mit folgendem Befehl aus:

1
rsync -aPv -delete -b --backup-dir=/media/basel/SICHERUNG3/JJMMTT\ del /media/basel/Windows/Users/basel/ /media/basel/SICHERUNG3/basel/

Ich kann jedesmal JJMMTT\ del manuell eingeben. Das hat aber das Restrisiko, dass man die Anpassung mal vergisst. Wenn ich das in ein Skript überführen würde (was ich nicht kann),

Was heißt "was ich nicht kann"? Darfst Du nicht? Wieso kannst Du nicht? Fehlt Dir das Know-How?

1
rsync -aPv -delete -b --backup-dir=/media/basel/SICHERUNG3/$(date +"%y%m%d")\ del /media/basel/Windows/Users/basel/ /media/basel/SICHERUNG3/basel/

sollte das Äquivalent mit Datum=HEUTE sein, dynamisch. Etwas merkwürdig mutet mich der Backslash nach dem Datum an.

Neben einem Script käme noch eine Funktion in Betracht, aber wenn Du kein Script benutzen darfst, dann vielleicht auch keine Funktion und kein Alias, bzw. dann darfst Du vielleicht auch die .bashrc nicht bearbeiten, in der man sowas üblicherweise hinterlegt.

könnte man wohl eine Variable für das Datum setzen. (s. https://forum.ubuntuusers.de/topic/script-ordner-mit-aktuellem-datum-erstellen/).

Kann ich auch bei einem einfachen Konsolenbefehl automatisiert das JJMMTT vergeben lassen?

It depends.

Wenn Du Dich immer tagsüber auf einen Server einloggst, und nicht eingeloggt bleibst, dann kannst Du auch eine Variable setzen. Das Risiko dabei ist halt, dass Du bis zum nächsten Tag eingeloggt bleibst, und dass dann immernoch das Datum von gestern gesetzt ist. Wenn Du automatisiert eine Variable setzen kannst, dann kannst Du aber i.d.R. auch ein alias setzen bzw. eine Funktion definieren bzw. ein Script irgendwo speichern - deswegen ist mir unklar, was "kann ich nicht" heißt.

Basel

(Themenstarter)

Anmeldungsdatum:
4. August 2008

Beiträge: 447

Kann nicht, meinte, dass mir das Wissen dafür fehlt, die Überlegungen in Skript überzuführen.

Es geht um manuell angestoßene Backups auf einer externen Festplatte. Das mache ich gelegentlich, deshalb reicht mir ein Shell-Befehlszeile, auch wenn ein Skript sicherlich besser/toller wäre.

Das Backslash nach dem Datum ist ein Tipp-Fehler.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55489

Wohnort: Berlin

Zu der von dir angegeben Version "Lubuntu 16.04" sei noch angemerkt, dass der Support dafür seit April 2019 abgelaufen ist...

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Ein Skript ist im Extremfall einfach nur ein Befehl, der zu lang/kompliziert ist, um ihn jedes Mal neu zu schreiben. Ganz extrem kann ein Skript sogar leer sein, da fällt mir aber kein Verwendungszweck ein, den ich schon hatte.

Außerdem packt man einen Shebang davor, das war es schon fast. Wenn man es nur zum Laufen bringen will, also etwa so:

1
2
3
4
5
#!/bin/bash
#
# rsync-Kommando mit automatisierter Datumssetzung:
#
rsync -aPv -delete -b --backup-dir=/media/basel/SICHERUNG3/$(date +"%y%m%d") del /media/basel/Windows/Users/basel/ /media/basel/SICHERUNG3/basel/

Dann machst Du es noch ausführbar und schiebst es in Dein persönliches Scriptverzeichnis:

1
2
3
chmod a+x baselsync.sh 
mkdir ~/bin
mv baselsync ~/bin

Ob das persönliche Scriptverzeichnis automatisiert in den PATH übernommen wird, so es existiert, weiß ich nicht - es würde dann wohl bei einem Neuöffnen eines Terminals aktiv oder beim Reboot, wenn Du ab und zu rebootest. Ob baselsync.sh ein guter Name ist, weiß ich auch nicht.

Basel

(Themenstarter)

Anmeldungsdatum:
4. August 2008

Beiträge: 447

Danke.

user_unknown schrieb:

Ob das persönliche Scriptverzeichnis automatisiert in den PATH übernommen wird, so es existiert, weiß ich nicht - es würde dann wohl bei einem Neuöffnen eines Terminals aktiv oder beim Reboot, wenn Du ab und zu rebootest.

Meinst du PATCH? PATH gibt es im Wiki nicht.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13217

Basel schrieb:

user_unknown schrieb:

Ob das persönliche Scriptverzeichnis automatisiert in den PATH übernommen wird, so es existiert, weiß ich nicht - es würde dann wohl bei einem Neuöffnen eines Terminals aktiv oder beim Reboot, wenn Du ab und zu rebootest.

Meinst du PATCH? PATH gibt es im Wiki nicht.

Nee, es geht um die Umgebungsvariable $PATH, die üblicherweise bestimmte Verzeichnisse nur aufnimmt, falls sie vorhanden sind. Bei mit steht dies in der ~/.bashrc:

1
2
3
4
5
# set PATH so it includes user's private bin if it exists
for p in "$HOME/.local/bin" "$HOME/bin"; do
  [ -d "$p" ] && ! echo "$PATH" | tr : \\n | fgrep -xqe "$p" && PATH="$p:$PATH"
done
unset p

Der Code war gemeint.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Basel schrieb:

Meinst du PATCH? PATH gibt es im Wiki nicht.

Siehste, wollte ich noch kontrollieren, ob es das überhaupt gibt.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55489

Wohnort: Berlin

user_unknown schrieb:

Siehste, wollte ich noch kontrollieren, ob es das überhaupt gibt.

Gibt es, wenn du es PATH so schreibst. 😛

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55489

Wohnort: Berlin

user_unknown schrieb:

Siehste, wollte ich noch kontrollieren, ob es das überhaupt gibt.

Jetzt gibt es das. Kollege noisefloor hat das mal gefixt. 😉

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Vielen Dank ans Wikiteam und frohes neues Jahr allen, wenn ich schon mal dabei bin.

Basel

(Themenstarter)

Anmeldungsdatum:
4. August 2008

Beiträge: 447

Hallo,

danke für die Hinweise.

Ich folgte der Anleitung hier https://wiki.chrisge.org/linux/shell-skripte und musst keinen Pfad eintragen. Jetzt läuft gerade der erste Test.

Ich habe ja mehrere Festplatten zum Sichern. Kann man das auch über eine Variable lösen, dass er je nachdem die Platte /Sicherung1 /Sicherung2 ... nimmt? Ich würde jetzt jeweils ein Skript für je Platte anlegen.

Grüße

Basel

Basel

(Themenstarter)

Anmeldungsdatum:
4. August 2008

Beiträge: 447

Hallo,

1
2
3
4
5
#!/bin/bash
#
# rsync-Kommando mit automatisierter Datumssetzung:
#
rsync -aPv -delete -b --backup-dir=/media/basel/SICHERUNG3/$(date +"%y%m%d") del /media/basel/Windows/Users/basel/ /media/basel/SICHERUNG3/basel/

Wie kann es sein, dass schon beim allerersten Durchgang ein Backup-Verzeichnis entsteht? Es hat leider den Namen "200111" und nicht "200111 del".

Grüße

Basel

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Ich hatte in meinem ersten Post geschrieben:

Etwas merkwürdig mutet mich der Backslash nach dem Datum an.

und wurde nicht belehrt, dass das nötig ist, um das "del" mit dem Datum zu verbinden, sondern mir wurde gesagt:

Das Backslash nach dem Datum ist ein Tipp-Fehler.

Der Backslash war also kein Tippfehler. Als nicht rsyncler wusste ich nicht, was das del da soll, deswegen hatte ich gefragt. Mach den Backslash wieder hin oder schreib es z.B. so:

1
rsync -aPv -delete -b --backup-dir=/media/basel/SICHERUNG3/$(date +"%y%m%d")" del" /media/basel/Windows/Users/basel/ /media/basel/SICHERUNG3/basel/

Ich habe ja mehrere Festplatten zum Sichern. Kann man das auch über eine Variable lösen, dass er je nachdem die Platte /Sicherung1 /Sicherung2 ... nimmt? Ich würde jetzt jeweils ein Skript für je Platte anlegen.

Zum Sichern oder zu Sichern? Na, egal: Ja, man kann Variablen nutzen.

1
2
3
4
for i in 1 2 3 5
do
  rsync -aPv -delete -b --backup-dir=/media/basel/SICHERUNG$i/$(date +"%y%m%d")" del" /media/basel/Windows/Users/basel/ /media/basel/SICHERUNG$i/basel/
done 

wenn ich das mechanisch auf 4 Verzeichnisse ausdehne. Festplatten sind auf diesem Abstraktionslevel nicht erkennbar - nehmen wir also an, dass diese durch Verzeichnisse abgebildet werden.

Deine Wikiquelle mutet mich übrigens sehr nach gesundem Halbwissen an.

Basel

(Themenstarter)

Anmeldungsdatum:
4. August 2008

Beiträge: 447

Hallo,

user_unknown schrieb:

Ich hatte in meinem ersten Post geschrieben:

Etwas merkwürdig mutet mich der Backslash nach dem Datum an.

und wurde nicht belehrt, dass das nötig ist, um das "del" mit dem Datum zu verbinden, sondern mir wurde gesagt:

Das Backslash nach dem Datum ist ein Tipp-Fehler.

Der Backslash war also kein Tippfehler. Als nicht rsyncler wusste ich nicht, was das del da soll, deswegen hatte ich gefragt. Mach den Backslash wieder hin oder schreib es z.B. so:

1
rsync -aPv -delete -b --backup-dir=/media/basel/SICHERUNG3/$(date +"%y%m%d")" del" /media/basel/Windows/Users/basel/ /media/basel/SICHERUNG3/basel/

Ups. Da habe ich ich selbst verwirrt. Sorry. Ich habe nun lieber einen Ordner angelegt, in dem die Ordner nach Datum rein kommen.

user_unknown schrieb:

Ich habe ja mehrere Festplatten zum Sichern. Kann man das auch über eine Variable lösen, dass er je nachdem die Platte /Sicherung1 /Sicherung2 ... nimmt? Ich würde jetzt jeweils ein Skript für je Platte anlegen.

Zum Sichern oder zu Sichern?

Ich habe zwei Platten, von denen eine immer extern lagert. Überlegung ist, dass das Skript die jeweils verwendete Datensicherungsplatte erkennt.

Grüße

Basel

Antworten |