![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos! |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| servidor monitor script ... | zedex | Programação Shell Script e | 1 | 06-01-2008 05:10 |
| necessitar de ajuda a fazer um script para controlar se os ficheiros estão percorrer | jonathan184 | Programação Shell Script e | 0 | 05-15-2007 12:47 |
| carga monitor script | locabuilt | UNIX & avançada para usuários experientes | 7 | 01-19-2007 02:37 |
| Script para ajudar com Monitor bases arrays | nelmest | Programação Shell Script e | 1 | 09-05-2005 11:50 |
| Monitor usuários que entra o meu diretório home | mnpradeep | Alto Nível de programação | 1 | 03-21-2002 05:08 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Hep com script para acompanhar diretório
Olá,
Sou um newbie que está tentando escrever um script para monitorar um diretório para um conjunto de 3 arquivos que eu estou esperando para receber as ftp'd. Às vezes, suspender as operações de manutenção etc, mas nós ainda obter os arquivos para que possa haver mais de 1 set. Se houver mais de 1 conjunto, gostaria de passar todos, mas o conjunto mais recente de um arquivo diretório. Por exemplo, dizem os arquivos são denominados: acme1_090106.txt acme1_091006.txt acme1_092206.txt acme2_090106.txt acme2_091006.txt acme2_092206.txt acme3_090106.txt acme3_091006.txt acme3_092206.txt Gostaria de passar o mais velhos arquivos para um arquivo diretório acme1_090106.txt acme1_091006.txt acme2_090106.txt acme2_091006.txt acme3_090106.txt acme3_091006.txt Estou executando o AIX versão 5.31. Isto é o que tenho até agora. Alguma sugestão seria muito apreciado. #! / bin / ksh # arquivos \u003d 0 LoopCnt \u003d 0 while (($ arquivos <4)); fazer echo `date` para, em nome acme `ls *`; fazer if [-f $ nome] então deixar arquivos arquivos \u003d 1 fi feito if (($ arquivos <3)); em seguida if ((LoopCnt <6)); em seguida echo "não tem 3 arquivos ainda, dormindo 10 minutos" echo "" 600 sono arquivos \u003d 0 deixe LoopCnt \u003d LoopCnt 1 diferente saída fi fi feito Isto é onde eu estou preso if (($ arquivos> 3)); em seguida echo "Tem mais de 3 arquivos, mova todos, mas o mais tardar para o arquivo" saída fi |
|
||||
|
Há muitas maneiras de fazê-lo ... um baseia-se no momento em que o arquivo criado no sistema e no outro modo se baseia na data no nome do arquivo ... Vai haver um problema com o primeiro método se o mais tardar antes do arquivo ftp'd arquivos antigos ... ficheiros antigos terão últimas arquivo mais recente data de criação do que irá mover arquivos e últimos arquivos para o arquivo pasta ... Por isso a comissão aprovou o segundo método arquivos que o arquivo com base na data no nome do arquivo ... Espero que ajude. Código:
#!/usr/bin/ksh
for name in $(ls acme* | sed 's/_[0-9]*.txt//g' | uniq)
do
cnt=0
for fname in $(ls $name* | sed 's/_\([0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)/_\3\1\2/g' | sort -r )
do
echo $fname
nm=$(echo $fname | sed 's/_\([0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)/_\2\3\1/g' )
cnt=$(($cnt+1));
if [ $cnt -ne 1 ]
then
mv $nm ./bkup
echo "$nm moved to backup"
fi
done
done
Eu testei e funcionou bem ... |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|