Script personalizzati

Per creare gli script personalizzati è necessario avere familiarità con il linguaggio dei comandi Bash e JavaScript Object Notation (JSON). Se non si conosce Bash, un buon posto per impararlo è http://www.tldp.org/LDP/abs/html. La specifica JSON è disponibile all’indirizzo http://www.json.org

File di uno script

Lo script deve essere posizionato nelle seguenti directory nella macchina in cui è installato il Generatore di supporti riavviabili:

  • In Windows: %ProgramData%\Acronis\MediaBuilder\scripts\
  • In Linux: /var/lib/Acronis/MediaBuilder/scripts/

Lo script deve consistere di almeno tre file:

  • <script_file>.sh - un file con lo script Bash. Quando si crea lo script, usare solo un set limitato di comandi shell, reperibili all’indirizzo https://busybox.net/downloads/BusyBox.html. È possibile utilizzare i seguenti comandi:

    • acrocmd - l’utility della riga di comando per il backup e il ripristino
    • product - il comando che avvia l’interfaccia del Generatore di supporti avviabili

    Questo file e qualsiasi file aggiuntivo incluso nello script (ad esempio, utilizzando il comando dot) devono essere posizionati nella sottocartella bin. Nello script, specificare i percorsi dei file aggiuntivi come /ConfigurationFiles/bin/<some_file>.

  • autostart - un file per l’avvio di <script_file>.sh. I contenuti del file devono essere come segue:

    #!/bin/sh
    . /ConfigurationFiles/bin/variables.sh
    . /ConfigurationFiles/bin/<script_file>.sh
    . /ConfigurationFiles/bin/post_actions.sh
  • autostart.json - un file JSON contenente quanto segue:

    • Il nome e la descrizione dello script da visualizzare nel Generatore di supporti riavviabili.
    • I nomi delle variabili di script da configurare tramite il Generatore di supporti riavviabili.
    • I parametri di controllo che saranno visualizzati nel Generatore di supporti riavviabili per ciascuna variabile.

Struttura di autostart.json

Oggetto di livello superiore

Coppia Obbligatorio Descrizione
Nome Tipo di valore

displayName

string

Nome dello script da visualizzare nel Generatore di supporti riavviabili.

descrizione

string

No

Descrizione dello script da visualizzare nel Generatore di supporti riavviabili.

tempo scaduto

number

No

Tempo scaduto (in secondi) per il menu di avvio prima di far partire lo script. Se la coppia non è specificata, il tempo scaduto sarà di 10 secondi.

variabili

oggetto

No

Qualsiasi variabile per <script_file>.sh che si desidera configurare tramite il Generatore di supporti riavviabili.

Il valore deve essere un set delle coppie seguenti: l’identificante della stringa di una variabile e l’oggetto di una variabile (vedere la tabella sottostante).

Oggetto variabile

Coppia Obbligatorio Descrizione
Nome Tipo di valore

displayName

string

Il nome della variabile usato in <script_file>.sh.

tipo

string

Il tipo di controllo visualizzato nel Generatore di supporti riavviabili. Questo controllo è utilizzato per configurare il valore della variabile.

Per tutti i tipi supportati, vedere la tabella sottostante.

descrizione

string

L’etichetta di controllo è visualizzata sopra il controllo nel Generatore di supporti riavviabili.

predefinito

stringa se il tipo è string, multiString, password o enum

numero se il tipo è number, spinner o checkbox

No

Il valore predefinito per il controllo. Se la coppia non è specificata, il valore predefinito sarà una strina vuota o uno zero, in base al tipo di controllo.

Il valore predefinito per una casella di controllo può essere 0 (lo stato cancellato) o 1 (lo stato selezionato).

ordine

number

(non negativo)

L’ordine di controllo nel Generatore di supporti riavviabili. Maggiore è il valore, minore è il controllo relativo ad altri controlli definiti in autostart.json. Il valore iniziale deve essere {0}.

min

(solo per casella di selezione)

number

No

Il valore minimo del controllo in una casella di selezione. Se la coppia non è specificata, il valore sarà 0.

max

(solo per casella di selezione)

number

No

Il valore massimo del controllo in una casella di selezione. Se la coppia non è specificata, il valore sarà 100.

passaggio

(solo per casella di selezione)

number

No

Il valore di passaggio del controllo in una casella di selezione. Se la coppia non è specificata, il valore sarà 1.

elementi

(solo per enum)

array di stringhe

I valori di un elenco a discesa.

richiesto

(per string, multiString, password ed enum)

number

No

Specifica se il valore del controllo può essere vuoto (0) o no (1). Se la coppia non è specificata, il valore di controllo può essere vuoto.

Tipo di Controllo

Nome Descrizione

string

Una casella di testo senza vincoli di una sola riga usata per inserire o modificare stringhe corte.

multiString

Una casella di testo senza vincoli di una sola riga usata per inserire o modificare stringhe lunghe.

password

Una casella di testo senza vincoli di una sola riga usata per inserire password in modo sicuro.

number

Una casella di testo solo numerica di una sola riga usata per inserire o modificare numeri.

spinner

Una casella di testo solo numerica di una sola riga usata per inserire o modificare numeri, con una casella di controllo. Chiamata anche casella di controllo.

enum

Un elenco a discesa standard con un set fisso di valori predeterminati.

checkbox

Una casella di controllo con due stati - stato cancellato o stato selezionato.

Il campione sottostante autostart.json contiene tutti i tipi possibili di controllo che possono essere usati per configurare variabili per <script_file>.sh.

{

"displayName": "Autostart script name",

"description": "This is an autostart script description.",

"variables": {

"var_string": {

"displayName": "VAR_STRING",

"type": "string", "order": 1,

"description": "This is a 'string' control:", "default": "Hello, world!"

},

"var_multistring": {

"displayName": "VAR_MULTISTRING",

"type": "multiString", "order": 2,

"description": "This is a 'multiString' control:",

"default": "Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit."

},

"var_number": {

"displayName": "VAR_NUMBER",

"type": "number", "order": 3,

"description": "This is a 'number' control:", "default": 10

},

"var_spinner": {

"displayName": "VAR_SPINNER",

"type": "spinner", "order": 4,

"description": "This is a 'spinner' control:",

"min": 1, "max": 10, "step": 1, "default": 5

},

"var_enum": {

"displayName": "VAR_ENUM",

"type": "enum", "order": 5,

"description": "This is an 'enum' control:",

"items": ["first", "second", "third"], "default": "second"

},

"var_password": {

"displayName": "VAR_PASSWORD",

"type": "password", "order": 6,

"description": "This is a 'password' control:", "default": "qwe"

},

"var_checkbox": {

"displayName": "VAR_CHECKBOX",

"type": "checkbox", "order": 7,

"description": "This is a 'checkbox' control", "default": 1

}

}

}