Dateien vom Server in lokalen Ordner kopieren? - (Sync)

Also alle 3 Seiten zeigen im Browser Fehler an:

http://games.pcmasters.de/fileadmin/Games/Sport/TDU2/x.jpg
http://www.lcdmedia.de/UserFiles/Image/pages/reparatur/xx.jpg
http://www.beamer-test.com/images/xxx.jpg

Bei dem 3. Testserver funktioniert es - dort wird das nicht vorhandene xxx.jpg auch wirklich nicht geladen, bei den 2 anderen schon. Aber das scheint dann wohl wirklich irgendwie an den Servern zu liegen ...

Gerade bei Server 3 wo eigentlich gar nichts angezeigt wird, sondern der Fehler nur in der Titelleiste erscheint, gerade dort funktioniert die Fehlerübergabe.


EDIT: Danke für die Erklärung! Dann funktioniert das Script ja soweit, liegt halt am Server. Danke für die Hilfe!
 
Ich habe die Bedingungen noch etwas geändert, dann müsste es auch mit deinen Beispiellinks gehen:

Code:
set destPath to "/Users/Name/Desktop/Test/"
tell application "Safari"
try
	open location "/U/R/L/loadthis.txt"
	set Liste to text of document of window 1
	set AppleScript's text item delimiters to "
"
	set URLList to every text item of Liste
	set AppleScript's text item delimiters to ""
	close window 1
	repeat with i in URLList
		if (my myCheck(i)) = 0 then
			set AppleScript's text item delimiters to {"/", "."}
			set newName to ">" & text item -2 of i & "." & last text item of i
			set AppleScript's text item delimiters to ""
			set cd to "cd " & quoted form of destPath & "; curl " & i & newName
			do shell script cd
		end if
	end repeat
end try
end tell

on myCheck(i)
	set checkURL to "curl --silent '" & i & "' | egrep -c '(Error 404|nicht gefunden|not found|Fehler 404)'"
	try
		set num to do shell script checkURL
	on error
		set num to 0
	end try
end myCheck

Jetzt wird nach "Error 404" oder "nicht gefunden" oder... gesucht. Die Bedingungen kannst du ja selbst abändern, je nach dem wie du das brauchst.
 
Zuletzt bearbeitet:
Super - besten Dank!!!

Mit mehreren Suchbegriffen ist das natürlich absolute spitze :)
 
Ich müsste auf diese Art jetzt auch php Dateien mit GET Variablen laden können, leider verursacht das noch Probleme:

Zum Test einfach diese Zeile noch in die Textdatei übernehmen: http://games.pcmasters.de/fileadmin/Games/Sport/TDU2/3.jpg?var1=abc&var2=def
Ist jetzt hier zwar ein Bild und macht so keinen Sinn, erfüllt aber den Testzweck.

Die Datei wird anstandslos heruntergeladen, bloß stimmt dann die Dateiendung halt leider nicht mehr: "3.jpg?var1=abc"
Kann man irgendwie noch einbauen, dass die Endung nur bis zu vor ein "?" Zeichen geht und dort automatisch abgeschnitten wird?

EDIT: hat sich erledigt!
 
Zuletzt bearbeitet:
Hab das jetzt mit den Apple Delimiters hinbekommen :)


Hätte da aber noch eine Frage, die kannst du mir vermutlich auch recht einfach beantworten:

Im Script ist jetzt ja die zusätzliche "myCheck" curl Funktion, unten im Events Fenster des Applescripteditors bekomm ich jetzt zu jeder Datei 3 Curl Vorgänge, das sieht dann so aus:
Code:
tell current application
	do shell script "curl --silent 'http://games.pcmasters.de/fileadmin/Games/Sport/TDU2/3.jpg' | grep -c '(Error 404|nicht gefunden|not found|Fehler 404)'"
end tell
tell application "System Events"
	do shell script "cd '/Users/ICH/Desktop/test'; curl 'http://games.pcmasters.de/fileadmin/Games/Sport/TDU2/3.jpg'> 3.jpg"
end tell
tell current application
	do shell script "cd '/Users/ICH/Desktop/test'; curl 'http://games.pcmasters.de/fileadmin/Games/Sport/TDU2/3.jpg'> 3.jpg"
end tell

Werden die Dateien jetzt alle 3x vom Server geladen, oder wie darf ich das verstehen?
Weil bei der Datenmenge wäre das eine hohe Belastung für den Server :(

Wenn die myCheck Funktion wirklich die ganze Dateien nochmal komplett extra lädt, dann würde ich die lieber rausschmeissen und dann muss ich halt schauen, das auf der zu laden Liste keinesfalls Dateien landen die so nicht auf dem Server existieren.

Aber was ist das dann mit der Hauptladefunktion die komischerweise 2 mal vorhanden ist -zumindest im Events Ausgabefenster- einmal für die Application System Events (unter dem tell das auch läuft) und einmal unter "current application"!? - Hier kann ich ja nichts löschen, da ich die Funktion im Code eigentlich nur einmal habe.
 
Zuletzt bearbeitet:
Das Skript müsste die Datei erst einmal öffnen (also auch herunterladen, aber nicht speichern) und dann (wenn ersteres geklappt hat) herunterladen. Die Dateien werden also 2mal heruntergeladen. Die letzten beiden Aufrufe müssten dieselbe Aktion sein.

Im Quelltext war übrigens glaube ich ein "end repeat" zuviel, ich hab das bereits gelöscht. Probier mal obs so noch geht, da ist bei mir beim kopieren wahrscheinlich was schief gegeangen.
 
Bei mir passt das mit dem end repeat, habe nur eins drin.

Auf die myCheck Funktion werde ich dann wohl verzichten müssen, schade drum, aber das wird sonst unnötig viel Traffic für den Server.
Das die Hauptladefunktion 2x in den Events erscheint verunsichert mich halt etwas, aber da hast du wohl recht, dass es wohl nur ein Ladevorgang ist, immerhin steht es auch nur einmal im Code!

Werde sicherheitshalber nach einem Systemneustart aber mal den Traffic protokollieren, ich hoffe das ich dann klar erkennen kann das jede Datei nur einmal geladen wird. Zur Zeit geht das leider nicht, da in der Aktivitätsanzeige beim Netzwerktraffic hohe GB Werte stehen und ich somit nicht genau auf MB oder gar kb ablesen kann :D
 
Zurück
Oben Unten