Jop, genau das macht der Code.
so sieht der eine Teil nun aus, ABERCode:elif auswahl == 0 : zaehler+=1 #Die Dateien und Verzeichnisse, die gesichert werden sollen, quellen = ['/home/davidlinux/',] ziel_verzeichnis = '/etc/dp/' 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' # Der Name der Tar-Datei: ziel = heute + os.sep + jetzt + '.tar' datei_liste=os.listdir('/%s' % '/etc/dp/') i=0 while i < len(datei_liste): if datei_liste[i].endswith('.tar'): i+=1 else: datei_liste.pop(i) if len(datei_liste): datei_liste.sort() os.system('tar --newer=/%s/%s -cvf /%s/Backup%s-%s_%s.tar /home/davidlinux/' % (ziel_verzeichnis, datei_liste[-1], ziel_verzeichnis, time.strftime('%Y%m%d'), time.strftime('%H%M%S'), zaehler) else: print "Fehler: Kein vorheriges Backup!"
ausgabe:
python dp_client.py
File "dp_client.py", line 63
else:
^
SyntaxError: invalid syntax
Geändert von bluecrystal21 (28-09-2010 um 09:35 Uhr)
Ich denk mal ich hab das so richtig eingerückt.Code:quellen = ['/home/davidlinux/',] ziel_verzeichnis = '/etc/dp/' elif auswahl == 0: zaehler+=1 # Die Dateien und Verzeichnisse, die gesichert werden sollen, print 'Sicherung wird gestartet und unter /etc/dp/ gespeichert' print 'Druecken Sie 2Mal STRG + C um die Sicherung abzubrechen' # Der Name der Tar-Datei: datei_liste=os.listdir('/%s' % ziel_verzeichnis) i=0 while i < len(datei_liste): if datei_liste[i].endswith('.tar'): i+=1 else: datei_liste.pop(i) if len(datei_liste): datei_liste.sort() print 'tar --newer=/%s/%s -cvf /%s/Backup%s-%s_%s.tar %s' % (ziel_verzeichnis, datei_liste[-1], ziel_verzeichnis, time.strftime('%Y%m%d'), time.strftime('%H%M%S'), zaehler, ' '.join(quellen)) else: print "Fehler: Kein vorheriges Backup!"
PS: Nutz bitte Variablen, fest reingeschriebene Werte (insbesondere Pfade) sind immer schlecht, da man erst umständlich danach suchen muss - und wenn man mal einen Pfad ändern will, hat man Arbeit.
Habs nun kopiert und immer das else: hatn fehler bei Zeile 47
Mom:
Wann musste denn heut wieder Schule?Code:#! /usr/bin/env python # -*- coding: UTF-8 -*- import linecache import sys, dbus import os import time import subprocess import re datei = open ("dp_clienttask.ini","r") lines = datei.readlines() for line in lines: if line.lower().strip().startswith("boottime="): auswahl=int(re.split('^boottime=([0-9]+)[^0-9]*?$', line.lower().strip())[1]) datei.close() if auswahl == 4 : outfile=open("dp_clienttask.ini","w+") for line in open("dp_clienttasktemp.ini"): line=line.replace ("X","0") outfile.write(line) print line outfile.close() elif auswahl == 0 : zaehler+=1 #Die Dateien und Verzeichnisse, die gesichert werden sollen, quellen = ['/home/davidlinux/',] ziel_verzeichnis = '/etc/dp/' 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' # Der Name der Tar-Datei: ziel = heute + os.sep + jetzt + '.tar' datei_liste=os.listdir('/%s' % ziel_verzeichnis) i=0 while i < len(datei_liste): if datei_liste[i].endswith('.tar'): i+=1 else: datei_liste.pop(i) if len(datei_liste): datei_liste.sort() os.system('tar --newer=/%s/%s -cvf /%s/Backup%s-%s_%s.tar %s' % (ziel_verzeichnis, datei_liste[-1], ziel_verzeichnis, time.strftime('%Y%m%d'), time.strftime('%H%M%S'), zaehler, ' '.join(quellen)) else: print "Fehler: Kein vorheriges Backup!" #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() #elif auswahl == 3 : #Die Dateien und Verzeichnisse, die gesichert werden sollen, # quellen = ['/home/davidlinux/',] # ziel_verzeichnis = '/etc/dp/' # 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' ## Der Name der Tar: # ziel = heute + os.sep + jetzt + '.tar' # Vollbackup # os.system('tar -c -f /etc/dp/Backup%s_0 -g /home/davidlinux/backup.log "%s"' % # (time.strftime('%Y%m%d-%H%M%S'), ' '.join(quellen)))
hab den rest erstmal auskommentiert kann man später wieder Reinmachen
Hab nur noch ne Stunde Deutsch, mein Hassfach -.-
Code:#!/usr/bin/env python # -*- coding: UTF-8 -*- import linecache import sys, dbus import os import time import subprocess import re # Konfiguration nach oben: quellen = ['/home/davidlinux/',] ziel_verzeichnis = '/etc/dp/' datei = open("dp_clienttask.ini","r") lines = datei.readlines() for line in lines: if line.lower().strip().startswith("boottime="): auswahl=int(re.split('^boottime=([0-9]+)[^0-9]*?$', line.lower().strip())[1]) datei.close() if auswahl == 4: outfile=open("dp_clienttask.ini","w+") for line in open("dp_clienttasktemp.ini"): line=line.replace ("X","0") outfile.write(line) print line outfile.close() elif auswahl == 0: zaehler+=1 # Die Dateien und Verzeichnisse, die gesichert werden sollen, print 'Sicherung wird gestartet und unter /etc/dp/ gespeichert' print 'Druecken Sie 2Mal STRG + C um die Sicherung abzubrechen' # Der Name der Tar-Datei: datei_liste=os.listdir('/%s' % ziel_verzeichnis) i=0 while i < len(datei_liste): if datei_liste[i].endswith('.tar'): i+=1 else: datei_liste.pop(i) if len(datei_liste): datei_liste.sort() os.system('tar --newer=/%s/%s -cvf /%s/Backup%s-%s_%s.tar %s' % (ziel_verzeichnis, datei_liste[-1], ziel_verzeichnis, time.strftime('%Y%m%d'), time.strftime('%H%M%S'), zaehler, ' '.join(quellen))) else: print "Fehler: Kein vorheriges Backup!" #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() #elif auswahl == 3 : #Die Dateien und Verzeichnisse, die gesichert werden sollen, # quellen = ['/home/davidlinux/',] # ziel_verzeichnis = '/etc/dp/' # 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' ## Der Name der Tar: # ziel = heute + os.sep + jetzt + '.tar' # Vollbackup # os.system('tar -c -f /etc/dp/Backup%s_0 -g /home/davidlinux/backup.log "%s"' % # (time.strftime('%Y%m%d-%H%M%S'), ' '.join(quellen)))
jaaaaaaaaaaaa da habn wir definitiv was gemeinsam ich habs auch gehasst so das ich das Buch damals an den Tisch geknallt hab aufgestanden bin und gegangen bin ^^.
Fehlermeldung bei deinem Code:
python dp_testclient2.py
Traceback (most recent call last):
File "dp_testclient2.py", line 31, in <module>
zaehler+=1
NameError: name 'zaehler' is not defined
ach mich regt die Programmierung nur noch auf vorallem Chef fragt alle Stunden nach mit was is jetz etc -.-
Der Zähler ist irgendwo flöten gegangen, schmeißen wir ihn ganz raus und nehmen stattdessen nur die Zeit:
Code:#!/usr/bin/env python # -*- coding: UTF-8 -*- import linecache import sys, dbus import os import time import subprocess import re # Konfiguration nach oben: quellen = ['/home/davidlinux/',] ziel_verzeichnis = '/etc/dp/' datei = open("dp_clienttask.ini","r") lines = datei.readlines() for line in lines: if line.lower().strip().startswith("boottime="): auswahl=int(re.split('^boottime=([0-9]+)[^0-9]*?$', line.lower().strip())[1]) datei.close() if auswahl == 4: outfile=open("dp_clienttask.ini","w+") for line in open("dp_clienttasktemp.ini"): line=line.replace ("X","0") outfile.write(line) print line outfile.close() elif auswahl == 0: # Die Dateien und Verzeichnisse, die gesichert werden sollen, print 'Sicherung wird gestartet und unter /etc/dp/ gespeichert' print 'Druecken Sie 2Mal STRG + C um die Sicherung abzubrechen' # Der Name der Tar-Datei: datei_liste=os.listdir('/%s' % ziel_verzeichnis) i=0 while i < len(datei_liste): if datei_liste[i].endswith('.tar'): i+=1 else: datei_liste.pop(i) if len(datei_liste): datei_liste.sort() os.system('tar --newer=/%s/%s -cvf /%s/Backup%s-%s.tar %s' % (ziel_verzeichnis, datei_liste[-1], ziel_verzeichnis, time.strftime('%Y%m%d'), time.strftime('%H%M%S'), ' '.join(quellen))) else: print "Fehler: Kein vorheriges Backup!" #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() #elif auswahl == 3 : #Die Dateien und Verzeichnisse, die gesichert werden sollen, # quellen = ['/home/davidlinux/',] # ziel_verzeichnis = '/etc/dp/' # 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' ## Der Name der Tar: # ziel = heute + os.sep + jetzt + '.tar' # Vollbackup # os.system('tar -c -f /etc/dp/Backup%s_0 -g /home/davidlinux/backup.log "%s"' % # (time.strftime('%Y%m%d-%H%M%S'), ' '.join(quellen)))
Fuck er gibt mir aus:
python dp_testclient2.py
Sicherung wird gestartet und unter /etc/dp/ gespeichert
Druecken Sie 2Mal STRG + C um die Sicherung abzubrechen
Fehler: Kein vorheriges Backup!
x.x
Mach mal aus "datei_liste.pop(i)" "print datei_liste.pop(i)", dann siehst du, welche Dateien er sonst benutzen könnte, vl. stimmt was mit dem Filter nicht.
ja ok er gibt mir den backup.log aus aber der log is nicht mehr aktuell weil die letzte vollsicherung ohne log. gemacht wurde dh die Datei gibts mit _0 dran aber keinen log dazu.
Dann ist soweit alles OK, du musst nur einmalig eine Vollsicherung machen, dann arbeitet das Skript wie es soll.
ja schon aber, er aktualisiert den log nicht.
hab grad Vollsicherung reingeknallt und er sagt trotzdem: kein Backup vorhanden. also der Log ist von 8 uhr noch was aber aktualisiert is er nich da hab ich iwas zerschossen beim log.
Log-Datei brauchst du ja nicht mehr, das Skript arbeitet über die Änderungszeiten. Du bracuhst nur das letzte Vollbackup+alle folgenden inkrementellen Backups, wobei nur das letzte Backup für das Skript relevant ist, der Rest wird nur zum Wiederherstellen aus dem Backup benötigt.
dann passt aber der filter nicht ganz denn der müsste mir das vollsicherungs-backup ausgeben aber er gibt backup.log aus.
haste eig um 12.30 noch zeit? weil mein Arbeitskollege drängelt das er in Mittag will weil wir zum Lidl fahren müssen mit meinem Auto -.-"" und dann einkaufen +augen roll+ nur weil er so verfressen isch ^^ naja lehrling halt xD
Lesezeichen