![]() |
Olá e Bem-vindo ao de UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| 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 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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.. |
|
||||
|
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
|
|
||||
|
Citação:
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. |
|
||||
|
Citação:
Código:
for file in `ls *log*`
do
mv $file $file.`date +%a` && touch $file || echo "Can not backup $file";
done
|
|
||||
|
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
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.. |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|