Jump to content

¿Se puede desactivar y activar Time Machine con AppleScript y Automator?


ChoPraTs
 Share

Recommended Posts

Hola compañeros.

Nunca he usado antes Automator, pero creo que empieza a ser hora de sacarle provecho.

Para empezar, estoy creando un flujo que con un click cierre y desactive de forma automática ciertas cosas que no necesito tener abiertas cuando requiero de toda la potencia del ordenador para trabajar con Logic Pro X. Y también estoy preparando otro opuesto, para ejecutarlo cuando termino de trabajar y que lo vuelva a dejar todo como estaba.

Ya he conseguido mediante AppleScript cerrar varios servicios y programas que están corriendo en segundo plano o en la barra de tareas, aunque hay 2 que se me resisten por ahora (1password y Malwarebytes).

Otros dos (Adguard para Safari y Choosy) aunque ya he conseguido que se abran y cierren, no consigo que cuando se inician lo hagan en segundo plano y se queden en el menú superior (como cuando arranca el ordenador) sin que se abra su ventana principal como pasa ahora y que tengo que cerrar manualmente.

A parte de esto, lo que no he conseguido aún es añadir en el mismo flujo un script que desactive las copias automáticas de Time Machine, porque muchas veces mientras estoy trabajando se pone a hacer copias de seguridad y Logic Pro X empieza a engancharse en la reproducción hasta que terminan las copias. Luego quisiera, en el otro flujo, un script volver a activarlo y no tener que ir cada vez a preferencias del sistema.

No sé ni por dónde empezar porque de programación no tengo ni idea, pero creo que no debería ser complicado. A ver si alguien que entienda un poco del tema me echa una mano.

Por si es necesario, comentar que estoy en macOS Mojave.

Muchas gracias de antemano.

Un saludo.

Link to comment
Share on other sites

Probado con High Sierra, debería funcionar con el tuyo.

Instrucciones de AppleScript, no recuerdo si Automator tiene un modo propio para ejecutar instrucciones Shell.

Activar:

do shell script "tmutil enable" user name "nombre_administrador" password "contraseña_administrador" with administrator privileges

Desactivar:

do shell script "tmutil disable" user name "nombre_administrador" password "contraseña_administrador" with administrator privileges

 

Edited by APB
Link to comment
Share on other sites

Hace 17 horas, APB dijo:

Probado con High Sierra, debería funcionar con el tuyo.

Instrucciones de AppleScript, no recuerdo si Automator tiene un modo propio para ejecutar instrucciones Shell.

Activar:


do shell script "tmutil enable" user name "nombre_administrador" password "contraseña_administrador" with administrator privileges

Desactivar:


do shell script "tmutil disable" user name "nombre_administrador" password "contraseña_administrador" with administrator privileges

 

¡Funciona perfecto! ¡Muchas gracias!

Ya que estamos, ¿sabrías decirme qué comando debería usar para reiniciar las aplicaciones Choosy y AdGuard for Safari sin que al abrirse muestren la ventana principal? Vamos, que se ejecuten en segundo plano.

Cuando se inician con el ordenador lo hacen así, arrancan perfectamente, se quedan en la barra superior y no muestran ventana alguna, pero al iniciarlas yo con AppleScript se inician como una aplicación normal y me muestran su ventana principal, cosa que quisiera evitar.

Estoy usando dos comandos diferentes, pero en ambos hace lo mismo, así que supongo que no son los adecuados:

tell application "AdGuard for Safari" to run
tell application "Choosy" to launch

¡Gracias de nuevo!

Link to comment
Share on other sites

No importa el comando que le envíes, lo primero que hace una aplicación al recibir un comando es abrirse.

Prueba con estos:

tell application "Safari" to activate
--delay 0.5
tell application "Finder" to set visible of process "Safari" to false

He usado Safari para así probarlos antes. Si se ejecuta la segunda acción antes que la aplicación haya terminado de abrirse no tendrá efecto, por eso he puesto ese delay 0.5 entre las dos. Ahora no tiene ningún efecto pero si le quitas los dos guiones delanteros el script esperará 1/2 segundo antes de ejecutar la segunda orden.

Link to comment
Share on other sites

Buenos días APB.

Hace 15 horas, APB dijo:

No importa el comando que le envíes, lo primero que hace una aplicación al recibir un comando es abrirse.

Prueba con estos:


tell application "Safari" to activate
--delay 0.5
tell application "Finder" to set visible of process "Safari" to false

He usado Safari para así probarlos antes. Si se ejecuta la segunda acción antes que la aplicación haya terminado de abrirse no tendrá efecto, por eso he puesto ese delay 0.5 entre las dos. Ahora no tiene ningún efecto pero si le quitas los dos guiones delanteros el script esperará 1/2 segundo antes de ejecutar la segunda orden.

Gracias, pero este de momento no me sirve.

Con AdGuard parece que algo hace. Se ejecuta la aplicación, se abre la ventana pero rápidamente se oculta automáticamente en décimas de segundo. He probado con varios delay diferentes para dar con el que funciona con el mínimo tiempo posible. Hasta aquí bien, sin embargo aunque se cierra la ventana veo que se queda la aplicación como iniciada en el Dock, mientras que cuando arranca con el sistema simplemente se queda en la barra de menú sin aparecer en el dock, que es lo que estoy intentando conseguir. Si la inicio yo manualmente, cuando cierro manualmente la ventana, sí desaparece la aplicación del Dock y se queda sólo en la barra de menú, pero no así si se cierra con el comando que me has indicado.

Con Choosy no está funcionando de ninguna forma, he probado con diferentes valores en delay y de momento nada, no consigo ni que se oculte la ventana que abre.

Con Choosy además me está pasando una cosa extraña y es que de vez en cuando, cuando ejecuto el script, me cambia el nombre que yo le indico "Choosy" por "Safari.appex". Se auto-modifica el comando y claro, deja de funcionar. Pero es algo aleatorio que no llego a descubrir a qué obedece, porque a veces lo cambia y otras veces no y ejecuta la app sin problemas (aunque sigue mostrando la ventana principal que sigo queriendo evitar). Indagando dentro del paquete de la aplicación, veo que en una carpeta interna llamada "PlugIns" está precisamente un archivo que se llama "Safari.appex".

Me pregunto si hay alguna forma de hacer en AppleScript que vuelva a lanzar estas aplicaciones/procesos igual que sucede cuando se inicia el ordenador o inicio sesión en mi cuenta. Ambos procesos, tanto "Adguard for Safari" como "Choosy" aparecen en CleanMyMax X como "Ítems de inicio de sesión" y parece que llaman a la aplicación sin más, no son "Launch Agents" como otros que también se inician al arrancar el equipo. Pero deben hacerlo de algún modo diferente, porque cuando se inician con el ordenador se quedan en la barra de menú mientras que cuando las inicio yo o las lanzo con AppleScript, muestran su pantalla principal.

Link to comment
Share on other sites

Varias posibilidades:

  • Para cerrar las ventanas que aparecen al abrir las aplicaciones, ¿necesitas apretar un botón específico o con Intro o Comando + W funciona?
  • Mira en al carpeta de cada aplicación, si solo está la aplicación mira en su interior, si hay una aplicación tipo AdGuard Helper.app o con cualquier otro nombre. Con la aplicación cerrada ejecuta esa para ver si así funciona como quieres.
  • Mira en los directorios siguientes si encuentras los .plist de las dos aplicaciones:
    • /Library/LaunchDaemons
    • /Library/LaunchAgents
    • ~/Library/LaunchAgents
Edited by APB
Link to comment
Share on other sites

Hace 22 horas, APB dijo:

Varias posibilidades:

  • Para cerrar las ventanas que aparecen al abrir las aplicaciones, ¿necesitas apretar un botón específico o con Intro o Comando + W funciona?
  • Mira en al carpeta de cada aplicación, si solo está la aplicación mira en su interior, si hay una aplicación tipo AdGuard Helper.app o con cualquier otro nombre. Con la aplicación cerrada ejecuta esa para ver si así funciona como quieres.
  • Mira en los directorios siguientes si encuentras los .plist de las dos aplicaciones:
    • /Library/LaunchDaemons
    • /Library/LaunchAgents
    • ~/Library/LaunchAgents

Lo de cerrar las ventanas, tengo que darle con el ratón al botón cerrar rojo de la típica ventana de macOS. Al hacerlo, se cierra la ventana, desaparece la aplicación del dock y se queda en la barra de menú.

Lo de los .plist de estas aplicaciones, no los he visto en ninguna de estas carpetas, ni en la carpeta biblioteca del disco duro ni en la de mi usuario. Hay otros LaunchAgents y LaunchDaemons de otros programas y servicios pero ninguno asociado a Choosy o AdGuard. Tampoco aparecen como "ítemos de inicio" en mi usuario. Pero en alguna parte deben estar porque es obvio que se lanzan al arrancar el ordenador.

En cuanto a aplicaciones dentro del paquete, creo que he encontrado lo que necesito. Tanto para Choosy como para AdGuard, dentro de /Aplicaciones/Nombre de aplicación/Contents/Library/LoginItems hay un ejecutable llamado "Choosy Launcher" o "AdGuard Login Helper" y hacen exactamente lo que necesito. Al hacer doble click inician las aplicaciones en la barra de menú sin mostrar ventana alguna.

Así que creo que lo único que necesito es saber con qué comando llamo a este ejecutable con AppleScript en lugar de que arranque la aplicación principal y seguramente estará solucionado.

¿Cómo especifico la ruta?

Link to comment
Share on other sites

Perfecto!!!

Te pregunté como cerrabas las ventanas porque hay una manera de hacerlo en AppleScript:

tell application "Safari"
	activate
    	--delay 0.5
	close window frontmost
end tell

PD: El "activate" sirve para poner la aplicación en primer plano, así la ventana "frontmost" es la que quieres.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.