auto Defrag... ?!? o.O

Du hast eine Idee für ein Projekt?
Neo
User
Beiträge: 18
Registriert: Donnerstag 6. Juli 2006, 14:24

auto Defrag... ?!? o.O

Beitragvon Neo » Freitag 7. Juli 2006, 07:24

Hallo zusammen,

ich beschäftige mich zur Zeit mit Python und fange gerade an mir diese zu verinnerlichen.

Habe nach einigen kleinen anfänglichen Progrämschen, nun ein "etwas" größes gestartet.

Es geht darum das ich Rechner zu einer bestimmten Zeit automatische defragmentieren möchte.

Was ich dabei beachten muss ist das query bit unter Windows.

In erster Linie möchte ich dieses Skript unter Windows ablaufen lassen.
Deswegen muss ich dies natürlich berücksichtigen!

Also, wenn das query bit = dirty ist. Dann soll der User darauf hingewießen werden, das er den Rechner erst neu starten muss, damit Scan Disk automatische ablaufen kann.
(Super wäre, wenn es machbar ist das das Python-Skript den Rechner selbst runterfährt und neu startet)

Vielleicht könnt ihr mir ein paar Tipps dazu geben..

Danke euch.

Neo
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 7. Juli 2006, 07:36


CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Neo
User
Beiträge: 18
Registriert: Donnerstag 6. Juli 2006, 14:24

Beitragvon Neo » Freitag 7. Juli 2006, 08:06

Danke jens für die schnelle Antwort.

Doch ich versuche so ein Batch-Skript mit Python zu schreiben.
Da es mich interessiert, ob ich das Problem besser mit Python oder mit den Windows-Broa-Mitteln erledigen kann.

Hast du oder ihr da vielleicht ne Idee zur Hand?
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 7. Juli 2006, 08:26

Tja, also ich nutzte die Batch Datei... Einen Sinn ergibt das zum einen, mit der Auswertung des dirty-Bits und zum anderen, weil es was bringt, wenn man defrag mehr mals hintereinander ausführen läßt ;)

Ich hatte aber auch schon mal überlegt ein Python Skript zu schreiben... Denn man könnte auch ein chkdsk vorher machen und sehen, ob alles in Ordnung ist. Das wird zwar in der Batchdatei auch gemacht, aber so richtig gut klappt das nicht...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Neo
User
Beiträge: 18
Registriert: Donnerstag 6. Juli 2006, 14:24

Beitragvon Neo » Freitag 7. Juli 2006, 12:39

Hey jens,

meinst du den das es generell möglich ist, so ein script in Python zu verwenden?

Ist es auch möglich einen Scandisk via Pythonscript quasi zu erzwingen?

Zum Beispiel, in dem ich das query bit auf dirty setze, dann den Computer neu starten lasse, damit der scandisk läuft, und dann schließlich mein defrag laufen zu lassen?

Ich versuch das gerade... aber mit meinen momentanen Fähigkeiten ist es noch ein wenig schwer.

Haste da nen guten einfall parat?


Neo
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 7. Juli 2006, 12:41

Klar kannst du das machen. Mit subprocess kannst du alles machen, was du auch per Batch Datei machen kannst ;) Deswegen ja auch der Link zu dieser Batch-Datei...

Schau mal hier:

[wiki]Neue Features#Subprocess[/wiki]

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Neo
User
Beiträge: 18
Registriert: Donnerstag 6. Juli 2006, 14:24

Beitragvon Neo » Freitag 7. Juli 2006, 13:32

Vielen Dank.. ich werde mal sehen ob ichs hinbekomme.


Gibt es auch ne Möglichkeit ohne subprocess dieses zu bewerkstelligen?

Grund ist, dass ich meine Scripte auf einem VM generierten Windows teste und ich dort im Moment keine Tools aufspielen kann.

Beziehungsweiße, kennst du ein Command mit dem ich das query bit setzen, bzw überprüfen kann ob es gesetzt ist?

Im DOS mach ich das ja unter 2003 mit

fsuntil dirty query c: | find /i "is not Dirty" > nul
if errorlevel 1 goto: dirty

([dirty] ist in dem Falle ein echo mit dem Hinweis darauf das der Rechner neu gestartet werden soll, damit chkdsk durchlaufen kann, bevor es defragmentiert wird.)


Das ist zur Zeit ein Problem welches ich beim gogglen entweder nicht finde oder ich überlese es die ganze Zeit :)

Habe erst ein Systemcheck gemacht mit platform.release() um zu Testen ob es ein WinXP ist.
Nun soll mein Script das oben genannte Testen, um entweder eine Fehlermeldung am Bildschirm auszugeben, oder wenn es möglich ist quasi ein shutdown -l mit automatischem chkdsk und dann eine erneute Überprüfung des query um dann defrag zu starten.

Sry, wenn ich euch, bzw dich jens zu texte, aber ich häng momentan in ner Sackgasse und versuch das Problem so gut eben möglich zu schildern.

Hoffe ihr könnt mir ein-zwei Tipps/Lösungen zukommen lassen.


Neo

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder