0 votes

Comment puis-je obtenir la sortie de system_profiler à partir d'un grand nombre de machines dans un réseau ?

J'ai besoin d'avoir un script qui va exécuter la commande "system_profiler -detailLevel full" dans une machine mac distante. Pendant que cela se passe, l'utilisateur de la machine distante ne doit pas savoir qu'il se passe quelque chose.

J'ai essayé l'applescript suivant :

tell application "Terminal" of machine "eppc://<ip address of remote machine>"
    activate
    do script "system_profiler -detailLevel full >> /$HOSTNAME.txt" 
end tell

Cela active l'application terminal sur le bureau et c'est donc une mauvaise idée, car l'utilisateur qui travaille sur cette machine distante est interrompu. Je veux que cela se passe en arrière-plan.

Je veux un shell script (pas un applescript) qui prendra le nom des noms d'hôtes d'un fichier texte stocké au même endroit où se trouve le shell script. Il ira ensuite vers chaque hôte de cette liste de noms d'hôtes, exécutera la commande system_profiler et copiera le fichier texte ayant la sortie de la commande (fichier $HOSTNAME.txt) vers la machine d'où le shell script a été exécuté.

La copie des fichiers doit être effectuée sans ssh, scp, etc.

1voto

Graham Miln Points 39606

Pour lire un fichier texte de noms d'hôtes dans une liste AppleScript, voir Lire un fichier texte dans une liste en Applescript .

Pour boucler sur les noms d'hôtes dans votre liste AppleScript, voir Un exemple d'itération/de boucle de liste AppleScript :

set myList to {"Hello", "Goodbye", "I must be going"}
repeat with theItem in myList
  say theItem
end repeat

do shell script

Pour éviter de lancer Terminal.app utilisez le do shell script commandement :

tell machine "eppc://<ip address of remote machine>"
    do shell script "system_profiler -detailLevel full > /tmp/sysprofile.txt"
end tell

Il peut être exécuté sans lancer une application graphique de soutien.

Je suppose que vous ne pouvez pas accéder à l'hôte distant via un shell sécurisé, mais uniquement via l'accès Remote AppleEvent. eppc .

Renvoyer le dossier

Lisez le contenu du fichier dans la fenêtre de votre AppleScript. tell machine et le sauvegarder localement en dehors de la section tell machine bloc.

Alternativement, avez-vous envisagé de retransférer le fichier de profil du système via ssh o scp ? Pensez à faire en sorte que votre AppleScript se connecte à votre Mac et recopie le profil système collecté.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X