Come creare un applescript per più comandi di terminale dd in sequenza (per la duplicazione di più unità USB)

1

Ho bisogno di creare uno script Apple per eseguire comandi DD in sequenza, per replicare lo stesso file .img su più unità flash USB

Il contesto: il computer è collegato a un hub USB alimentato con 7 unità flash USB collegate e smontate da diskutil. Nessun altro dispositivo o disco USB è collegato al computer (quindi le chiavette USB assegneranno una mappatura delle risorse disk1 - disk7)

I passaggi

  • un file chiamato "source.img" verrà preparato e messo sul desktop (ad esempio .img di un sistema operativo avviabile)

  • il terminale deve essere invitato a cambiare directory sul desktop

  • con privilegi amministrativi (la password può essere inserita nello script, o richiesta una volta all'utente) deve essere richiesta per eseguire:

"sudo dd if = source.img di = / dev / rdisk1 bs = 1m"

  • lo script deve attendere fino alla conclusione dell'operazione, quindi chiedere al terminale di eseguire un altro DD, su disk2 questa volta:

"sudo dd if = source.img di = / dev / rdisk2 bs = 1m"

e ancora, attendi fino a quando l'operazione è conclusa, quindi chiedi:

"sudo dd if = source.img di = / dev / rdisk3 bs = 1m"

e così via con rdisk4, rdisk5, rdisk6, rdisk7.

  • alla fine dell'operazione disk7, lo script può arrestare il terminale e inviare un messaggio finder all'utente (o una notifica audio) che il processo di duplicazione USB alle 7 unità flash è concluso.

È un modo per creare un "duplicatore USB a basso costo" per far sì che le immagini di avvio vengano messe su più supporti, ne ho bisogno per un progetto scolastico per i miei studenti.

Chiunque può aiutare? Sono zero con Applescript. E questa cosa sarà utile per molti.

Grazie! Alberto

    
posta user3262273 02.02.2014 - 09:00
fonte

1 risposta

1

Puoi farlo con uno script bash.

#!/bin/bash

SOURCE="/Users/username/Desktop/source.img"

dd if=$SOURCE of=/dev/rdisk1 bs=1m
dd if=$SOURCE of=/dev/rdisk2 bs=1m
dd if=$SOURCE of=/dev/rdisk3 bs=1m
dd if=$SOURCE of=/dev/rdisk4 bs=1m
dd if=$SOURCE of=/dev/rdisk5 bs=1m
dd if=$SOURCE of=/dev/rdisk6 bs=1m
dd if=$SOURCE of=/dev/rdisk7 bs=1m

osascript -e 'display notification "Drives complete" with title "Complete!"'

Rendi il file eseguibile (una volta):

chmod +x ~/Desktop/script.sh

Eseguilo con privilegi amministrativi:

sudo ~/Desktop/script.sh
    
risposta data 02.02.2014 - 10:30
fonte

Leggi altre domande sui tag