From da1e22f6ecd5d80043c0c806ce16dc547c61215c Mon Sep 17 00:00:00 2001 From: Ivan Vilata-i-Balaguer Date: Tue, 8 Nov 2016 15:54:25 +0100 Subject: [PATCH 1/5] =?UTF-8?q?La=20comprobaci=C3=B3n=20de=20nfsmount=20pa?= =?UTF-8?q?sa=20a=20ser=20una=20funci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit De otra forma solo se realiza al principio y los usos subsiguientes sólo reflejan el estado inicial, no el actual. --- instalar | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/instalar b/instalar index af1d211..bc8760f 100644 --- a/instalar +++ b/instalar @@ -17,10 +17,14 @@ HD_ROOT=20480 LOCAL_MP='/tmp/pxe' REMOTE_MP='/pxe' IMAGE_DIR="$LOCAL_MP/img" -NFSMOUNT=`/etc/init.d/nfsmount status | awk -F: '{print $2}' | sed 's/ //g'` + START_TIME=0 END_TIME=0 +get_nfsmount_status() { +/etc/init.d/nfsmount status | awk -F: '{print $2}' | sed 's/ //g' +} + function pause(){ read -p "$*" } @@ -74,7 +78,7 @@ function img_install(){ echo "* Instalación de la imagen *" echo "Iniciando instalación de imagen" -if [ $NFSMOUNT != 'started' ]; then +if [ $(get_nfsmount_status) != 'started' ]; then echo "Servicio NFS desactivado, activando..." /etc/init.d/nfsmount start &> /dev/null fi @@ -108,7 +112,7 @@ fsarchiver restfs $IMAGE_DIR/${IMAGES[$SELECTED]} id=0,dest="$HD"1 &> /dev/null fsarchiver restfs $IMAGE_DIR/${IMAGES[$SELECTED]} id=1,dest="$HD"3 &> /dev/null umount $IMAGE_DIR &> /dev/null -if [ $NFSMOUNT = 'started' ]; then +if [ $(get_nfsmount_status) = 'started' ]; then echo "Servicio NFS activado, desactivando..." /etc/init.d/nfsmount start &> /dev/null fi From fd7878419f340b5cfa9f699ae194206af70a38b3 Mon Sep 17 00:00:00 2001 From: Ivan Vilata-i-Balaguer Date: Tue, 8 Nov 2016 16:02:51 +0100 Subject: [PATCH 2/5] =?UTF-8?q?Se=20comprueba=20en=20la=20funci=C3=B3n=20e?= =?UTF-8?q?l=20estado=20de=20nfsmount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Esto facilitará realizar la comprobación opcionalmente. --- instalar | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/instalar b/instalar index bc8760f..0491e77 100644 --- a/instalar +++ b/instalar @@ -21,8 +21,8 @@ IMAGE_DIR="$LOCAL_MP/img" START_TIME=0 END_TIME=0 -get_nfsmount_status() { -/etc/init.d/nfsmount status | awk -F: '{print $2}' | sed 's/ //g' +is_nfsmount_started() { +test $(/etc/init.d/nfsmount status | awk -F: '{print $2}' | sed 's/ //g') = 'started' } function pause(){ @@ -78,7 +78,7 @@ function img_install(){ echo "* Instalación de la imagen *" echo "Iniciando instalación de imagen" -if [ $(get_nfsmount_status) != 'started' ]; then +if ! is_nfsmount_started; then echo "Servicio NFS desactivado, activando..." /etc/init.d/nfsmount start &> /dev/null fi @@ -112,7 +112,7 @@ fsarchiver restfs $IMAGE_DIR/${IMAGES[$SELECTED]} id=0,dest="$HD"1 &> /dev/null fsarchiver restfs $IMAGE_DIR/${IMAGES[$SELECTED]} id=1,dest="$HD"3 &> /dev/null umount $IMAGE_DIR &> /dev/null -if [ $(get_nfsmount_status) = 'started' ]; then +if is_nfsmount_started; then echo "Servicio NFS activado, desactivando..." /etc/init.d/nfsmount start &> /dev/null fi From 99f0107dc51a7d186e32392c6c07a6acaeb4196b Mon Sep 17 00:00:00 2001 From: Ivan Vilata-i-Balaguer Date: Tue, 8 Nov 2016 16:24:37 +0100 Subject: [PATCH 3/5] =?UTF-8?q?Montaje=20de=20directorio=20remoto=20v?= =?UTF-8?q?=C3=ADa=20CIFS=20(SMB)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Es necesario establecer ``REMOTE_TYPE=CIFS`` para evitar el valor por defecto, ``NFS``. Si ``REMOTE_TYPE`` no es ``NFS`` ni ``CIFS`` no se monta ningún directorio remoto. --- instalar | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/instalar b/instalar index 0491e77..45a3925 100644 --- a/instalar +++ b/instalar @@ -10,6 +10,7 @@ #A copy of the GNU General Public License is available as /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or on the World Wide Web at the GNU website You can also obtain it by writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +REMOTE_TYPE=${REMOTE_TYPE:-'NFS'} # NFS, CIFS SERVER=10.10.20.3 HD='/dev/sda' HD_SWAP=4096 @@ -78,13 +79,19 @@ function img_install(){ echo "* Instalación de la imagen *" echo "Iniciando instalación de imagen" -if ! is_nfsmount_started; then +if [ "$REMOTE_TYPE" = 'NFS' ] && ! is_nfsmount_started; then echo "Servicio NFS desactivado, activando..." /etc/init.d/nfsmount start &> /dev/null fi mkdir $LOCAL_MP -mount -o nolock $SERVER:$REMOTE_MP $LOCAL_MP &> /dev/null +case "$REMOTE_TYPE" in + (NFS) mount -t nfs -o nolock "$SERVER:$REMOTE_MP" "$LOCAL_MP" &> /dev/null + ;; + (CIFS) mount -t cifs -o ro,guest "//$SERVER/$REMOTE_MP" "$LOCAL_MP" &> /dev/null + ;; + # (*) = local +esac cd $IMAGE_DIR IMAGES=($(ls -f ./*.fsa)) cd - &> /dev/null @@ -112,7 +119,7 @@ fsarchiver restfs $IMAGE_DIR/${IMAGES[$SELECTED]} id=0,dest="$HD"1 &> /dev/null fsarchiver restfs $IMAGE_DIR/${IMAGES[$SELECTED]} id=1,dest="$HD"3 &> /dev/null umount $IMAGE_DIR &> /dev/null -if is_nfsmount_started; then +if [ "$REMOTE_TYPE" = 'NFS' ] && is_nfsmount_started; then echo "Servicio NFS activado, desactivando..." /etc/init.d/nfsmount start &> /dev/null fi From d8eae53e4897705439797a33ccea833e237f0db4 Mon Sep 17 00:00:00 2001 From: Ivan Vilata-i-Balaguer Date: Tue, 8 Nov 2016 16:38:08 +0100 Subject: [PATCH 4/5] =?UTF-8?q?S=C3=B3lo=20se=20desmonta=20el=20directorio?= =?UTF-8?q?=20local=20si=20se=20ha=20montado=20el=20remoto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Además de que el directorio a desmontar era incorrecto, si se hace siempre aunque no se haya montado, se puede desmontar por accidente un directorio local montado con anterioridad. --- instalar | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/instalar b/instalar index 45a3925..735aa18 100644 --- a/instalar +++ b/instalar @@ -86,11 +86,13 @@ fi mkdir $LOCAL_MP case "$REMOTE_TYPE" in - (NFS) mount -t nfs -o nolock "$SERVER:$REMOTE_MP" "$LOCAL_MP" &> /dev/null + (NFS) mount -t nfs -o nolock "$SERVER:$REMOTE_MP" "$LOCAL_MP" &> /dev/null \ + && REMOTE_MOUNTED=yes ;; - (CIFS) mount -t cifs -o ro,guest "//$SERVER/$REMOTE_MP" "$LOCAL_MP" &> /dev/null + (CIFS) mount -t cifs -o ro,guest "//$SERVER/$REMOTE_MP" "$LOCAL_MP" &> /dev/null \ + && REMOTE_MOUNTED=yes ;; - # (*) = local + (*) REMOTE_MOUNTED=no # local esac cd $IMAGE_DIR IMAGES=($(ls -f ./*.fsa)) @@ -117,7 +119,9 @@ La operación puede durar aproximadamente 5 minutos." fsarchiver restfs $IMAGE_DIR/${IMAGES[$SELECTED]} id=0,dest="$HD"1 &> /dev/null fsarchiver restfs $IMAGE_DIR/${IMAGES[$SELECTED]} id=1,dest="$HD"3 &> /dev/null -umount $IMAGE_DIR &> /dev/null +if [ $REMOTE_MOUNTED = yes ]; then + umount "$LOCAL_MP" &> /dev/null +fi if [ "$REMOTE_TYPE" = 'NFS' ] && is_nfsmount_started; then echo "Servicio NFS activado, desactivando..." From 7491a879ef60b60403429d3653fe0e37e605671c Mon Sep 17 00:00:00 2001 From: Ivan Vilata-i-Balaguer Date: Wed, 9 Nov 2016 17:27:39 +0100 Subject: [PATCH 5/5] =?UTF-8?q?No=20se=20a=C3=B1ade=20la=20barra=20primera?= =?UTF-8?q?=20al=20montar=20v=C3=ADa=20CIFS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Así la sintaxis del punto de montaje remoto es igual tanto con NFS como con CIFS. --- instalar | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instalar b/instalar index 735aa18..1e39c97 100644 --- a/instalar +++ b/instalar @@ -89,7 +89,7 @@ case "$REMOTE_TYPE" in (NFS) mount -t nfs -o nolock "$SERVER:$REMOTE_MP" "$LOCAL_MP" &> /dev/null \ && REMOTE_MOUNTED=yes ;; - (CIFS) mount -t cifs -o ro,guest "//$SERVER/$REMOTE_MP" "$LOCAL_MP" &> /dev/null \ + (CIFS) mount -t cifs -o ro,guest "//$SERVER$REMOTE_MP" "$LOCAL_MP" &> /dev/null \ && REMOTE_MOUNTED=yes ;; (*) REMOTE_MOUNTED=no # local