Anzeige:
Seite 1 von 13 12311 ... LetzteLetzte
Ergebnis 1 bis 15 von 181

Thema: Datensicherung Ala Python muha ^^

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145

    Talking Datensicherung Ala Python muha ^^

    Code:
    import os
    import time
    
    #  Die Dateien und Verzeichnisse, die gesichert werden sollen,
        quellen = ['/home/davidlinux/',]
        ziel_verzeichnis = '/home/davidlinux/Backup/'
        heute = ziel_verzeichnis + time.strftime('%Y%m%d')
        jetzt = time.strftime('%H%M%S')
    #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 -cvzf %s %s' % (ziel, ' '.join(quellen))
    # Sicherung starten
        if os.system(tar_befehl) == 0:
            print 'Erfolgreiche Sicherung nach', ziel
        elif os.system(tar_befehl) == 1:
            print 'Sicherung fehlgeschlagen!'
        else:
            print 'Fehler'
    so
    einige von Euch kennen das schon sicher Jetz möcht ich aber noch ne Datei machen die die Sicherung Stoppt was hier nicht steht ich hab eine Schleife um die Sicherung gebaut. Wenn Variable= 2 soll der die Sicherung ausführen jetzt will ich aber das noch dort steht Variable = 1 Sicherung abbrechen Evtl jemand ne Idee?

  2. #2
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Von Schleife seh ich nix. Was durchaus Probleme machen könnte ist der (ungefragt) doppelte Aufruf von tar wenn der erste fehlschlägt; ich würde den Teil so umändern, wenn du da eine Abfrage drin haben willst:
    Code:
    # Sicherung starten
    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("Erneut versuchen? (J,Ja,Y,Yes,N,Nein,No): ").lower
            if ans in ["J","Ja","Y","Yes","N","Nein","No"]:
                continue
            print "Abgebrochen."
        break

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145

    +verzweifel+

    Code:
    #usr/bin/pyton
    import linecache
    import sys, dbus
    import os
    import time
    
    #L ist eine Variable in der, der Wert steht.
    L = 2
    
    if L == 4 :
      outfile=open("Datei.ini","w+")
      for line in open("Daten.ini"):
          line=line.replace ("X","5")
          outfile.write(line)
          print line
      outfile.close()
    
    elif L == 2 :
    #  Die Dateien und Verzeichnisse, die gesichert werden sollen,
        quellen = ['/home/davidlinux/',]
        ziel_verzeichnis = '/home/davidlinux/Backup/'
        heute = ziel_verzeichnis + time.strftime('%Y%m%d')
        jetzt = time.strftime('%H%M%S')
    #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 -cvzf %s %s' % (ziel, ' '.join(quellen))
    # Sicherung starten
        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("Erneut versuchen? (J,Ja,Y,Yes,N,Nein,No): ").lower
            if ans in ["J","Ja","Y","Yes","N","Nein","No"]:
                continue
            print "Abgebrochen."
    
    #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()

    also hier der Code und deine Idee bringt mich in eine Endlos-Schleife achja verwende Linux ^^
    Geändert von bluecrystal21 (07-09-2010 um 14:07 Uhr)

  4. #4
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Merke: Kopiere meinen Code immer komplett... Du hast ein abschließendes break am Ende der Schleife (als letztes Statement der Schleife, außerhalb des if-else-Konstrukts) vergessen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    selbst mit dem break gehts nich....
    linux-y8or:/mnt/Freigaben/00-16-17-15-56-61 # python datei.py
    File "datei.py", line 41
    continue
    SyntaxError: 'continue' not properly in loop

  6. #6
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Code:
    #usr/bin/python
    import linecache
    import sys, dbus
    import os
    import time
    
    #L ist eine Variable in der, der Wert steht.
    L = 2
    
    if L == 4 :
      outfile=open("Datei.ini","w+")
      for line in open("Daten.ini"):
          line=line.replace ("X","5")
          outfile.write(line)
          print line
      outfile.close()
    
    elif L == 2 :
    #  Die Dateien und Verzeichnisse, die gesichert werden sollen,
        quellen = ['/home/davidlinux/',]
        ziel_verzeichnis = '/home/davidlinux/Backup/'
        heute = ziel_verzeichnis + time.strftime('%Y%m%d')
        jetzt = time.strftime('%H%M%S')
    #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 -cvzf %s %s' % (ziel, ' '.join(quellen))
    # Sicherung starten
        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("Erneut versuchen? (J,Ja,Y,Yes,N,Nein,No): ").lower
                if ans in ["J","Ja","Y","Yes","N","Nein","No"]:
                    continue
                print "Abgebrochen."
            break
    
    #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()

  7. #7
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145

    Ok

    Aber kann ich vll davor für den Anwender einfügen das wenn er die Sicherung Stoppen will STRG +C drücken muss und ich hab noch nen Fehler er sagt shutdown() the name is not definied
    x.x "on line 55"

  8. #8
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145
    so weit so gut so... also ^^ er soll mit der Sicherung nicht anfangen sondern sagen Sicherung STOP ^^

  9. #9
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    try-Klausel drumherum, am Ende des Skriptes dann:
    Code:
    try:
    # bisheriger Code, eine Stufe weiter eingerückt
    except KeyboardInterrupt:
        print "Abgebrochen."
    Zum Einrücken kannst du folgendes Skript benutzen:
    Code:
    sed -i 's#^#    #' <datei>

  10. #10
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145

    ah

    du meinst somit ne fehlerbehandlung drumbauen hmm dann muss ich nur dem benutzer klar machen das er STRG und C drücken muss ich versuchs ^^

  11. #11
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145

    hmmm

    hat einer vll ne Idee wie man tar zum schweigen bringt? möchte den Benutzern ne Nachricht schicken das sie strg +c drücken müssen um abzubrechen ^^

  12. #12
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Ausgabe nach /dev/null pipen: os.system("tar ... > /dev/null").

  13. #13
    Registrierter Benutzer
    Registriert seit
    19.08.2010
    Beiträge
    145

    Talking funktioniert net :(

    Sicherung wird gestartet und unter /etc/dp/ gespeichert
    Druecken Sie STRG + C um die Sicherung abzubrechen
    tar: Eine der Optionen „-Acdtrux“ ist notwendig.
    „tar --help“ oder „tar --usage“ gibt weitere Informationen.
    tar: Entferne führende „/“ von Elementnamen
    /home/davidlinux/DP/
    /home/davidlinux/DP/dateiexisttest.py
    /home/davidlinux/DP/dp_macadress.py
    /home/davidlinux/DP/dp_macadress.txt
    /home/davidlinux/DP/macadress.txt
    /home/davidlinux/DP/dateilese.py
    /home/davidlinux/DP/dateiexist.py
    /home/davidlinux/DP/.dp_clienttest.py.swp
    /home/davidlinux/DP/mount.txt/
    /home/davidlinux/DP/dpclienttask.py
    /home/davidlinux/DP/clienttask.ini
    /home/davidlinux/DP/laufwerkexy
    /home/davidlinux/DP/mountbefehl.txt
    /home/davidlinux/DP/dp_clienttest.py
    Erfolgreiche Sicherung nach "/etc/dp/Backup20100910/114027.tar"



    er zeigt mir das immer auf der console an was er sichert und eben das soll er ja net zeigen (der Ordner ist ja nur ein kleiner ausschnitt) aber wenn ich die große home nehm dann sehn die Benutzer ja nicht mehr das sie STRG+C drücken müssen ^^

    hier anbei der Code:
    Code:
    #usr/bin/pyton
    import linecache
    import sys, dbus
    import os
    import time
    
    #L ist eine Variable in der, der Wert steht.
    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 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 -cvzf %s %s' % (ziel, ' '.join(quellen))
        os.system("tar > /dev/null")
        #tar_befehl=sys.stdin.readline()
    # 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()
    ausserdem passt ihm das dritte elif nicht Hoffe ihr könnt mir helfen

    lg und schönes Sonniges Wochenende


    bluecrstyal21

  14. #14
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Code:
    os.system("tar > /dev/null")
    müsste
    Code:
    os.system("%s > /dev/null" % tar_befehl)
    heißen. Du könntest aber auch von tar_befehl den Parameter -v wegnehmen und os.system(tar_befehl) ausführen:
    Code:
    #usr/bin/python
    import linecache
    import sys, dbus
    import os
    import time
    
    #L ist eine Variable in der, der Wert steht.
    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 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)
        #tar_befehl=sys.stdin.readline()
    # 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()
    Obigen Code einfach übernehmen, dann ist auch die Shebang mal richtig geschrieben...

  15. #15
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Die Shebang stimmt immer noch überhaupt nicht... Richtig wäre
    Code:
    #!/usr/bin/python
    oder besser
    Code:
    #!/usr/bin/env python
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

Lesezeichen

Berechtigungen

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