![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| 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 |
| Problema en el caso de loop | El Observador | Programación de scripts de shell y | 2 | 05-28-2008 03:43 AM |
| bucle problema | maskot | Programación de scripts de shell y | 1 | 05-25-2007 05:10 AM |
| Problema con el bucle for / sed? | chiru_h | Programación de scripts de shell y | 2 | 08-27-2006 12:55 PM |
| Problema bucle | dhananjaysk | Programación de scripts de shell y | 3 | 03-31-2006 02:05 PM |
| problema con el bucle while | Mridula | Programación de Alto Nivel | 1 | 12-11-2005 11:44 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
problema de bucle
Hola,
Tengo un directorio llamado registros en los que tengo los archivos de registro. tengo que tocar el archivo antes de borrarlo. i estoy haciendo como este filestodelete \u003d "*. log * * * log" para los archivos de $ filestodelete hacer $ $ tocar archivos archivos. $ (date +% a) rm-f $ filestodelete hecho contacto no está funcionando aquí, significa que no está tocando el archivo antes de eliminarlo. amablemente me ayude en esto. Última edición por namishtiwari; al 01-25-2008 09:32 AM.. |
|
||||
|
Hola, En primer lugar, cuando se selecciona "* * log", que no tienen para seleccionar "*. log *" beacause que se encuentran ya en la primera selección! En segundo lugar, por qué "tocar" el archivo antes de borrarlos? En tercer lugar, el script se runnig con "no se puede eliminar el archivo xxx" beacause del comando "rm-f $ filestodelete" que borrar todos los archivos seleccionados por el de "para los archivos (* * log | *. log *)" Por lo tanto, propongo que la secuencia de comandos: Código:
list=$(ls *log*)
for file in $list
do
cp $file $file.$(date +%a)
rm -f $file
done
|
|
||||
|
Cita:
tengo que tocar el archivo porque tenemos algunos procesos en ejecución que deberás elegir el archivo en blanco que de lo contrario la necesidad de reiniciar de nuevo, si aaplication i suprimido el archivo sin tocar it.cp será aumentar innecesariamente el tamaño. |
|
||||
|
Cita:
Código:
for file in `ls *log*`
do
mv $file $file.`date +%a` && touch $file || echo "Can not backup $file";
done
|
|
||||
|
Gracias por todas sus respuestas. pero tengo un problema - mi script es como este -- Código:
BackupLocation="$OPTARG"
if [[ $BackupLocation != *backup ]]; then
echo "Appending backup subdirectories"
BackupLocation=$BackupLocation/backup
mkdir -p $BackupLocation >/dev/null 2>&1
if [[ $? != 0 ]];then
echo "First Create The Directory And Then Take backup"
fi
cd $FileLocation
pwd
cp -R $FilesToDelete $BackupLocation
list=$(ls *log*)
for files in $list
do
rm -f $files
touch $files.$(date +%a)
done
else
mkdir -p $BackupLocation >/dev/null 2>&1
cp -R $FilesToDelete $BackupLocation
for files in $list
do
rm -f $files
touch $files.$(date +%a)
done
if [[ ! -d $BackupLocation ]]; then
echo "Unable to make backup directory: $BackupLocation"
if [[ $IsCronJob -eq 1 ]]; then
SendMiddleTierCleanMail "Middletierclean error message" $mt_clean_errfile
fi
aquí se toque el archivo de una y otra vez y el día después de añadir el nombre del archivo una vez más-como> ansrpt26529.log.Fri.Fri.Fri.Fri pero no quiero decirlo así. tengo que tener copia de seguridad de la file.then tocar y borrar el archivo. los patrones de los archivos a eliminar es lista \u003d $ (ls * log *) es seleccionar todos los archivos ansrpt26529.log.Fri.Fri.Fri.Fri gusta esto, pero yo no lo quieren como este podría ser sólo ansrpt26529.log.Fri. patrones puede ser diferente aquí, así me dan algunas sugerencias para resolver este problema. Última edición por namishtiwari; al 01-25-2008 12:41 PM.. |
|
||||
|
¿Qué hay de Código:
list=$(ls *log.???)
for files in $list
do
rm -f $files
touch `echo $files | sed 's [^.]*$ '``date +%a`
done
Última edición por danmero; al 01-25-2008 01:05 PM.. |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|