Python skript automatisch nach 30 tagen.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

@bluelagoon: Nein das geht ($GOTT sei Dank) nicht. Aber Du kannst einen Integer-Wert in eine Zeichenkette umwandeln oder eine Zeichenkette die Ziffern enthält in einen Integer-Wert. Das sollte eigentlich jedes halbwegs vernünftige Tutorial abdecken.

Dein VB.NET-Beispiel ist in Python einfach nur: ``zahl = 42``. Das der Typ hier `int` ist, ergibt sich ja schon daraus, dass 42 ein Zahlenliteral ist.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

in vb.net wird jede variable als int, double etc deklariert muss es auch.
aber gut zu wissen.
BlackJack

In Python gehören die Typen zu den Objekten und nicht zu den Namen, darum kann man einen Namen gar nicht zu einem bestimmten Typ deklarieren.

Aber das ist ja auch gar nicht der Punkt. In VB.NET geht das was Du da versuchst auch nicht, denn das wäre dort ja in etwa Folgendes:

Code: Alles auswählen

Dim wert As String
Dim datum As Integer

wert = "2209"
datum = 2209

If wert = datum Then
    Print "Gelungen"
Else
    Print "Fehler"
End If
Da wird sich der Compiler wegen nicht kompatibler Typen bei dem Vergleich beschweren.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

ich würde ja in vb.net den wert gleich auf integer stellen ^^. also würde es funktionieren ^^
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

... und jetzt fehlt nur noch die Transferleistung!


Übrigens, ich wollte dich in keinster weise als blöd darstellen oder dich persönlich angreifen. Ich bezweifle aber wirklich, dass du abop gelesen hast. Oder eher: verstanden hast. Hättest du es wirklich durchgearbeitet, würde es vielleicht passieren, dass dir der Fehler nicht direkt auffällt, kein ding, aber spätestens nach meinem Hinweis hättest du gewußt was zu tun ist.

Und für später: http://docs.python.org/library/datetime.html
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

.robert meiner Ansicht nach... ich tu mich leichter, wenn ich 1000 mal wen fragen kann als nen Skript hingeworfen zu bekommen und das zu lesen bzw bearbeiten. Ich frag eben lieber 1000 mal nach bin eben so ein Mensch, mal davon abgesehn mir is im Nachhinein der zweite Teil des Posts unter die Nase gekommen, mit dem Ergebnis dann wars mir klarer naja sry für den Angriff.Jedenfalls tu ich mich mit den Zeichenketten schwer. Trotzdem hab ich Spaß an meiner Arbeit.
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Auch wenn das jetzt offtopic ist: mit der Antwort hast du mir jede noch verbliebene Lust genommen, dir zu helfen. Wenn du nicht mal bereit bist Scripte, die man die "hinwirft" zu lesen... und dir opfer ich freie Zeit*...



----------
* na gut, war jetzt nicht sooooo viel zeit ;-)
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

so war das nicht gemeint ich hab das grad gelesen...
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

das war so gemeint mit ich kann allein schlecht lernen ich fühl mich sicherer wenn ich jemandn über sowas fragen kann oder erklären kann ich hab als ich HTML gelernt hab ziemlich viel allein lernen müssen da macht das lernen keinen Spaß wenn einem der Kursleiter immer blöde sprüche an den Kopf wirft. nur ich versteh eins nicht ganz was der unterschied zu date.time und time selbst ist? Kann mir das mal jemand erklären?
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

bluelagoon hat geschrieben:nur ich versteh eins nicht ganz was der unterschied zu date.time und time selbst ist? Kann mir das mal jemand erklären?
Ja schon, aber du solltest dir trotzdem angewöhnen auch mal selber die Dokumentation zu benutzen statt dieses Forum als Vorlesedienst zu verwenden.

time ist ein Modul, das dir Funktionen für den Umgang mit zeitspezifischen Dingen bereitstellt und date.time existiert nicht in der Standardbibliothek. Eventuell hast du statt date.time ja datetime.time gemeint. datetime.time ist dafür da ... ach, schau einfach mal selber in die passende Dokumentation.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

ach man verschrieben hab ich mich auch noch +Head meets Table+. Danke ich werd mir die Doku mal ansehen, Hab das Problem grade gelöst muss nun nur noch Datei.py öffnen mit dem Skript und ausführen lassen dann bin ich fertig. :)
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

guten morgen :)
hach mein gutes kleines Skript mal wieder ... :)
so also ^^ ich hab versucht mit execfile(pfad zum skript) aber no chance er gibt die "Fehlermeldung" aus:

python dp_cron.py
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 13, 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 36, in <module>
listing=os.listdir('/etc/dp/Backup')
OSError: [Errno 2] No such file or directory: '/etc/dp/Backup'


OBWOHL in dem Backup eine Sicherung schon vorhanden ist.
BlackJack

@bluelagoon: Die Fehlermeldung ist ziemlich eindeutig -- das Verzeichnis /etc/dp/Backup existiert halt nicht.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

ja aber ich hab das angelegt BlackJack und nun hab ich was probiert und jetz kommt folgendes:



python dp_cron.py
Sicherung wird gestartet
Sicherung wird gestartet und unter /etc/dp/ gespeichert
Druecken Sie 2Mal STRG + C um die Sicherung abzubrechen
tar: Kann komprimierte Archive nicht aktualisieren
„tar --help“ oder „tar --usage“ gibt weitere Informationen.
tar: Kann komprimierte Archive nicht aktualisieren
„tar --help“ oder „tar --usage“ gibt weitere Informationen.
Sicherung fehlgeschlagen! (Statuscode: 512)
Aktion wird abgebrochen! (Bitte Druecken Sie Enter!):
Sicherung abgebrochen
BlackJack

@bluelagoon: Zu dem Zeitpunkt als `os.listdir()` ausgeführt wurde, gab es das Verzeichnis nicht. Sonst wäre nicht die Fehlermeldung gekommen.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

dh. ich muss das an späterer Stelle hinstellen?
BlackJack

@bluelagoon: Keine Ahnung, ich kenne Dein Skript ja nicht. Du kannst ein Verzeichnis nicht auflisten bevor es nicht erstellt wurde. Das ist eigentlich eine ziemlich triviale Erkenntnis.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

na ich zeigs dir mal momentooo ^^

Code: Alles auswählen

   elif auswahl == 3 :
  #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:
    quellen = ['/home/davidlinux/DP',]
    listing=os.listdir('/etc/dp/')
    listing.sort()
    ziel = heute + os.sep + jetzt + '.tar'
    tar_befehl = 'tar -uzf %s %s' % (listing[-1], ' '.join(quellen))
    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"
                                    
das is der eine Teil rauskopiert.
bluelagoon
User
Beiträge: 216
Registriert: Mittwoch 25. August 2010, 12:26

hab grad gelesen man kann ein tar-archiv nicht updaten sondern muss erst entpacken und wieder einpacken.dabei will ich eigentlich nur neu -dazugekommene Daten sichern. einer ne Idee wie ich das im Skript umbauen könnte?

lg blueLagoon
BlackJack

@bluelagoon: In dem Ausschnitt ist jetzt aber nicht die Zeile vorhanden, die im Traceback die Ausnahme erzeugt hat. Und nach dem wass ich da sehe war die Ausnahme auch immer korrekt, denn da wird nirgends ein Verzeichnis mit dem Namen /etc/dp/Backup erstellt.

Wenn Du ernsthaft Sicherungskopien erstellen willst, dann benutze dafür nichts selbstgebasteltes. Es gibt genug Backup-Lösungen die bereits von vielen Leuten eingesetzt und damit auch gut getestet sind. Disk Archive (DAR) kann zum Beispiel inkrementelle Sicherungskopien erstellen.
Antworten