Script [RESOLVIDO]

1. Script [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 08/10/2010 - 15:11h

tenho na minha pasta /var/mail/arquivo1 meu emails transmitidos. Quero criar um script para que em determinada hora esse "arquivo1" seja renomeado para a data do dia, como por exemplo, as 23:00 o arquivo1 mude para o nome 07_10_2010. Ficando assim a minha pasta /var/mail com todos meus arquivos diários. Como posso montar este script automático?


  


2. MELHOR RESPOSTA

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 14/10/2010 - 08:15h

Muito estranho isso.. Você está colocando à crase em volta do comando date?

Deve ficar algo assim:

diretorio=`date '+%d_%m_%Y'`

Repare nas ``

Ou tente usar $():

diretorio=$(date '+%d_%m_%Y')

Depois:

echo $diretorio

para conferir.

Tente aí.

3. Roteirin básico

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 08/10/2010 - 19:36h

Tipo, vou te passar os passos que eu seguiria, se você tentar e não conseguir ou achar que estou falando besteira é só postar sua dúvida aqui! :D

1) Utilize o cron para executar seu script nessa determinada hora.
http://www.vivaolinux.com.br/artigo/Usando-cron-e-crontab-para-agendar-tarefas/
http://www.vivaolinux.com.br/artigo/Agendando-tarefas-em-Linux-Unix-usando-o-cron

2) Para obter a data + hora atual, use o comando date do linux.
http://www.vivaolinux.com.br/dica/Desvendando-o-comando-DATE

O cron irá executar seu script na hora marcada. Seu script irá obter a hora atual
com o date e guardá-la em uma variável. Daí é só renomear o arquivo /var/mail/arquivo1
para o conteúdo que está nessa variável.

Penso que é só isso, confira os tutoriais acima, eles serão muito úteis para te ajudar
a elaborar seu script.

t+


4. Re: Script [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 11/10/2010 - 15:16h

Daemonio, obrigado pela atenção. Verificando, o CRON realmente é minha solução, mas, ainda não sei como fazer um mv do arquivo1 para a data do dia atual. Vou pesquisar, mas se você já tem esta rotina, ficarei grato com a ajuda. Obrigado.


5. Re: Script [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 13/10/2010 - 18:57h

Cara eu não entendi muito bem não ... arquivo1 é uma pasta? vc quer que os arquivos na pasta /var/mail/arquivo1 vão para a pasta /var/mail/07_10_2010 é isso?
Isso vai acontecer no dia certo ou preciso checar a data de criação dos arquivos para jogalos na pasta correta?


Bom ... mesmo com as dúvidas segue um script bem basico do que eu entendi que vc esta tentando fazer.

diretorio=`date '+%d_%m_%Y'`
mkdir /var/mail/$diretorio
mv /var/mail/arquivo1 /var/mail/$diretorio




6. Re: Script [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 13/10/2010 - 20:45h

fdmarp, a ideia eh essa mesmo, eu movo para uma variavel o valor da data do dia - diretorio=`date '+%d_%m_%Y'` - so que quando faco isso ele nao esta pegando o valor que seria o dia. Ele coloca o valor de `date '+%d_%m_%Y'`, ou seja, ele nao esta reconhecendo que `date '+%d_%m_%Y'` teria que ser o valor do dia. O que pode estar acontecendo? sera problemas no meu linux?
Quando digito echo $diretorio ele mostra date '+%d_%m_%Y'.







7. Re: Script [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 14/10/2010 - 09:01h

Daemonio, excelente deu certo colocando o $(). Agora um outro detalhe, eu criei um script no /sbin e ele se chama mudaemail. ele está assim:

dia=$(date +%d_%m_%Y)
echo $dia
mv /var/mail/pegatudo /var/mail/$dia

Quando eu rodo o mudaemail direto do shell ele muda o pegatudo para a data do dia e tá tudo legal, mas não estou conseguindo elecutá-lo pelo agendador de tarefas o crontab, que está assim:

vi /etc/crontab

adicionei:

30 23 * * * root mudaemail

o que pode estar acontecendo?



8. Cron

Diego
dfsantos

(usa openSUSE)

Enviado em 14/10/2010 - 09:49h

Colaca o PATH completo do comando:

******** root /sbin/mudaemail


9. Re: Script [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 14/10/2010 - 10:04h

dfsantos, eu já coloquei e não funcionou. Eu fiz um teste no crontab e acho que ele não esta funcionando legal. Eu editei o crontab e coloquei:

10 10 * * * root echo "teste de crontab"

ele não rodou as 10:10 a mensagem.




10. Re: Script [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 14/10/2010 - 10:59h

A TODOS que me ajudaram neste problema, meu muito obrigado. Eu alterei o crontab e depois reiniciei o serviço e ele executou sem problemas as tarefas... VALEU...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts