Hilfe bei Backup Script

  • Hallo Zusammen,


    ich bin gerade dabei ein Backup Script (rsync) für meine NAS (Ubuntu 10.04 Lucid Lynx) zu schreiben. Leider bin ich nicht mehr sonderlich fit, was UNIX Scripte angeht.


    Hier habe ich Probleme:

    • Herausfinden, welche Festplatte gemountet ist (/media/UUID). Je nachdem werden unterschiedliche Ordner gesichert
    • Überprüfen, ob auf dem Ziel genug Speicherplatz vorhanden ist

    Um das Ganze mal in Code auszudrücken:



    Die Ordnergrößen lassen sich mit "du -sb /ordner" in Bytes auslesen, wobei bei der Ausgabe noch der Ordner mit dran hängt (also z.B. "123456 /ordner")
    Wäre nett, wenn mir hier jemand eine kurze Hilfestellung geben könnte.
    mfg


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

  • Hi,


    um herauszufinden, was gemountet ist, könntest du z.B. die mtab parsen:


    Code
    UUID="whatever"
    awk '{print $1;}' /etc/mtab | grep -q "^/media/${UUID}$"
    if [ $? -eq 0 ]
    then
      echo "/media/${UUID} is mounted"
    fi


    Ciao.
    Michael.

  • für freien Speicherplatz:

    Code
    df -T -h

    und dann mir sed, awk, grep das rausschneiden, was Du brauchst...

    HW VDR: Thermaltake DH102 | Gigabyte GA-M720-US3 | AMD 270u | 8GB RAM | 120GB SSD System + 3TB HDD Daten | L4M Cine CT V6 + Flex S2 | Zotac GT630 | Futaba MDM166A | Atric IR-Einschalter Rev. 5 | NEC P553 | SEDU + 96 PIX | Pioneer SC-LX85 | Jamo S606
    SW VDR: Debian Wheezy | Kernel 3.2.0-4-amd64 | Mate 1.6 | VDR 2.2.0 | nVidia 331.79 | LIRC 0.9.0 | media_build_experimental | Plugins: permashift 1.0.3, softhddevice 0.6.1rc1-git, menuorg 0.5.1, skinnopacity 0.1.3, tvscraper 0.2.0-git, seduatmo 0.0.2-git, mplayer 0.10.2-hg, fritzbox 1.5.3, vdradmin-am 3.6.9, femon 1.7.19, targavfd 0.3.0, span 0.0.7, dvd 0.3.6-cvs, graphtftng 0.4.10-git, extrecmenu 1.2.4-git, epgsearch 1.0.1-git, block 0.1.2-git, cpumon 0.0.6a, ac3mode 0.1, HD-- 1.0.0-hg, u. v. a. ...

  • Vielen Dank für die Antworten.


    @BanzaiXP, werde ich nachher gleich mal ausprobieren


    <kein>, hier bin ich mittlerweile schon weiter gekommen. Ich bekomme die größe eines Ordners mit

    Code
    du -sb /ordner | awk '{print $1}'

    in Bytes heraus. Nun muss ich diese Werte nur noch addieren können und mit 2TB in Bytes vergleichen


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

  • fest mit 2TB vergleichen? oder besser mit der tatsächlichhen Grösse des NAS-Volumens?


    Rechnen mit der shell

    Code
    sizeges=$((size1 + size2))
  • fest mit 2TB vergleichen? oder besser mit der tatsächlichhen Grösse des NAS-Volumens?


    Die 2TB stehen für die Zielfestplatte. Diesen Wert kann ich auch statisch verwenden, da alle Zielfestplatten die gleiche Partitionsgröße haben.
    Die NAS hat im Raid5 10,7TB. Nun kann es ja sein, dass z.B. auf der NAS die Ordner 1 + 2 + 3 usw. mittlerweile nicht mehr auf die Zielfestplatte passen. Deshalb soll das Script angehalten werden und ich muss eine weitere Festplatte zum sichern nehmen.


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

  • Ok, die Größe der einzelnen Ordner kann ich nun schon mal in eine Variable zusammenaddieren.


    Code
    Ordner1=$(du -sb /ordner1 | awk '{print $1}')
    Ordner2=$(du -sb /ordner2 | awk '{print $1}')
    sizeges=$((Ordner1 + Ordner2))
    echo "Gesamt: $sizeges"


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

  • @BanzaiXP
    Nach einer kleinen Anpassungen läuft dein Code:
    '{print $1;}' -> '{print $2;}'


    Da ich nun der Partition einen Namen gegeben habe, wird nicht mehr über die UUID, sondern über die Partitionsbezeichnung gesucht:


    Code
    DiscLabel="Backup3"
    awk '{print $2;}' /etc/mtab | grep -q "/media/$DiscLabel"
    if [ $? -eq 0 ]
    then
      echo "/media/${DiscLabel} is mounted"
    fi


    VDR:
    HW: ASUS M3N78-EM (NV-GF8300) • 4GB DDR2 • AMD Athlon II X4 • 32GB SSD • 4TB HDD • 2x Hauppauge WINTV Nova-HD-S2

    SW: easyVDR3.0 64Bit stable based on Ubuntu 14.04 Trusty Tahr • Kodi 17 Krypton • VDPAU • SoftHDDevice

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!