Comment puis-je interroger l'activité du disque dans Applescript? Vérifiez si le disque X est en cours de lecture, d'écriture ou d'inactivité toutes les N secondes et faites quelque chose.Activité de disque dans Applescript
Répondre
En général, l'interrogation est moins efficace que d'être averti lorsque quelque chose se produit. De plus, si vous vérifiez si quelque chose lit à partir d'un disque, vous accéderez probablement à ce disque vous-même, ce qui pourrait influencer ce que vous essayez d'observer.
Depuis le 10.5, OSX inclut quelque chose appelé l'infrastructure des événements système de fichiers, qui fournit des notifications détaillées des modifications apportées au système de fichiers. Le problème dans votre cas est que c'est seulement l'Objective-C. Apple a quelques bons documentation à propos de cette API.
Heureusement, il y a aussi la commande AppleScript call method
. Cela vous permet de travailler avec des objets Objective-C depuis AppleScript. Voici le documentation à ce sujet. Je n'ai aucune expérience avec l'un ou l'autre, d'où les références de la documentation. J'espère que cela devrait vous aider à démarrer.
Vous pouvez exécuter la commande de terminal iostat périodiquement. Vous devriez analyser les résultats dans un formulaire que vous pourriez digérer.
Si vous en savez assez sur les différents outils de ligne de commande UNIX, je suggère à iostat de rediriger la sortie vers awk ou sed pour extraire juste l'information que vous voulez.
Vous devriez vraiment regarder Dtrace. Il a la capacité de faire ce genre de chose.
#!/usr/sbin/dtrace -s
/*
* bitesize.d - analyse disk I/O size by process.
* Written using DTrace (Solaris 10 build 63).
*
* This produces a report for the size of disk events caused by
* processes. These are the disk events sent by the block I/O driver.
*
* If applications must use the disks, we generally prefer they do so
* sequentially with large I/O sizes.
*
* 15-Jun-2005, ver 1.00
*
* USAGE: bitesize.d # wait several seconds, then hit Ctrl-C
*
* FIELDS:
* PID process ID
* CMD command and argument list
* value size in bytes
* count number of I/O operations
*
* NOTES:
* The application may be requesting smaller sized operations, which
* are being rounded up to the nearest sector size or UFS block size.
* To analyse what the application is requesting, DTraceToolkit programs
* such as Proc/fddist may help.
*
* SEE ALSO: seeksize.d, iosnoop
*
* Standard Disclaimer: This is freeware, use at your own risk.
*
* 31-Mar-2004 Brendan Gregg Created this, build 51.
* 10-Oct-2004 " " Rewrote to use the io provider, build 63.
*/
#pragma D option quiet
/*
* Print header
*/
dtrace:::BEGIN
{
printf("Sampling... Hit Ctrl-C to end.\n");
}
/*
* Process io start
*/
io:::start
{
/* fetch details */
this->size = args[0]->b_bcount;
cmd = (string)curpsinfo->pr_psargs;
/* store details */
@Size[pid,cmd] = quantize(this->size);
}
/*
* Print final report
*/
dtrace:::END
{
printf("\n%8s %s\n","PID","CMD");
printa("%8d %s\n%@d\n",@Size);
}
De here.
Pour exécuter l'utilisation
sudo dtrace -s bitsize.d
Comme Porkchop D. Clown mentionné, vous pouvez utiliser iostat. Une commande que vous pouvez utiliser est:
iostat -c 50 -w 5
Qui exécutera iostat 50 fois toutes les 5 secondes.
- 1. Activité InvokeWorkflow dans une activité de réplicateur
- 2. Temps de compilation VB.NET SLOW - Aucune activité de disque ou de processeur
- 3. manipulation de chaînes dans AppleScript
- 4. activité android s'écraser dans
- 5. activité dans l'heure passée
- 6. intégrant applescript dans le cacao
- 7. Boîte de dialogue non bloquante dans Applescript
- 8. Analyse d'un ensemble de lignes dans Applescript
- 9. éléments de liste par activité
- 10. Recherche de la documentation Applescript
- 11. Interaction Applescript et iCal
- 12. Comment différencier une activité android d'une sous-activité par programme?
- 13. AppleScript Word Count Service
- 14. Simple Excel Applescript
- 15. Comment ajouter une activité parallèle dans StateActivity?
- 16. Comment vérifier s'il y a une activité de lecture/écriture pour un disque dur spécifique avec C#?
- 17. comment puis-je lancer une activité directement à partir de mon activité
- 18. Activité de workflow personnalisée dans CRM qui crée une tâche
- 19. AppleScript pour cibler l'application frontale
- 20. Trace Activité MS Access DB
- 21. Android AppWidget cartes activité problème
- 22. activité personnalisée basée sur HandleExternalEventActivity
- 23. Utilisation du disque SQLite
- 24. Interception Copier et coller avec AppleScript
- 25. Comment créer et exécuter Xcode avec Applescript?
- 26. Applescript pour imprimer des documents Word
- 27. Applescript à l'intérieur d'une application Cocoa
- 28. Contournement conditionnel d'une activité Sharepoint 'onWorkflowModified'
- 29. AppleScript pour la boîte de dialogue de déverrouillage de l'écran
- 30. iPhone: espace disque disponible