DOMANDA Script SH

Pubblicità

BlackIT

Nuovo Utente
Messaggi
14
Reazioni
0
Punteggio
35
Buon giorno a tutti!!
Scrivo a voi saggi di thoms hardware xk siete sempre disponibili e sapete tutto .... e poi e uno dei migliori forum^^!

Tagliando corto....
Mi potete consigliare un libro semplice in italiano ... per imparare qualcosa su sistemi unix quali linux/ubuntu .. per imparare a fare script sh ?
:D
Chiedo perdono se dico cavolate ma non ne so niente...
Avrei bisogno urgente di qualcuno che sia disposto a scrivermi uno script sh e spiegarmi come funziona :((

Lo script che mi serve in sostanza deve:

1)Dare un messaggio di avvio (penso si faccia con echo :O)
2)poi un timing di 20 secondi prima di fare qualsiasi cosa e ovviamente dice attendere 20 secondi (pernso sia sempre sleep 20 e echo)
3) Lanci un altro script che va a eseguire dei comandi sn un processo gia in esecuzione (vi parlo di Multicraf* (admin paneling per minecraft) e quindi lanci sul processo i comendi (save-all su tutti i server e di seguito una volta completato il comando stop su tutti i sever sempre.)
4)Riavvi il server
5) Dopo il riavvio deve lanciare in automatico i vari programmi con i giusti diritti utente o root
esempio sudo ./multicraft.sh
( piuttosto che l altro comando che non ricordo xD per avviare i programmi con diritti di uno specifico utente)
6) Messaggio di script completato con successo :)


Ringranzio aticipatamente chiunque mi aiutera o spieghera qualcosa :)

Distinti saluti a tutti
BlackIT

EDIT: spoiler script

#!/bin/bash
clear
echo Inizializzazione Script Emergency Reboot
echo Attendere 20 secondi prima dello startup
sleep 2s;/home/test.sh
echo fine
exit


Manca ancora il comando per lanciare il un altra sh che una volta completata riavviera il server...
A riavvio completato esegua in sequenza il lancio di diversi programmi ....
 
Ultima modifica:
Per creare uno Script SH basta che apri un Terminale, digiti nano ilmioscript.sh e inizi a digitare i comandi in sequenza, proprio come li digiteresti sul Terminale.
Per la prima parte, puoi usare questo codice.

#!/bin/bash
clear [Per cancellare tutte le schermate del Terminale]
echo
Messaggio di benvenuto
echo Messaggio per l'attesa
sleep 20

Non ho ben capito il punto 3 :boh:

Da qui in poi, scrivi tutti i comandi come li scriveresti sul Terminale, ricordandoti di usare uno sleep dopo il riavvio.
Per eseguire i programmi con i permessi di Root, puoi usare
sudo (gksu se preferisci l'interfaccia grafica).
Non hai bisogno di usare
sudo se avvii il tuo Script con i permessi di Root.

Se hai bisogno di eseguire due operazioni insieme, ricordati di usare & nella stessa riga. Ad esempio,


firefox
google.it & firefox tomshw.it
Avvia Firefox con il primo comando, e con il secondo apre una nuova scheda sui siti specificati.


Per terminare lo Script con un messaggio, basta che usi nuovamente
echo all'ultima riga.

Una volta che chiudi e salvi il tuo Script, devi renderlo eseguibile con
chmod +x ilmioscript.sh.

Per avviare lo Script, basta digitare sh ilmioscript.sh.
 
Grazie Danilo25 per la risposta :) adesso ci provo subito...
Per quanto riguarda il 3a punto multim* e un programma-interfaccia internet per la gestione di gameserver, in sostanza consente tramite l sh di lanciare comandi built-in in modo che prima del riavvio salvi se stoppi i servers cosi da non perdere dati... quindi necessito di un altro sh che venga avviato dal primo (che stiamo scrivendo e a conferma del termine del 2 sh il 1a prosegua con le operazioni
Spero di averti chiarito meglio il 3 punto :)
Comunque saresti disponibile ad un incontro via chat per fare prima a risolvere il probblema basta mettersi d accordo sull orario...
E poi potremmo postare sempre qua (me ne prendo io la briga ) la soluzione :)
Ti ringrazio per l attenzione!!

Mi rida errore sleep: invalid time interval `20\r' :(
 
Ultima modifica:
Okay, quindi se ho capito bene l'altro Script lo state già scrivendo. Al momento sono su Windows e non ho la possibilità di provare, ma penso basti dire al Terminale di eseguire lo Script che, una volta completato, prosegua con le operazioni del primo Script. Dovrebbe bastare così:

sh ilmiosecondoscript.sh

Però al momento non sono su Linux e non posso provare. Modificherò il messaggio appena ne ho la possibilità ;)
 
Okay, quindi se ho capito bene l'altro Script lo state già scrivendo. Al momento sono su Windows e non ho la possibilità di provare, ma penso basti dire al Terminale di eseguire lo Script che, una volta completato, prosegua con le operazioni del primo Script. Dovrebbe bastare così:



Però al momento non sono su Linux e non posso provare. Modificherò il messaggio appena ne ho la possibilità ;)

Grazie mille :) mi serve io tuo aiuto sei l unico xD pure i miei amici che fanno ste cose si sono rifiutati -.-"" e loro ci metterebbero 5 minuti lo fanno di lavoro -.-""!!

Cmq risoloto il comando sleep ora funzione dovevo fare sleep 10 s; /path/test.sh

ora non mi funziona il comando clear :S
e il comando exit per chiudere e uscire dallo script mi da errore exit /r ??? uffa -.-"!!
 
Dove lo hai messo lo script test.sh?
Perchè il percorso per la /home del tuo utente è /home/nomeutente e non /home
Volendo puoi abbreviare con ~/test.sh (l'~ indica proprio la home dell'utente, se sei sicuro che l'utente che esegue lo script avrà sempre nella sua home lo script di test.

Ho testato il tuo script, e (oltre al percorso di test.sh errato) non mi ha dato errori.

Codice:
#!/bin/bash
# script.sh

clear
echo Inizializzazione Script Emergency Reboot
echo Attendere 20 secondi prima dello startup
sleep 2s;~/test.sh
echo fine
exit

Codice:
#test.sh
echo ciao #usato solo per vedere se caricava correttamente lo script di test.sh

output:

Codice:
Inizializzazione Script Emergency Reboot
Attendere 20 secondi prima dello startup
ciao
fine

Quindi l'errore potrebbe essere in test.sh?
 
Ho copiato ed incollato il tuo script ... e questi sono gli errori che mi da :S

sh test.sh
test.sh: line 3: $'\r': command not found
test.sh: line 4: $'clear\r': command not found
Inizializzazione Script Emergency Reboot
Attendere 20 secondi prima dello startup
: No such file or directory.sh
fine
test.sh: line 9: $'exit\r': command not found
 
Per quanto ne capisca io...l'editor di testo che usi a fine riga inserisce \r anziché \n per indicare il fine riga, il problema è questo
 
Ho provato lo Script su Ubuntu, funziona.
Il contenuto del primo Script:
script.sh ha detto:
#!/bin/bash
clear
echo Ciao.
echo Aspetta 20 secondi.
sleep 20
/home/ubuntu/script2.sh L'ho eseguito dalla Live su una macchina virtuale. Usa il simbolo ~ per sostituire la Home con quella dell'utente.
echo Fine!
exit

E questo è il contenuto del secondo Script:
script2.sh ha detto:
#!/bin/bash
echo --- Messaggio Script 2. ---
exit

Il risultato sul Terminale è questo, senza errori:
Terminale ha detto:
Ciao.
Aspetta 20 secondi.
--- Messaggio Script 2. ---
Fine!
ubuntu@ubuntu:~$

Hai usato nano come ti ho detto all'inizio? nano script.sh, CTRL+X per salvare.
Inoltre, se ti da errore all'avvio del secondo Script, assicurati di aver assegnato i permessi correttamente: chmod -x script.sh.
 
Ho provato lo Script su Ubuntu, funziona.
Il contenuto del primo Script:


E questo è il contenuto del secondo Script:


Il risultato sul Terminale è questo, senza errori:


Hai usato nano come ti ho detto all'inizio? nano script.sh, CTRL+X per salvare.
Inoltre, se ti da errore all'avvio del secondo Script, assicurati di aver assegnato i permessi correttamente: chmod -x script.sh.


Permesso ri assegnato .... script copiato e incollato con percorso /home/test.sh ( l utente che avvia e il root)


rapporto errori
sh ./test.sh
./test.sh: line 2: $'clear\r': command not found
Ciao.
Aspetta 20 secondi.
sleep: invalid time interval `20\r'
Try `sleep --help' for more information.
: No such file or directoryst.sh
Fine!
./test.sh: line 8: $'exit\r': command not found

Errore di clear dovuto magari a funzione clear non installata ? ( m a se lo lancio come comando funziona )
clear non viene riconosciuto ... come faccio per gli errori ?
Grazie ancora per il tuo aiuto Danilo :)
 
Mi sembra strano che non funzioni, se hai fatto copia e incolla :boh:
Hai provato a cambiare Editor di testo? In allegato, ho inserito i due File SH che ho creato e testato. Modifica i permessi di entrambi i File, una volta estratti nella tua Home (chmod -x script.sh/script2), quindi eseguili. Apri la cartella all'interno, senza estrarla. Viene riportato qualche errore?
 

Allegati

Pubblicità
Pubblicità
Indietro
Top