Linux Ordner kopieren aber den alten nicht überschreiben?
Moin, ich möchte in Linux einen Ordner kopieren und ihn in einen anderen Ordner einfügen (Backup). Klappt auch alles. Nun soll er die Daten aber nicht überschreiben sondern wieder einen neuen Ordner erstellen, mit den gleichen Daten. Sprich wenn das Skript ausgeführt wird soll er mir den Ordner "world" kopieren und ein BackUp machen und beim nächsten mal ausführen das gleiche bloß nicht in den bereits Vorhandenen Ordner einfügen sondern nen neuen machen. Wie muss ich das anstellen.
#!/bin/sh
while true
do
cp -avr -rvn /root/bauserver/world /root/bauserver/world_backup
echo Es wurde ein Backup gemacht!
sleep 86400
done
2 Antworten
Naja, du musst dann den namen ändern, du kannst ja nicht zwei ordner mit dem gleichen namen haben.
also z.B.
cp -avr -rvn /root/bauserver/world /root/bauserver/world_backup_$(date +"%FT%T")
Oder $(date +"%F") wenn dir das datum reicht, je nach dem wie oft das läuft.
Und dein plan ist nicht wirklich ein bash script 24/7 laufen zu lassen? Oder? Das solltest du über einen cronjob machen oder ähnliches.
Cronjobs sind ganz einfach einzurichten, z.B.
0 3 * * * backup
Führt es jeda nacht um 3 Uhr aus.
Versuche es mal mit Steigender Nummerierung ( +1)
Ich schreibe mal keine eigene Antwort, da meine ohnehin nur eine Ergänzung zu dieser wäre:
Anstelle des „Sleep 86400“ solltest du den Prozess mit einem cronjob automatisieren. Den stört es nämlich nicht, wenn der Computer zwischendurch mal aus ist und ist auch nicht so störanfällig, wie einen Prozess dauerhaft in einem Screen laufen zu lassen.
Lies dich doch zum Beispiel hier in das Thema ein, das ist dort sehr gut erklärt.