• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Automatisiertes Kopieren und Logging?

chrisws

Gala
Registriert
04.07.10
Beiträge
48
Guten Morgen, liebes Forum!

Ich habe (mal wieder) ein Problem und hoffe sehr, daß Ihr mir helfen könnt.
Ich möchte gerne folgendes tun:

Regelmäßiges, zeitgesteuertes Kopieren von Testdateien von mehreren MACS auf die NAS (oder umgekehrt) und das Logging der Anfangs- und Endzeit. Wie kann ich das machen, per Automator? Per Applescript? Per Tool?

Wir haben bei uns im Netz ein Performanceproblem beim Kopieren von großen Dateien von einer NAS über WAN auf lokale MACS oder umgekehrt. Die Dateien können durchaus mal mehrere -zig MB groß sein, der Kopiervorgang wird immer langsamer und dauert dann gelegentlich ewig. Das Problem existiert nur auf MACs, der gleiche Vorgang läuft bei WIN einwandfrei.

Ich habe keinen Plan, wie ich der Sache auf die Spur kommen soll, alle möglichen (allgemeinen) Sachen sind bereits getestet und sehen gut aus - das Kopieren würde das Problem zumindest mal zeitlich eingrenzen.

Es wäre toll, wenn Ihr mir mal ein paar Ideen gebt - ich weiß leider nicht, wie ich so etwas mache.

Vielen Dank für Eure Hilfe und Gruß
Chris
 
Zuletzt bearbeitet:

chrisws

Gala
Registriert
04.07.10
Beiträge
48
Guten Morgen,

ich muss nochmal nachfragen, weil ich ratlos bin: Kann mir jemand einen Tipp geben, wie ich folgendes tue:

Eine Datei automatisiert von einem MAC auf ein anderes Laufwerk kopieren, dazu bei Anfang und Ende einen Zeitstempel protokollieren?

Danke Euch vielmals!
Chris
 

chrisws

Gala
Registriert
04.07.10
Beiträge
48
Das Problem existiert immer noch, habt Ihr eine Idee?
Danke!
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Hallo,

ich hab dir mal ein Skript geschrieben:

Code:
on idle
    ----- anpassen: ------
   set testFile to "/Users/Name/test"
   set logFile to "/Users/Name/log.txt"
   set server to "afp://192.168.2.100/Data"
   set fileSize to "100" -- in MB
   ------------------------

    -- Testdatei erstellen:
   try
       exists POSIX file testFile as alias
   on error
       do shell script "dd if=/dev/urandom of=" & quoted form of testFile & " bs=1m count=" & fileSize
   end try

    -- Volume verbinden:
    repeat until (list disks) contains "Data"
        mount volume server
        delay 3
    end repeat

    -- Kopieren:
    tell application "Finder"
        set start to current date
        duplicate (POSIX file testFile as alias) to "Data:" with replacing
        set duration to (current date) - start
        -- loggen:
        do shell script "echo $(date +%Y-%m-%d_%H-%M-%S): $USER " & duration & "s>>" & quoted form of logFile
    end tell

    -- 1h warten:
    return 3600
end idle

Das Skript kopiert stündlich eine 100MB große Datei und loggt dann das Datum, den Benutzernamen und die Kopierdauer in Sekunden. Das Skript muss als Programm mit der Option "Nach run-Handler anzeigen" gespeichert werden.
 
Zuletzt bearbeitet:

chrisws

Gala
Registriert
04.07.10
Beiträge
48
Danke Pill! Genau so etwas habe ich gemeint, super. Wenn ich das im Script-Editor aber ausführe (oder als Programm speichere) bekomme ich einen Syntaxfehler: "Expected Zeilenende but found Identifiier." Warum das halb deutsch und halb englisch ist, weiß ich so oder so nicht - aber markiert ist dabei "filetestFile" hinter existsPOSIX. Was kann das sein?

Danke und Gruß
Christian
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Da hat's ein paar Leerzeichen verschluckt, ich hab's korrigiert.
 

chrisws

Gala
Registriert
04.07.10
Beiträge
48
Danke Dir vielmals, jetzt komme ich schon mal soweit, daß ich es als Programm speichern kann. Aber es gibt immer noch einen Fehler, nämlich "dd: bs: illegal numeric value".

Ich habe Dein Script mit meinen Werten angepasst - ich hoffe ich habe es richtig gemacht. Kann ich irgendwo sehen, an welcher Stelle diese Meldung entsteht?

Annahmen für Variablen:

Spielverzeichnis auf meinen Rechner: users/chrisws/Kopiertest
Ziel: Mac Server auf 192.168.12.145, Freigabe "Chrisws"

Mein Script sieht dann so aus:

on idle

----- anpassen: ------

set testFile to "Users/chrisws/Kopiertest/test"
set logFile to "Users/chrisws/Kopiertest/log.txt"
set server to "afp://192.168.12.145/Chrisws/"
set fileSize to "100" -- in MB
------------------------

-- Testdatei erstellen:
try
existsPOSIX filetestFile as alias
on error
do shell script "dd if=/dev/urandom of=" & quoted form of testFile & " bs=1MB count=" & fileSize
end try


-- Volume verbinden:
repeat until (list disks) contains "Chrisws"
mount volume server
delay 3
end repeat

-- Kopieren:
tell application "Finder"
set start to current date
duplicate (POSIX filetestFile as alias) to "Data:" with replacing
set duration to (current date) - start

-- loggen:
do shell script "echo $(date +%Y-%m-%d_%H-%M-%S): $USER " & duration & "s>>" & quoted form of logFile
end tell


-- 1h warten:
return 3600
end idle



Ich speichere als Programm und mit "nach Run-Handler anzeigen" und starte es dann aus dem Finder.
Dann bekomme ich die o.g. Fehlermeldung, Files oder Mounts existieren bis dahin nicht.

Was mache ich falsch?

Vielen Dank für Deine Hilfe,
Chris
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Ist korrigiert, in der Zeile "do shell script "dd if..." muss es "bs=1m" anstelle von "bs=1MB" heißen.
 

gbyte

Gelbe Schleswiger Reinette
Registriert
07.04.07
Beiträge
1.752
set testFile to "Users/chrisws/Kopiertest/test"
set logFile to "Users/chrisws/Kopiertest/log.txt"
set server to "afp://192.168.12.145/Chrisws/"
set fileSize to "100" -- in MB​

Hier würde ich es mal mit folgendem versuchen:
Code:
set testFile to "/Users/chrisws/Kopiertest/test"
set logFile to "/Users/chrisws/Kopiertest/log.txt"
set server to "afp://192.168.12.145/Chrisws/"
set fileSize to "100" -- in MB
 

chrisws

Gala
Registriert
04.07.10
Beiträge
48
ES GEHT!!!!

Ich probiere jetzt mal etwas rum und muss bestimmt noch ein, zweimal blöd nachfragen - aber DAS war genau dass, was ich benötige. Vielen herzlichen Dank, das ist mir eine Riesenhilfe gewesen.

Danke und viele Grüße
Chris