Unterordner mit ähnlichem Namen verschieben [Skript]

meph!sto

Vice Admiral
Registriert
Nov. 2003
Beiträge
6.318
Hi,
ich bin mir nicht sicher wo mein Anliegen am Beste hinpasst, daher probiere ich es mal hier.
Es geht um Folgendes:
Ich habe 2 Linux Kabelreceiver (VU+), auf beiden läuft VTI 15. Ich lasse durch die integrierte Backupfunktion und Timerfunktion jeden Sonntag Morgen vollautomatisch ein Backup erzeugen.
Das funktioniert auch zum Großteil.
Die Images werden unter
Code:
/media/hdd/vti-image-backup
abgelegt.
Die Namenstruktur sieht so aus
Code:
vti_15.0.0_backup-image_<BOXNAME>_<YYYY>-<MM>-<DD>_<hh>-<mm>-<ss>
Konkret lautet das für heute morgen:
  • vti_15.0.0_backup-image_uno4kse_2021-02-21_04-00-00
  • vti_15.0.0_backup-image_duo4k_2021-02-21_05-00-00
Die eigentlichen Dateien liegen dann im Unterordner
Code:
vuplus/<BOXNAME>
Konkret bedeutet das dann:
  • vti_15.0.0_backup-image_uno4kse_2021-02-21_04-00-00/vuplus/uno4kse
  • vti_15.0.0_backup-image_duo4k_2021-02-21_05-00-00/vuplus/duo4k

Leider passiert es, dass die Backupfunktion neu erzeugte Images nicht unter
Code:
/media/hdd/vti-image
sondern im zuletzt erstellten Imageordner ablegt.
Konkret bedeutet das dass ich die heutigen Images nicht unter
Code:
/media/hdd/vti-image
vorfand, sondern unter
  • /media/hdd/vti-image/vti_15.0.0_backup-image_uno4kse_2021-02-14_04-00-00/vuplus/uno4kse/vti_15.0.0_backup-image_uno4kse_2021-02-21_04-00-00
  • /media/hdd/vti-image/vti_15.0.0_backup-image_duo4k_2021-02-14_04-00-00/vuplus/duo4k/vti_15.0.0_backup-image_duo4k_2021-02-21_04-00-00
Das Zielverzeichnes in den Backupeinstellugen ist
Code:
/media/hdd/vti-image
.
Ich habe mich bereits an die VTI Community gewandt, dort aber keine Hilfe bekommen.
Jetzt überlege ich mir eben als Workaround einfach alle Ordner mit "vti" im Namen, nach
Code:
/media/hdd/vti-image
zu verschieben.
Wie bekomme ich das denn hin ? Letztlich würde ich mich ja vermutlich im Kreis drehen, da ein Unterordner eines "VTI"-Ordners ebenfalls ein "VTI"-Ordner ist.
Mein (gedanklicher) Ansatz ist:
  • erst suche ich im Ordner
    Code:
    /media/hdd/vti-image
    alle Ordner mit "vti" im Namen
  • dann suche unterhalb dieser Ordner nach weiteren Unterordner, die ebenfalls "vti" im Namen haben und diese verschiebe ich nach
    Code:
    /media/hdd/vti-image

2. Fragen:
1. Ist mein Ansatz sinnvoll ?
2. Wie mach' ich das ? Bin ein Freund von schmalen shell-Lösungen ;)

Danke

Edit:
nach meinen Tests sollte
Code:
#SEARCH SUBDIRs AND MOVE TO TOP DIR
cd /media/hdd/vti-image/
find /media/hdd/vti-image/ -name "*VTI*" -exec mv -t /media/hdd/vti-image/ {} +

funktionieren.
Schauen wir mal ob das auch stimmt.
 
Zuletzt bearbeitet:
Hast du mal ein anderes Ziel für das Backup versucht ?

Eventuell könnte das "backup" im Ziel-Pfad durch das Backup-Script ersetzt werden
also die Ersetzung "backup" = "vti_15.0.0_backup-image_uno4kse_2021-02-21_04-00-00" passiert

auch: den Pfad mal mit "/" abschließen

Von der Linux-Box bzw. der Oberfläche oder den verwendeten Programmen scheint es ja leider kein offenes Git Projekt zu geben, bei denen der Code eingesehen oder verbessert werden kann

den fehler bei dem Projekt melden - /tmp/BackupSuite.log evtl. sollte da etwas drinstehen (wenn es der richtige source code war vom backupscript )

anstatt in das gleich verzeichnis zu verschieben ein tmp / workdir ansatz benutzen
/media/hdd/vti-image -> /media/hdd/vti-image-work -> /media/hdd/vti-image
Die 2 vti ordner unterscheiden sich in der länge - also sortierfunktion nutzen und mit head/tail filtern
 
Hi,
danke erstmal dass du dir das Thema annimmst.
Ich benutze die Möglichkeit "Backup Image" und nicht "BackupSuite".
Ich kann über die GUI Ziele auswählen (z.B. /media/usb oder /media/hdd).
Das Problem taucht bei beiden (/media/usb und /media/hdd) auf.
Die darunterliegende Ordnerstruktur wird vom Plugin selbst erstellt:
/media/usb <-- gebe ich an
/vti-image-backup/vti_15.0.0_backup-image_uno4kse_2021-02-21_04-00-00/vuplus/uno4kse <-- wird beim Backup erstellt.

Vllt. ist es wider Erwarten wichtig, aber nach den Backups verteile ich diese auf mein NAS (sodass ich die Backups verfügbar habe, falls die Box mal abraucht, die HDD oder der USB mal hops geht).
Kurz erklärt.
Die Backups landen alle auf dem USB Stick, der in der Duo4K Box steckt.
Von da verteile ich diese auf das NAS und behalte von beiden Boxen die jeweils 2 aktuellsten Backups.

Code:
#!/bin/bash
#SEARCH SUBDIRs AND MOVE TO TOP DIR
cd /media/usb/vti-image/
find /media/usb/vti-image/ -name "*VTI*" -exec mv -t /media/usb/vti-image/ {} +
#COPY ALL UNO4KSE BACKUPS FROM HDD TO USB STICK
cp -rf /media/hdd/uno4kse-image-backup/* /media/usb/vti-image-backup/
#KEEP 2 BACKUPS ON LOCAL MACHINE (USB STICK)
cd /media/usb/vti-image-backup
ls -1t | grep duo4k |  tail -n +3 | xargs rm -rf
ls -1t | grep uno4kse | tail -n +3 | xargs rm -rf
#COPY ALL BACKUPS TO NAS
cp -rf /media/usb/vti-image-backup/* /media/net/VTI_BACKUPS/
#DUO4K: KEEP 2 BACKUPS ON NAS
cd /media/net/VTI_BACKUPS/
ls -1t | grep duo4k | tail -n +3 | xargs rm -rf
#UNO4KSE: KEEP 2 BACKUPS ON NAS
ls -1t | grep uno4kse | tail -n +3 | xargs rm -rf
#COPY ALL IMAGES FROM NAS TO USB STICK
cp -rf /media/net/VTI_BACKUPS/* /media/usb/vti-image-backup
cd /media/usb/vti-image-backup
ls -1t | grep duo4k | tail -n +3 | xargs rm -rf
ls -1t | grep uno4kse | tail -n +3 | xargs rm -rf
#REMOVE ALL UNO4KSE BACKUPS ON HDD ON DUO4K
rm -rf /media/hdd/uno4kse-image-backup/*
#REMOVE ALL DUO4K BACKUPS ON HDD ON DUO4K
rm -rf /media/hdd/vti-image-backup/*

Dort ersetze/veränder ich ja aber keine Pfade.
 
Zuletzt bearbeitet:
Zurück
Oben