Pagina 1 di 1

[Progetto] Factotum - Tune up your Ubuntu distro

Inviato: mercoledì 8 ottobre 2014, 15:44
da henrymalefico
_
_
Factotum - Tune up your Ubuntu distro after installation.
_
_
Questo script nasce dalla necessita velocizzare il processo di messa a punto di Ubuntu dopo l'installazione.
L'obbiettivo è fornire uno strumento che esegua in automatico le operazioni comuni che si eseguono post-installazione del sistema.
Per maggiori informazioni riporto collegamento Github del progetto https://github.com/dennyb87/factotum
E il sito web http://factotum-telnetboy.rhcloud.com/

E la prima volta che pubblico un progetto, se ho sbagliato qualcosa chiedo scusa in anticipo ai moderatori!
Ciao a tutti!

[EDIT]
Sono ben accetti consigli e idee. Ciao!

Re: [Progetto] Factotum - Tune up your Ubuntu distro

Inviato: venerdì 10 ottobre 2014, 2:50
da crap0101
nella funzione optimize_sysctl, quando ricopi il file temporaneo, invece di

Codice: Seleziona tutto

sudo cp /tmp/sysctl.conf /etc/
userei, per consistenza,

Codice: Seleziona tutto

sudo cp /tmp/sysctl.conf $SYSCTL_PATH
e dovresti anche eliminare il file temporaneo.

Altra cosa, vedo che "sudi" molto... a questo punto meglio fare un controllino all'inizio dello script per vedere se si hanno i permessi e in caso negativo uscire con errore, o chiedere la password.

Invece dei %d e %s per i parametri di default (ho visto che sull'altro sito lo si può customizzare) ci metterei comunque dei valori di default, oppure nulla e in questo caso aggiungere un controllo prima dell'uso... Non sarebbe male anche poter lanciare lo script e scegliere interattivamente i valori e/o farglieli leggere da un file di configurazione a parte; questa in effetti è una cosa che però potrebbe non aver molto senso se lo script è pensato per essere usato praticamente una sola volta.

perchè usi molto spesso: COMANDO </dev/tty ?

Re: [Progetto] Factotum - Tune up your Ubuntu distro

Inviato: venerdì 10 ottobre 2014, 10:17
da henrymalefico
crap0101 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4664186#p4664186][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:nella funzione optimize_sysctl, quando ricopi il file temporaneo, invece di

Codice: Seleziona tutto

sudo cp /tmp/sysctl.conf /etc/
userei, per consistenza,

Codice: Seleziona tutto

sudo cp /tmp/sysctl.conf $SYSCTL_PATH
e dovresti anche eliminare il file temporaneo.

Altra cosa, vedo che "sudi" molto... a questo punto meglio fare un controllino all'inizio dello script per vedere se si hanno i permessi e in caso negativo uscire con errore, o chiedere la password.

Invece dei %d e %s per i parametri di default (ho visto che sull'altro sito lo si può customizzare) ci metterei comunque dei valori di default, oppure nulla e in questo caso aggiungere un controllo prima dell'uso... Non sarebbe male anche poter lanciare lo script e scegliere interattivamente i valori e/o farglieli leggere da un file di configurazione a parte; questa in effetti è una cosa che però potrebbe non aver molto senso se lo script è pensato per essere usato praticamente una sola volta.

perchè usi molto spesso: COMANDO </dev/tty ?
Ho cambiato su consiglio questa parte

Codice: Seleziona tutto

sudo cp /tmp/sysctl.conf $SYSCTL_PATH
ed ho inserito il controllo dei privilegi di root.

Mentre i %d i %s servono in quanto il sito web fa uso del file su github per funzionare, in questo modo quando un utente fa la richiesta, viene scaricato lo script da github e vengono inseriti i parametri ( di default, o personalizzati in base a cosa ha scelto l'utente )in questo modo:

Codice: Seleziona tutto

factotum_script % ( swap, cache, ecc... )
Sicuramente non è il metodo migliore per gestire la cosa, il punto è che volevo rendere la vita facile all'utente, quindi ho pensato:

- se l'utente non sa come impostare i settaggi userà questo comando da terminale

Codice: Seleziona tutto

wget -q -O - https://factotum-telnetboy.rhcloud.com/factotum.sh | bash
- se invece l'utente vuole customizzarlo puo usare il form sul sito web e scaricare la versione customizzata

In principio avevo fatto un interfaccia grafica con kivy, ma poi ho pensato "che senso ha installare un programma che verra usato quasi sicuramente una volta sola?"

Comunque... se avete idee su quale potrebbe essere un approccio migliore, esempio: eliminare la customizzazione online e far scegliere le opzioni all'utente direttamente dallo script? fatemi sapere secondo voi qual'è l'approccio migliore.

E poi quali altre ottimizzazioni e/o pacchetti vorreste vedere inseriti in Factotum?


PS:

Uso >/dev/tty perchè altrimenti quando si avvia lo script con qusto comando

Codice: Seleziona tutto

wget -q -O - https://factotum-telnetboy.rhcloud.com/factotum.sh | bash
lo script non aspetta l'input dell'utente ed esce

Re: [Progetto] Factotum - Tune up your Ubuntu distro

Inviato: venerdì 10 ottobre 2014, 14:04
da henrymalefico
ps: ho dovuto togliere il controllo dei privilegi

Codice: Seleziona tutto

Check root privileges
if [ $EUID -ne 0 ]; then
   echo "Factotum must be run as root!" 
   exit 1
fi
perchè altrimenti questo comando poi non funziona piu

Codice: Seleziona tutto

wget -q -O - https://factotum-telnetboy.rhcloud.com/factotum.sh | bash
[EDIT]:

Codice: Seleziona tutto

#Check root privileges
[ $EUID -ne 0 ] && exec sudo -- "$0" "$@"
Ho inserito questo comando che controlla se i hanno i privilegi, in caso contrario riavvia lo script con i privilegi di root
soluzione provvisoria finche non trovo un approccio migliore per servire FACTOTUM in modo ottimale agli utenti.

Re: [Progetto] Factotum - Tune up your Ubuntu distro

Inviato: sabato 11 ottobre 2014, 20:09
da crap0101
henrymalefico ha scritto:
Uso >/dev/tty perchè altrimenti quando si avvia lo script con qusto comando

Codice: Seleziona tutto

wget -q -O - https://factotum-telnetboy.rhcloud.com/factotum.sh | bash
lo script non aspetta l'input dell'utente ed esce
Giusto, anche se sarebbe meglio evitare a prescindere di eseguire il codice così, non è il massimo della sicurezza e nel migliore dei casi peggiori genera errori. Sarebbe meglio scaricare lo script e poi, se tutto è andato bene, eseguirlo... incidentalmente risolveresti anche il problema del controllare i permessi e risparmieresti un pò di codice.