Pages : 1
#1 Le 25/04/2015, à 11:02
- farfadet84000
Script bash d'installation
Bonjour à tous
Je m'atelle à une tache ardue. Je suis en train de créer un script bash (mon tout 1er script mais j'aime le gout du défie) et je bloque sur deux petites choses.
Je cherche dans un premier temps à afficher les differents disque contenu dans /dev/sd*. J'y arrive mais je ne sais comment exploiter le resultat pour que l'utilisateur puisse choisir le disque à préparer.
Le second soucis comment lancer fdisk sur le disque choisi et retourner sur le script une fois terminé?
Voici le bout de code que j'ai commencé à créer soyez indulgent comme je le précisait c'est mon tout premier script. Le but pour moi étant avant tout d'apprendre le bash.
#!/bin/bash
#Version 1.0
echo Installation de Votre distribution
#Préparation des disques
echo Choix du disque sur lequel installer votre distribution
echo /dev/.sd*
exit 0
Hors ligne
#2 Le 25/04/2015, à 21:58
- wido
Re : Script bash d'installation
Bonjour,
tu peux inspirer comme ceci, en lançant un ls /dev/sd*
l'utilisateur le voit dans le terminal
et il suffit à l'utilisateur de mettre le sd[quelque chose] qui lui convient
en modifiant ce bout de code tu peux y arriver aisement
#!/bin/sh
echo -n "Voulez-vous voir la liste des fichiers Y/N : "
read ouinon
if [ "$ouinon" = "y" ] || [ "$ouinon" = "Y" ]; then
echo "Liste des fichiers :"
ls -la
elif [ "$ouinon" = "n" ] || [ "$ouinon" = "N" ]; then
echo "Ok, bye! "
else
echo "Il faut taper Y ou N!! Pas $ouinon"
fi
Hors ligne
#3 Le 26/04/2015, à 03:13
- MicP
Re : Script bash d'installation
Je suis pas un pro des regex, mais j'ai écrit ça après avoir lu ton message, et peut-être que ça pourrait t'intéresser.
En fait, je préfère récupérer les informations du répertoire /dev/disk/by-id : elles me semblent plus parlantes quand il me faut choisir un disque.
ls -l /dev/disk/by-id | grep '\/sd.$' | awk '{print $11, $9}' | sed -e 's/^\.\.\/\.\.\///' -e '/scsi\|wwn/d'
=======
Si après tu compte utiliser fdisk, il faudra que les disques n'utilisent pas de table des partitions de type GPT. Sinon, il vaudrait mieux utiliser parted.
=======
Si l'utilisateur peut utiliser fdisk ou parted, c'est que cet utilisateur à tous les privilèges => compte root.
Donc fait gaffe qu'il ne se trompe pas de disque, et qu'il ne modifie pas le disque système sur lequel il est.
Le mieux, serait carrément de l'en empêcher en ne lui proposant que ce qu'il peut modifier :
Même root a besoin d'être protégé de lui même (le samedi matin par exemple…)
Hors ligne
#4 Le 26/04/2015, à 09:11
- farfadet84000
Re : Script bash d'installation
Merci pour vos réponse wido et micp je testerais tout cela.
Si l'utilisateur peut utiliser fdisk ou parted, c'est que cet utilisateur à tous les privilèges => compte root.
Donc fait gaffe qu'il ne se trompe pas de disque, et qu'il ne modifie pas le disque système sur lequel il est.
Le mieux, serait carrément de l'en empêcher en ne lui proposant que ce qu'il peut modifier :
Même root a besoin d'être protégé de lui même (le samedi matin par exemple…)
Je suis en train de créer un script d'installation popur automatiser l'install de archlinux. Donc l'utilisateur est root puisqu'il demarre du live cd/usb.
Après bien sur je mettrais un message prevenant qu'il faut faire attention a ce que l'on fait et qu'on risque de perdre des données par megarde.
Hors ligne
#5 Le 26/04/2015, à 12:26
- MicP
Re : Script bash d'installation
…installation popur automatiser l'install de archlinux. Donc l'utilisateur est root puisqu'il demarre du live cd/usb…
Cool on peut en tirer pas mal d'information sur le contexte comme "archlinux" "boot sur Live CD/USB"
Donc, vu le contexte, pas de problèmes pour l'histoire des privilèges.
Désolé d'avoir crié au loup pour rien, concernant "root"
Merci pour la précision.
Je vais aller voir un peu du côté d'archlinux (j'aime bien)
J'en retirerai peut-être plus d'informations sur le contexte : je me demandais justement si dialog n'était pas dans le coin,
car il pourrait grandement aider pour l'interface utilisateur choix sélection.
Mais bon, s'il n'a que cette histoire de choix de disque, autant utiliser simplement bash.
Un exemple simple (copié-collé et testé chez moi) récupérer depuis le web ici
#!/bin/bash # Bash Menu Script Example PS3='Please enter your choice: ' options=("Option 1" "Option 2" "Option 3" "Quit") select opt in "${options[@]}" do case $opt in "Option 1") echo "you chose choice 1" ;; "Option 2") echo "you chose choice 2" ;; "Option 3") echo "you chose choice 3" ;; "Quit") break ;; *) echo invalid option;; esac done
A+
Hors ligne
Pages : 1