Anzeige:
Seite 3 von 13 ErsteErste 12345 ... LetzteLetzte
Ergebnis 31 bis 45 von 181

Thema: Datensicherung Ala Python muha ^^

  1. #31
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Da könnte man einmalig einen tar-Update-Befehl absetzen:
    Code:
    tar -rvzf <letztes Archiv> <dateiliste>
    Damit werden nur Dateien angehängt, die im Archiv nicht existieren.

  2. #32
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    hm gute idee aber letztes archiv woher weis ich welches das war bzw wo soll ich den befehl inkopieren ins sicherungsskript unter dem os.system oder?

  3. #33
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Einfach in die Shell eintippen. Die zuletzt bearbeitete Datei kannst du dir mit folgendem Befehl anzeigen lassen:
    Code:
    ls -1t | head -n1
    Das im Sicherungsverzeichnis ausführen, dann solltest du das letzte Archiv haben.
    Eig. solltest du das aber auch über den Dateinamen machen können!

  4. #34
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    naja der chef will mal wieda ne geschriebene "funktion" im skript .__. ich mit meinen 21 jahren verzweifel noch mit dem hoffentlich is das Projekt bald zu ende .....

  5. #35
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    ich werd jetz erstmal feierabend für heut machn vielen dank John das du dir so viel zeit für mich Neuling nimmst. Hoff ich vergraul dich net +grins+
    auch an die anderen vielen dank schönen Feierabend noch

    lg bluecrystal21

  6. #36
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Jetzt mal etwas Code-"Reuse":
    Code:
    quellen = ['/home/davidlinux/DP',]
    ziel_verzeichnis = '/etc/dp/Backup'
    heute = ziel_verzeichnis + time.strftime('%Y%m%d')
    Damit wissen wir, dass das Backupskript im Verzeichnis /etc/dp/Backup nach Name sortiert an letzter Stelle steht.
    Dann kann man das so machen:
    Code:
    quellen = ['/home/davidlinux/DP',]
    listing=os.listdir('/etc/dp/Backup')
    listing.sort()
    ziel = heute + os.sep + jetzt + '.tar'
    tar_befehl = 'tar -rzf %s %s' % (listing[-1], ' '.join(quellen))
    os.system(tar_befehl)

  7. #37
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    python dp_cron.py
    Sicherung wird gestartet
    Sicherung wird gestartet und unter /etc/dp/ gespeichert
    Druecken Sie 2Mal STRG + C um die Sicherung abzubrechen
    Traceback (most recent call last):
    File "dp_cron.py", line 14, in <module>
    execfile('/mnt/Freigaben/00-16-17-15-56-61/dp_client.py')
    File "/mnt/Freigaben/00-16-17-15-56-61/dp_client.py", line 35, in <module>
    listing=os.listdir('/etc/dp/Backup')
    OSError: [Errno 2] No such file or directory: '/etc/dp/Backup'


    kommt wenn ich dp_cron.py ausführ die Datei dp_cron.py zeig ich dir hier moment.


    Code:
    #!/bin/bash
    #!/bin/sh
    #! /usr/bin/env python
    
    import time
    import os
    from time import *
    lt = localtime()
    d1=strftime("%d", lt)
    datum= '23'
    if d1 == datum :
     print 'Sicherung wird gestartet'
     execfile('/mnt/Freigaben/00-16-17-15-56-61/dp_clienttest.py')
    else:
     print 'Fehler'
    hab jetz nur das datum="23" geändert um es heute zu testen ^^

  8. #38
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    So nun hab ich bissle gegoogelt und rausgefunden:



    Anzumerken ist, dass in einem gepackten Archiv, auch wenn dies durch »tar« selbst komprimiert wurde, keine Dateien hinzugefügt, erneuert oder gelöscht werden können. Dies kann nur im unkomprimierten tar-Archiv geschehen.

    also muss ich das archiv Entpacken und dann neu packen und optionen so einstellen das die entpackten Daten gelöscht werden?!

  9. #39
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    Code:
     
    #! /usr/bin/env python
    import linecache
    import sys, dbus
    import os
    import time
    import subprocess
    auswahl = 0
    
    if auswahl == 4 :
      outfile=open("dp_clienttask.ini","w+")
      for line in open("dp_clienttasktemp.ini"):
          line=line.replace ("X","5")
          outfile.write(line)
          print line
      outfile.close()
    
    elif auswahl == 0 :
      #Die Dateien und Verzeichnisse, die gesichert werden sollen,
        quellen = ['/home/davidlinux/DP',]
        ziel_verzeichnis = '/etc/dp/Backup'
        heute = ziel_verzeichnis + time.strftime('%Y%m%d')
        jetzt = time.strftime('%H%M%S')
        print 'Sicherung wird gestartet und unter /etc/dp/ gespeichert'
        print 'Druecken Sie 2Mal STRG + C um die Sicherung abzubrechen'
    
    #Erzeuge Ordner wenn dieser noch nicht Existiert mit heutigem Datum:
        if not os.path.exists(heute):
            os.mkdir(heute) # erzeuge das Verzeichnis
            print 'Verzeichnis' , heute, 'erfolgreich angelegt'
    
    
    # Der Name der Tar-Datei:
        ziel = heute + os.sep + jetzt + '.tar'
        tar_befehl = 'tar -czf %s %s' % (ziel, ' '.join(quellen))
        os.system(tar_befehl)
        quellen = ['/home/davidlinux/DP',]
        listing=os.listdir('/etc/dp/')
        listing.sort()
        ziel = heute + os.sep + jetzt + '.tar'
        tar_befehle = 'tar -xf %s %s' % (ziel, ' '.join(quellen))
        tar_befehl = 'tar -uzf %s %s' % (listing[-1], ' '.join(quellen))
        os.system(tar_befehle)
        os.system(tar_befehl)
    
    # Sicherung starten
        try:
            while True:
                exitstatus=os.system(tar_befehl)
                if exitstatus == 0:
                    print 'Erfolgreiche Sicherung nach "%s"' % ziel
                else:
                    print 'Sicherung fehlgeschlagen! (Statuscode: %d)' % exitstatus
                    ans=raw_input("Aktion wird abgebrochen! (Bitte Druecken Sie Enter!): ").lower
                    print 'Sicherung abgebrochen'
                break
        except KeyboardInterrupt:
            print "Sicherung beendet"
    
    
    elif auswahl == 2 :
     def shutdown():
        bus = dbus.SystemBus()
        try:
            remote_object = bus.get_object('org.freedesktop.Hal',
                                        '/org/freedesktop/Hal/devices/computer')
            props = remote_object.Shutdown(dbus_interface='org.freedesktop.Hal.Device.SystemPowerManagement')
        except dbus.exceptions.DBusException, e:
            print e
    
     if __name__ == "__main__":
        shutdown()
    so sieht mein Code derzeit aus

  10. #40
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    problemchen gelöst

    Code:
    # Der Name der Tar-Datei:
        ziel = heute + os.sep + jetzt + '.tar'
        tar_befehl = 'tar -czf %s %s' % (ziel, ' '.join(quellen))
        os.system(tar_befehl)
        tar_befehle = 'tar -uf /etc/dp/Backups'
        os.system(tar_befehle)

  11. #41
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    man ey ich war so weit es passt schon wieder net... -.-
    er will ne Differenzsicherung.
    das heisst wenn 25.märz is von 25 märz bis jetz gesichert werden jetz darf ich mein externes skript wieder umbauen hach es is zum verzweifeln.

  12. #42
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    wie soll man ein datum was irgendson idiot eingibt ne variable machen woher soll das programm wissen wann er letzte sicherung gemacht hat wenn ich n datum von hand eingeb xD.

    Hast ne Ahnung wie ich python sag such letzte Sicherung und dann sicher mal nur oben drauf.. ^^

  13. #43
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Das war in meinem letzten Code, der Pfad schien allerdings falsch zu sein, daher die Fehlermeldung " OSError: [Errno 2] No such file or directory: '/etc/dp/Backup'"
    Wenn du den Pfad anpasst, bekommst du die zuletzt angelegte Sicherung, sofern die Benennung weiterhin dem Schema "<Jahr><Monat><Tag>" folgt.

    Das hier ist jetzt das Skript, das Cron ersetzt, dp_cron.py brauchst du nicht mehr (dein Python-Skript müsste noch mehr angepasst werden, damit es Cron ersetzen könnte):
    Code:
    LAST=""
    while :
    do
    NEWLAST="$(date +%D)"
    if [ "$NEWLAST" != "$LAST" -a "$(date +%d)" == "01" ]
    then
         /home/benutzer/bin/Sicherung.py && LAST="$NEWLAST" && date +"Backup um %d.%m.%Y um %H:%M erfolgreich abgeschlossen." >> /var/log/backup.log
    fi
        sleep 1h
    done
    Du solltest deinen Code nochmal deutlich überarbeiten, Konfigurationen (Pfade usw.) nach oben, dann Funktionen die einzelne Jobs ausführen (z.B. buildPath(...), mkBackup(...), mkIncBackup(), ...) und zum Schluss eine Main-Funktion.
    Sieh dich am besten etwas im Forum um, da findest du einige Codes, die nach dem Schema aufgebaut sind.

  14. #44
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    des Problem is ich brauch für differenzielle Sicherung weil 1h sleep das bringt nix da sichert der wieder un dp_cron.py hab ich einfach so genannt weil mir kein name eingefalln is +grins+ aba nun hab ich den pfad das tar hinbekommen aber das mit dem datum passt einfach net es soll differenziell werdn -.-

  15. #45
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    egal ich hab kopfweh in 15 mins geh ich heim mir solls egal sein kentucky fried chicken ich komm un futter dich weg -.-

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •