1 votos

Applescript para Desmontar Volúmenes que Coinciden con un Patrón

Tengo varios volúmenes de respaldo fuera de línea y de arranque en un disco, y me gustaría desmontar todos ellos al iniciar. Todos empiezan con el nombre "Backup"

He encontrado el siguiente Applescript cortesía de https://discussions.apple.com/thread/5102909, que es muy eficiente, pero agradecería ayuda para agregar comodines. Me gustaría desmontar cualquier volumen que empiece con "Backup"

set volname to "Backup" -- # nombre del volumen objetivo  

set p to (POSIX path of (volname & ":" as alias))'s text 1 thru -2

set sh to "diskutil umount " & quoted form of p & " &> /dev/null &"

do shell script sh

Siento que debería ser posible, pero siempre me confundo con la sintaxis correcta. ¡Tu sabiduría sería muy apreciada!

*** Edit Mi estructura de disco y volumen se ve así:

disk2s1 EFI
disk2s2 Sistema de Respaldo 10May19
disk2s3 Archivos de Respaldo

Desmonto los volúmenes al iniciar para que el disco pueda detenerse. Chronosync monta/desmonta automáticamente según sea necesario durante las operaciones de respaldo.

0voto

user3439894 Puntos 5883

Así es como lo haría ... El siguiente ejemplo de AppleScript El código desmontará cualquier disco montado que comience con "Backup":

set listOfDisks to list disks
set listOfDisksToUnmount to {}

repeat with thisDisk in listOfDisks
    if thisDisk starts with "Backup" then
        copy contents of thisDisk to end of listOfDisksToUnmount
    end if
end repeat

if listOfDisksToUnmount is not {} then
    repeat with thisDisk in listOfDisksToUnmount
        do shell script "diskutil unmount /Volumes/" & thisDisk's quoted form
    end repeat
end if

Nota: Si tiene un problema con el unmount verbo con diskutil, pruebe con unmountDisk en su lugar.

Nota: contents en copy contents of thisDisk to end of listOfDisksToUnmount no copia el contenido del disco, copia el contenido del elemento de lista, que es el nombre del disco.


Nota: El <em>ejemplo</em> de <strong>AppleScript</strong> El <em>código</em> es simplemente eso y no contiene ningún <em>manejo de errores</em> que puedan ser apropiados. La responsabilidad recae sobre el usuario de agregar cualquier <em>manejo de errores</em> que pueda ser apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>instrucción</strong></a> <em>try</em> y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>instrucción</strong></a> <em>error</em> en la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía de Lenguaje AppleScript</strong></a>. Vea también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajando con Errores</strong></a>. Además, el uso del <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>comando</strong></a> <em>delay</em> puede ser necesario entre eventos cuando sea apropiado, por ejemplo, <code retraso="" 0,5<="" code="">, con el <em>valor</em> del <em>retraso</em> establecido apropiadamente.</code>

0 votos

¡Gracias! Eso funcionó sin problemas. La estructura de mi disco y volumen parece así:

0 votos

Gracias, lo sé :) Solo lo marqué. Pude seguir el código. Simplemente me confundo mucho con la sintaxis, cuando tengo que aprender un poco de VB, Applescript, POSIX, HTML y no soy un programador. Usé unmount por ahora, pero veré si eject funciona en su lugar. Tendría la ventaja de deshacerse de todas las particiones de respaldo a la vez, pero sospecho que una vez que el disco esté completamente expulsado, Chronosync ya no podrá montarse automáticamente. Así que probablemente me quedaré con la variación de unmount de diskutil. También añadí algunos detalles en la publicación original.

0 votos

@user840, Sí, bajo esa circunstancia expresada, utiliza do shell script "diskutil ..." ya que aún podrá ser remontado.

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