Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: andaluz en 3 Febrero 2012, 20:56 PM

Título: Script crear particiones [Bash]
Publicado por: andaluz en 3 Febrero 2012, 20:56 PM
Hola a todos, quiero realizar un Script para que me haga el particionado de mi unidad de disco /dev/sdb, quiero hacer:

      - comprobar que esta vaco, en caso de que no este vacío, lo eliminare todo.
      - cuando este limpio /dev/sdb tengo que hacer 2 particiones:
              * sdb1 del 60 % sistema de archivos ext3.
              * sdb2 del 40 % sistema de archivos fat32.
      - una vez creadas las debo chequear.
      - configuración del sistema para el uso de las particiones:
              * sdb1 se montara en /media/hdext3, dolo la podrá montar root y no debe montarse al iniciar el sistema.
              * sdb2 se montara en /media/hdfat32, la podrá montar cualquier usuario, pero no permitirá ejecutar programas, se montara automáticamente al iniciar el sistema y tendrá programado un chequeo.
      - la información se deberá ir mostrando por pantalla.

Código (bash) [Seleccionar]

#!/bin/bash

num=$(ls /dev/ | grep -c '^sdb')
echo "Num: "$num

# si num es igual a 1 es que no existen particiones en la unidad /dev/sdb
if [ $num = 1 ]
then
        echo "El directorio /dev/sdb esta vacío."
else
        # si num es mayor a 1 quiere decir que tiene mas de 1 partición
        echo "Existen particiones en /dev/sdb "
fi

# me gustaría que me ayudaran a finalizarlo, ya que no esto muy puesto en esto de las particiones.
# creo que para particionar en un script se realiza:
#      parted /dev/sdb mkpart primary ext3 0G 3G


Espero que me puedan ayudar

saludos
Título: Re: Script crear particiones [Bash]
Publicado por: andaluz en 4 Febrero 2012, 13:44 PM
he confeccionado mas código del script, me gustaría que me ayudaran, ya que tiene algunos fallos en tiempo de ejecución.

Código (bash) [Seleccionar]

#!/bin/bash

n=1
# compruebo que en /dev el numero de lineas comienzan por sdb sea 1
num=$(ls /dev/ | grep -c '^sdb')
echo "Num de particiones: "$num

# si num es igual a 1 quiere decir que no existen particiones en esa unidad
if [ $num = 1 ]
then
       echo "El directorio /dev/sdb no tiene particiones"
else
       # si num es mayor a 1 quiere decir que hay mas de 1 partición
       echo "Existe mas de 1 particion en /dev/sdb"
       i=1

       # recorro desde 1 hasta el numero de particiones
       for $i in $num
       do
             # borro la particion
             rm $i
             echo "El directorio se ha limpiado de particiones"
             # aumento en 1 el valor de i
             i=$(expr $i \+ 1)
       done
fi

# creo la primera particion del 60%
parted /dev/sdb mkpart primary ext3 0G 3G
# creo la primera particion del 40%
parted /dev/sdb mkpart primary fat32 3G 5G

# chequear las particiones creadas


#   sdb1 se montara en /media/hdext3, dolo la podrá montar root y no debe
#montarse al iniciar el sistema



#  sdb2 se montara en /media/hdfat32, la podrá montar cualquier usuario, pero no
#permitirá ejecutar programas, se montara automáticamente al iniciar el sistema y
#tendrá programado un chequeo




haber si me pueden ayudar a realizar los ultimos apartados.

saludos
Título: Re: Script crear particiones [Bash]
Publicado por: leogtz en 4 Febrero 2012, 16:49 PM
El script se puede acortar muchisimo usando expansión de comandos.

A qué te refieres con "chequear las particiones creadas"?
Título: Re: Script crear particiones [Bash]
Publicado por: andaluz en 4 Febrero 2012, 17:14 PM
eso serial algo como chkdsk /dev/sdb$i

eso del $i estaria bien colocado asi o lo tendria que meter dentro de un for como lo he utilizado anteriormente???
Título: Re: Script crear particiones [Bash]
Publicado por: leogtz en 4 Febrero 2012, 17:24 PM
Si te funcionó el for anterior utilizalo de igual manera para checar las particiones.
Título: Re: Script crear particiones [Bash]
Publicado por: andaluz en 5 Febrero 2012, 12:10 PM
el fallo que me da en el primer for me dice que $i no es un identificador valido, como puedo solucionar eso?? si en lugar de poner
Código (bash) [Seleccionar]

          for $i in $num

pongo
Código (bash) [Seleccionar]

          for i=1 in $num


me dice lo mismo que no es un identificador valido. que puedo hacer para solucionar esto???

Saludos
Título: Re: Script crear particiones [Bash]
Publicado por: andaluz en 6 Febrero 2012, 22:40 PM
solucionado