0 votos

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

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

He probado el siguiente applescript:

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 ocurra en segundo plano.

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

La copia de archivos debe hacerse sin ssh, scp, etc.

1voto

Steve Evans Puntos 155

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

Para recorrer los nombres de host dentro de la lista de AppleScript, consulte Un ejemplo de iteración/bucle de lista de AppleScript :

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

do shell script

Para evitar el lanzamiento Terminal.app Utiliza el do shell script comando:

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

Se puede ejecutar sin necesidad de lanzar una aplicación gráfica de apoyo.

Estoy asumiendo que no puede acceder al host remoto a través de la shell segura, sólo a través del acceso remoto AppleEvent eppc .

Devolución del expediente

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

Como alternativa, ¿ha considerado transferir de nuevo el archivo de perfil del sistema a través de ssh o scp ? Considere la posibilidad de que su AppleScript para conectarse a su Mac y copiar de nuevo el perfil del sistema recogido.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X