| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		woif •->
  
 
  Anmeldedatum: 16.05.2006 Beiträge: 6
 
  | 
		
			
				 Verfasst am: 16.05.2006 - 11:36    Titel: Uptime Protokoll | 
				     | 
			 
			
				
  | 
			 
			
				Hallo!
 
Ich versuche ein Skript zu schreiben, welches im Hintergrund läuft und die Uptime in einer Datei protokolliert.
 
Das ganze sollte folgendermassen funktionieren:
 
* ich schreibe beim Aufruf das aktuelle Datum in Zeile eins
 
* ich lasse eine Endlosschleife laufen und schreibe in Zeile 2 von null weg einen Zahlenwert der nach jedem delay 60 (also alle Minuten) um eins erhöht wird.
 
 
Das Problem ist nun: wenn das Datum gleich geblieben ist (zum Beispiel Login am Morgen und am Abend) soll in Zeile 2 fortgesetzt werden, für einen neuen Tag soll eine neue Zeile begonnen werden und das Datum wieder dabei stehen. wenn das Datum gleich ist, wie kann ich nach dem letzten Wert in dieser Datei gesucht werden?
 
 
Diese Datei soll ausserdem mit AS ausgewertet werden können (sprich wie lange war man an diesem Tag eingeloggt, wie lange in der letzten Woche/Monat).
 
 
Für Input und Hilfe wäre ich sehr dankbar!
 
 
woif | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		woif •->
  
 
  Anmeldedatum: 16.05.2006 Beiträge: 6
 
  | 
		
			
				 Verfasst am: 16.05.2006 - 13:07    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Mein Beispielskript dokumentiert jetzt, aber es wird der alte Eintrag nicht überschrieben sondern immer eine neue Zeile begonnen!?!
 
repeat
 
	set datei to open for access file ":Users:XYZ:Desktop:count.txt" with write permission
 
	set datum to (current date) as string
 
	set laufzeit to do shell script "uptime | cut -c 12-15"
 
	write datum to datei starting at eof
 
	write "  " to datei
 
	write laufzeit to datei
 
	write "
 
	" to datei
 
	delay 60
 
	close access datei
 
	
 
end repeat
 
set eof datei
 
 
wie kann ich das vermeiden? weiss jemand rat? | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		iScript •---->
  
  
  Anmeldedatum: 29.03.2001 Beiträge: 1116
 
  | 
		
			
				 Verfasst am: 16.05.2006 - 18:40    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				schreibe ein oder mehrere leicht wiederauffindbare zeichen mit in dein file. 
 
dann kannst du vor dem schreiben den offset dieses zeichens/dieser zeichen ermitteln, und ab dort deine write-befehl start (offset of "diezeichenkette"). 
 
der writebefehl überschreibt standardmässig. 
 
was soll denn genau überschrieben werden? 
 
beispiel posten.
 
 
oder du ermittelst den offset der letzten zeile (wenn die letzte zeile überschrieben werden soll). _________________ - anholn deit kriegen - | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		iScript •---->
  
  
  Anmeldedatum: 29.03.2001 Beiträge: 1116
 
  | 
		
			
				 Verfasst am: 16.05.2006 - 19:04    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				oder einfach:
 
 
   write datum to datei with replacing*
 
 
(* komisch, dass "replacing" im scripteditor wie eine variable dargestellt wird? funktioniert aber) _________________ - anholn deit kriegen - | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		till •--->
  
  
  Anmeldedatum: 21.04.2005 Beiträge: 187 Wohnort: q-town (R-P)
  | 
		
			
				 Verfasst am: 16.05.2006 - 19:26    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				das is ja echt erstaunlich!
 
das is bestimmt wegen dem 
 
 
open for access
 
 
denk ich mal
 
weil replacing is gibts bei finder und zb Text edit aber nid im standard suit
 
aber mit -open for acess- gehts . _________________ ein berühmter Philosoph (<-Ich) sagte einmal:
 
" es ist nicht das Problem was uns Kopfzerbrechen macht,
 
es ist der Kopf selbst, der sich erdrückt" | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		woif •->
  
 
  Anmeldedatum: 16.05.2006 Beiträge: 6
 
  | 
		
			
				 Verfasst am: 17.05.2006 - 09:54    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Danke erstmal für eure ratschläge, replacing führt jedoch auch nicht zur gewünschten lösung. es geht dabei um folgendes:
 
* das skript wird bei systemstart geladen und läuft dann im hintegrund
 
* es wird das datum vermerkt, dann wird die uptime neben dem datum gespeichert
 
* da sich die uptime jede minute erhöht, soll der alte wert jeweils überschrieben werden
 
* starte ich den computer am nächsten tag so soll eine neue zeile angelegt werden mit dem dann aktuellen datum, daneben soll wieder die uptime geschrieben werden, wobei sich dann natürlich dieser wert kontinuierlich erhöhen soll
 
 
die log-datei sollte dann etwa so aussehen:
 
17. Mai 2006  2:34
 
18. Mai 2006  4:56
 
usw. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		woif •->
  
 
  Anmeldedatum: 16.05.2006 Beiträge: 6
 
  | 
		
			
				 Verfasst am: 22.05.2006 - 23:35    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				so - mein skript funktioniert (fast) wie gewünscht.
 
 
ein letztes problem ist jedoch noch übrig:
 
* das programm läuft in einer endlosen repeat-schleife mit delay 60
 
* will ich den computer runterfahren, so tut dieser das nicht, weil ja das AS-programm noch in der endlosschleife läuft. 
 
 
wie kann ich das umgehen?
 
 
danke woif | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		 |