staging.inyokaproject.org

Backup-Script mit grive und Variablen

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

Furbynat0r

Anmeldungsdatum:
23. Januar 2018

Beiträge: 2

Hallo Leute ☺,

ich habe mir hier ein kleines Script (ist mein aller erstes), welches einen Ordner komprimiert und diesen via grive auf mein Google Drive synct.

Soweit funkt auch alles, allerdings will ich ich eine Variable im Dateinamen haben, welche das aktuelle Datum mit ausgibt.

Wenn ich die Variable weglasse, funzt das Script. Wenn ich die Variable einfüge, erhalte ich in der Console die Meldung:

"tar (child): Backup-01/23/18.tar.gz: Cannot open: No such file or directory"

Das Skript schaut wie folgt aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/bash
                                                                                                           
datum=`date +%D`
                                                                                                           
echo Start des Backups!
                                                                                                           
tar -czf Backup-$datum.tar.gz /var/www/vhosts/have-fun-gaming.de/goc.have-fun-gaming.de/forum
                                                                                                           
                                                                                                           
grive                                                                                                      
                                                                                                           
echo Ende des Backups!

Wäre cool wenn ihr mit helfen könnt, da ich momentan voll auf dem Schlauch steh ☹.

Vielen Dank vorab,

Euer Furby

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

@Furbynat0r: Nun ja, schau Dir mal die Ausgabe von date +%D an:

$ date +%D
01/23/18 

Der Schrägstrich trennt Verzeichnisse, kann also nicht innerhalb von Dateinamen stehen. Das Skript versucht im Verzeichnis ./Backup-01/23/ eine Archivdatei mit dem Namen 18.tar zu estellen, aber Du wirst ziemlich wahrscheinlich kein Verzeichnis mit dem Namen haben, also kann da drin auch nichts erzeugt werden. Deshalb die Fehlermeldung.

Schau Dir mal in der man-Page von date an, was man ausser %D noch so alles benutzen kann. Und dann bastel Dir das so zusammen, dass erst das Jahr, dann der Monat, und dann der Tag von date ausgegeben werden. Denn solche Namen sind auch alphabetisch sortiert in der richtigen zeitlichen Reihenfolge. Oft will man ja schnell wissen was die aktuellste Sicherungsdatei ist, da ist es praktisch wenn man die Dateinamen sortiert ausgeben lassen kann und nicht lange suchen und vergleichen muss.

Furbynat0r

(Themenstarter)

Anmeldungsdatum:
23. Januar 2018

Beiträge: 2

Wow... eigentlich total simpel, wäre ich aber im Leben niemals darauf gekommen 😀....

Habe mir einige Beispiele angeschaut, aber natürlich nicht beachtet, das diejenigen andere Parameter nutzen.

Vielen Dank für den Hinweiß ☺

Antworten |