¿Cómo obtengo la salida system_profiler de muchas máquinas en una red?

0

Necesito tener un script que ejecute el comando "system_profiler -detailLevel full" en una máquina mac remota. Mientras esto sucede, el usuario en la máquina remota no debe saber que está sucediendo algo.

Probé el siguiente Applecript:

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

Esto activa la aplicación de terminal en el escritorio y, por lo tanto, es una mala idea, ya que el usuario que trabaja en esa máquina remota se interrumpe. Quiero que esto suceda en el fondo.

Quiero un script de shell (no un script de manzana) que tome el nombre de los nombres de host de un archivo de texto almacenado en la misma ubicación donde se encuentra el script de shell. Luego irá a cada host de esa lista de nombres de host, ejecutará el comando system_profiler y copiará el archivo de texto con la salida del comando ($ HOSTNAME.txt) en la máquina desde donde se ejecutó el script de shell.

La copia del archivo se debe hacer sin ssh, scp, etc.

    
pregunta Akshay Sawant 06.07.2014 - 09:38

1 respuesta

1

Para leer un archivo de texto de nombres de host en una lista de AppleScript, consulte Leer el archivo de texto en la lista en Applescript .

Para bucle sobre nombres de host dentro de su lista de AppleScript vea Ejemplo de iteración / bucle de una lista de AppleScript :

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

hacer script de shell

Para evitar lanzar Terminal.app , usa el comando do shell script :

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

Esto se puede ejecutar sin iniciar una aplicación gráfica de soporte.

Supongo que no puede acceder al host remoto a través de un shell seguro, solo a través del acceso remoto AppleEvent eppc .

Devolviendo el archivo

Lea el contenido del archivo dentro del bloque tell machine de su AppleScript y guárdelo localmente fuera del bloque tell machine .

Alternativamente, ¿ha considerado volver a transferir el archivo de perfil del sistema a través de ssh o scp ? Considere tener su AppleScript para conectarse a su Mac y volver a copiar el perfil del sistema recopilado.

    
respondido por el Graham Miln 06.07.2014 - 10:43

Lea otras preguntas en las etiquetas