The UNIX and Linux Forums  
Olá e Bem-vindo ao de UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Problema no ciclo for O Observador Programação Shell Script e 2 05-28-2008 03:43
loop problema Maskot Programação Shell Script e 1 05-25-2007 05:10
Problema com a alça / sed? chiru_h Programação Shell Script e 2 08-27-2006 12:55
loop Problema dhananjaysk Programação Shell Script e 3 03-31-2006 02:05
problema com o ciclo while mridula Alto Nível de programação 1 12-11-2005 11:44

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-25-2008
namishtiwari namishtiwari is offline Forum Advisor  
Usuário
  
 

Join Date: Aug 2007
Local: Bangalore
Lugares: 377
Para loop problema

Oi,
Tenho um diretório chamado logs em que tenho os arquivos de log.

Tenho que tocar o arquivo antes de excluí-la.

Estou fazendo assim
filestodelete \u003d "*. log * * * log"

para arquivos em $ filestodelete
fazer
$ $ tocar arquivos arquivos. $ (date +% a)
rm-f $ filestodelete
feito

touch não está funcionando aqui, significa que é não tocar o arquivo antes de excluí-la.
gentilmente me ajudar neste processo.

Última edição por namishtiwari; em 01/25/2008 09:32..
  #2 (permalink)  
Old 01-25-2008
V3l0 V3l0 is offline
Usuário
  
 

Join Date: Nov 2007
Localização: Bélgica e França
Lugares: 70
Olá,

Primeiro, quando você selecionar "* * log", você não têm para seleccionar "*. log *" beacause estão já na primeira seleção!

Em segundo lugar, porque "tocar" o arquivo antes de excluí-lo?

Em terceiro lugar, seu script será Manejo com "não foi possível remover o arquivo xxx" beacause do comando "rm-f $ filestodelete" que vai apagar todos os arquivos selecionados por "para arquivos em (* log * | *. log *)"

Assim, proponho que o script:
Código:
list=$(ls *log*)

for file in $list
do
    cp $file $file.$(date +%a)
    rm -f $file
done
  #3 (permalink)  
Old 01-25-2008
namishtiwari namishtiwari is offline Forum Advisor  
Usuário
  
 

Join Date: Aug 2007
Local: Bangalore
Lugares: 377
Citação:
Originally Posted by V3l0 View Post
Olá,

Primeiro, quando você selecionar "* * log", você não têm para seleccionar "*. log *" beacause estão já na primeira seleção!

Em segundo lugar, porque "tocar" o arquivo antes de excluí-lo?

Em terceiro lugar, seu script será Manejo com "não foi possível remover o arquivo xxx" beacause do comando "rm-f $ filestodelete" que vai apagar todos os arquivos selecionados por "para arquivos em (* log * | *. log *)"

Assim, proponho que o script:
Código:
list=$(ls *log*)

for file in $list
do
    cp $file $file.$(date +%a)
    rm -f $file
done
você me deu boas suggestions.Thanks ..

Tenho que tocar o ficheiro, porque temos alguns processos que precisam correr para escolher outro arquivo em branco que precisamos para reiniciar o aaplication novamente se eu apagado o arquivo, sem tocar it.cp irá aumentar desnecessariamente o tamanho.
  #4 (permalink)  
Old 01-25-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Localização: 45,48-73,63
Mensagens: 1.427
Citação:
Originally Posted by namishtiwari View Post
Código:
list=$(ls *log*)

for file in $list
do
    cp $file $file.$(date +%a)
    rm -f $file
done
Tenho que tocar o ficheiro, porque temos alguns processos que precisam correr para escolher outro arquivo em branco que precisamos para reiniciar o aaplication novamente se eu apagado o arquivo, sem tocar it.cp irá aumentar desnecessariamente o tamanho.
Que tal mover o arquivo e tocar um novo:
Código:
for file in `ls *log*`
do
    mv $file $file.`date +%a` && touch $file || echo "Can not backup $file";
done
  #5 (permalink)  
Old 01-25-2008
namishtiwari namishtiwari is offline Forum Advisor  
Usuário
  
 

Join Date: Aug 2007
Local: Bangalore
Lugares: 377
Agradecemos a todas as suas respostas.

Mas tenho um problema aqui - o meu script é assim --

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
aqui vai tocar o arquivo de novo e novamente e adicionar o dia após o nome do arquivo novamente como->
ansrpt26529.log.Fri.Fri.Fri.Fri
mas não quero que ela gosta.
Eu tenho que ter backup do file.then tocar e apagar o arquivo.
a correspondência por padrão para os ficheiros para apagar é
list \u003d $ (ls * log *)
é selecionar todos os arquivos ansrpt26529.log.Fri.Fri.Fri.Fri como esta, mas eu não quero isso como este poderia ser apenas ansrpt26529.log.Fri.
correspondência padrão pode ser diferente aqui, me dê algumas sugestões para resolver este problema.

Última edição por namishtiwari; em 01/25/2008 12:41..
  #6 (permalink)  
Old 01-25-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Localização: 45,48-73,63
Mensagens: 1.427
What about
Código:
                       
list=$(ls *log.???)
for files in $list
do
    rm -f $files
    touch `echo $files | sed 's [^.]*$  '``date +%a`
done

Última edição por danmero; em 01/25/2008 01:05..
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 12:25.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0