le mie informazioni di contatto
Posta[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Shell Si aspetta un'interazione automatizzata
Durante il funzionamento e la manutenzione quotidiana di Linux, è spesso necessario accedere al server in remoto. Durante il processo di accesso, è richiesto un processo interattivo e potrebbe essere necessario inserire informazioni come sì/no, quindi aspetta viene utilizzato per ottenere l'interazione. .
Sintassi chiave
❶[#!/usr/bin/aspettativa]
Questa riga indica al sistema operativo quale shell utilizzare per eseguire il codice nello script. Aspettatevi che qui sia in realtà la stessa cosa di bash sotto Linux e cmd sotto Windows. NOTA: questa riga deve essere la prima riga nello script.
❷impostato
Il timeout predefinito di wait è 10 secondi. Il timeout della sessione può essere impostato tramite il comando set. Se il timeout non è limitato, dovrebbe essere impostato su -1.
Ad esempio: set timeout 300 //Indica che il timeout della sessione è 300 s
Ad esempio: imposta timeout -1/impostazione/mai timeout, impostazioni comuni
Nota: perché è necessario impostare un timeout? Poiché il tempo predefinito è 10 secondi, è probabile che venga disconnesso durante l'esecuzione interattiva, causando l'interruzione dell'esecuzione dell'attività prima del completamento. Un'attività pianificata della nostra azienda che sincronizzava i file da un ftp remoto veniva sempre interrotta. Successivamente, ho impostato il timeout su -1 e tutto è andato bene.
❸generare
spawn è solitamente seguito da un comando di esecuzione Linux, che significa aprire una sessione, avviare il processo e tenere traccia delle informazioni sulle interazioni successive.
❹aspettarsi
Solo i risultati dell'esecuzione dei comandi eseguiti da spawn vengono catturati da wait, che includono principalmente informazioni sul prompt di input standard, eof e timeout. Attendi la visualizzazione del prompt dei comandi, ovvero la richiesta di acquisire l'input dell'utente:
➎invia
L'invio di valori che richiedono interazione sostituisce l'input manuale dell'utente; questo comando non può essere inserito automaticamente o avanzare di riga e generalmente richiede l'aggiunta di r (ritorno a capo) o n
wait "password"{ send "abc123r"} //La parte di invio della stessa riga deve avere {}
❻Terminator si aspetta eof/interact
aspettarsi eof
Questo deve essere aggiunto. Corrispondente a spawn, significa che le informazioni di output del terminale di acquisizione sono terminate, in modo simile a if....endif
interagire
Una volta completata l'esecuzione, mantenere lo stato interattivo e trasferire il controllo alla console. A questo punto è possibile eseguire l'operazione manuale. Se non è presente alcuna frase del genere, uscirà una volta completato il login, invece di rimanere sul terminale remoto.
PS: lo script di attesa deve terminare con interagire o aspettarsi eof è solitamente sufficiente per eseguire attività automatizzate.
Esempio
Inserisci il comando wait nello script di shell, il formato è il seguente
Esempio 1: 22.sh crea script di cartella
#!/bin/sh aspettarsi generare ssh 10.1.1.196 aspetta password {invia xxxn} invia cd /home/cg/hmf_app/testr invia mkdir newworkr invia exitr aspettarsi eof Fine del periodo |
Esempio 2: creare uno script di shell della cartella
aspettarsi generare ssh 10.1.1.196 aspetta password {invia xxxn} invia cd /home/cg/hmf_app/testr invia mkdir newworkr invia exitr aspettarsi eof Fine del periodo |
Esempio 3: copiare i file
aspettarsi imposta timeout -1 genera scp [email protected]:/dati/pacchetto/casb/$casbzip ./ aspetta password {invia xxxn} aspettarsi eof Fine del periodo |
Nota:
Fine del periodo
...
Fine del periodo
Rappresenta uno script di shell
fare riferimento a:Shell Aspettatevi l'interazione automatizzata_shell script interattivo contenuto di input automatico-CSDN Blog