The UNIX and Linux Forums  

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
bucle while dentro de bucle while panknil Programación de scripts de shell y 0 01-07-2008 12:49 PM
Bucle for xramm HP-UX 3 10-10-2007 03:20 PM
Si bien Bucle hemangjani Programación de scripts de shell y 2 11-02-2006 11:01 AM
bucle for munnabhai1 Programación de scripts de shell y 3 04-06-2006 03:30 PM
cómo obtener la función similar en el bucle while o bucle for trynew Programación de scripts de shell y 3 06-17-2002 12:09 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 03-17-2008
rsullivan rsullivan is offline
Usuario Registrado
  
 

Fecha: marzo 2008
Publicaciones: 1
sh bucle Necesita ayuda

Hola,

Tengo el siguiente script que hace una copia de seguridad a través de un cpio NFS de montaje. El problema es que sólo parecen estar raíz. No estoy seguro de lo que estoy haciendo mal aquí, pero no está funcionando. Lo que sigue es la secuencia de comandos. He resaltado las áreas en las que creo que tengo un problema o al menos relevantes, creo.

#! / bin / sh
#
# Establecer variables de configuración
#
NFSMOUNT \u003d "/ mnt /nfs'
BACKUP_LOG \u003d '/ usr / local / backup_logs'
EXCLUDE_FS \u003d "/ mnt /nfs'
HARDWARE_LOG \u003d '/ var / adm / messages "

exportación NFSMOUNT BACKUP_LOG EXCLUDE_FS HARDWARE_LOG

# Obtener la fecha en el formato MMDDAA
MDY \u003d `date +% m% d% y»

if [! -d $ () BACKUP_LOG-o! -w $ (BACKUP_LOG)], y luego
echo "$ () BACKUP_LOG no existe o no tiene permiso de escritura"
salida 1
fi

echo "# # # Copia de seguridad a partir de` date `"
# LOG_START es el número de líneas en nuestro hardware de registro
# Comenzó cuando la copia de seguridad. No estamos interesados en cualquier cosa
# Que se han producido hasta ahora.
LOG_START \u003d `wc-l <$ () HARDWARE_LOG»
# Tira de la dirección y los espacios

LOG_START \u003d `expr $ () LOG_START»

BACKUPTYPE \u003d "cpio"

# Obtener la lista de los sistemas de archivos de Unix para hacer copias de seguridad
MOUNTEDSYSTEMS \u003d `df-F ufs | cut-d ''-f1 | sort»

# Quitar los sistemas de archivos excluidos de la lista
para FS en $ MOUNTEDSYSTEMS
hacer
case "$ () EXCLUDE_FS" en
# Si su excluidos no hacer nada
* "$ (FS) "*);;
# Agregar a la lista de entrada
*) Case "$ () sistemas de archivos" en
# Lista está vacía por lo que esta es la primera entrada
'') De ficheros \u003d "$ (FS)";;
# Lista contiene las entradas a fin de añadir a la lista
*) Los sistemas de ficheros \u003d "$ (de ficheros $ (FS))";;
esac;;
esac
hecho

cd /
if [ "$ BACKUPTYPE" \u003d "vertedero"] y, a continuación,
# Copia de seguridad de uso de vertedero
para FS en sistemas de ficheros $ ()
hacer
echo "dumping $ $ (FS)) (NFSMOUNT" | \
tee-a $ () BACKUP_LOG / bu.ufsdump. MDY $ ()
/ usr / sbin / ufsdump 0fu $ NFSMOUNT) ($ (FS) 2> & 1 | \
# Sólo estamos interesados en las dos últimas líneas de la producción
# para determinar si se trataba de un éxito de volcado
tee-a $ () BACKUP_LOG / bu.ufsdump. MDY $ () | cola -3

# Conde de volcado de sistema de archivos
FS_COUNT \u003d `expr $ (FS_COUNT) + 1»
hecho
algo más

# De copias de seguridad usando cpio
para FS en sistemas de ficheros $ ()
hacer
echo "Escribir archivo cpio de $ (FS) $ (a) NFSMOUNT" | \
tee-a $ () BACKUP_LOG / bu.cpio. MDY $ (). errar \
>> $ () BACKUP_LOG / bu.cpio. MDY $ ()

# La salida de encontrar siempre será relativo a la raíz
encontrar.) $ (FS-print-xdev | \

# Utilice sed a cambio ". /" a "/" para Solaris cpio no corteza
sed -e 's / ^ \. \ / $ / \ / /' | \
cpio-oc-O $ (NFSMOUNT) / `hostname`. MDY $ () \
2>> $ () BACKUP_LOG / bu.cpio. MDY $ (). Errar \
1>> $ () BACKUP_LOG / bu.cpio. MDY $ ()

# Cpio contar archivo de sistema de archivos
FS_COUNT \u003d `expr $ (FS_COUNT) + 1»
hecho

cat $ BACKUP_LOG () / bu.cpio. MDY $ (). errar
fi

# Mostrar información de archivos que se acaba de copia de seguridad
echo "# # # Actualmente, los sistemas de archivos montados:"
df-k de ficheros $ ()
echo "###"

LOG_END \u003d `wc-l <$ () HARDWARE_LOG»
# Franja principal y los espacios
LOG_END \u003d `expr $ () LOG_END»
if [ "$ (LOG_BEGIN)"-ne "$ () LOG_END"] y, a continuación,
# Informe de errores en registro de copia de seguridad durante
# Grep añadir líneas adicionales para eliminar los mensajes que aparecen normales en su
# Sistema de registro de secuencia de comandos
echo "# # # sistema de registros generados durante la copia de seguridad:"
cat $ () HARDWARE_LOG | \
sed -e "1, $ (d) LOG_START" | \
grep-v "de conectar" | \
v grep "negó la conexión de" | \
nawk '(print substr ($ 0,1,78)); \
longitud> 78 (print "" substr ($ 0,79)) '

echo "###"
fi
# Quitar archivos de registro antiguos
if [ "$ (BACKUPTYPE)" \u003d "cpio"] y, a continuación,
cd $ () BACKUP_LOG
encontrar. -mtime +14-exec rm-seguir () \;
ls-l $ (BACKUP_LOG) / *
eco
fi

echo "Copia de seguridad terminados en" `date`
  #2 (Enlace permanente)  
Old 03-18-2008
época
Guest
  
 

Mensajes: n / a
Bits: 0 [Banca]
¿Cuáles son los síntomas? Es un poco difícil de adivinar dónde va mal sólo mirar el código.

Me di cuenta de un problema de menor importancia aquí:


Código:
case " ${EXCLUDE_FS} " in
# If its excluded do nothing
*" ${FS} "*);;

Usted está EXCLUDE_FS requieren tener espacios en ambos lados para que esto coinciden, pero no parecen tener todos los espacios hasta que se están asignando EXCLUDE_FS. O bien ampliar el "caso" de código para manejar los partidos en principio, fin, y por sí sola, o añadir los espacios para la misión. (Este último es más fácil, pero más probabilidades de pasar desapercibido por alguien que rápidamente se actualiza la lista de exclusión posterior.)

El caso de que usted es la actualización de los sistemas de ficheros parece innecesariamente complicada. Añadiendo un espacio al principio de la lista si es vacía parece inofensivo, a juzgar por lo que hacer con él más adelante en el código.

Yo, EXCLUDE_FS se convertiría en una expresión regular, y filtrar la salida de df a través egrep, y deshacerse de toda esa burbuja de código, de todos modos.

¿Cuál es el punto de exportación de todos los que las variables? Usted no está invocando subcommands que los necesitan, ¿verdad?

Parece que falta un guión delante de la opción aquí:


Código:
grep v "refused connection from " | \

No puede ver lo que le pasa a la parte CPIO, lo siento.

Indentación adecuada probablemente ayudar un poco aquí, también ...
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 12:52 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0