Duvida - Alterando data arquivo [RESOLVIDO]

1. Duvida - Alterando data arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/08/2017 - 14:10h

Caros,

Preciso de uma ajuda, atualmente eu possuo um arquivo chamado ratein, dentro deste arquivo possui uma linha com as seguintes informações:
endTime=31-07-2017,23\:59\:59

Preciso de um script sh que altere o parâmetro mês (07 neste caso) todo mês, exemplo:
Dia 01/09/2017
Alterar o endTime para 31-08-2017,23\:59\:59


  


2. Re: Duvida - Alterando data arquivo [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 17/08/2017 - 16:19h

danilonthesky escreveu:

Caros,

Preciso de uma ajuda, atualmente eu possuo um arquivo chamado ratein, dentro deste arquivo possui uma linha com as seguintes informações:
endTime=31-07-2017,23\:59\:59

Preciso de um script sh que altere o parâmetro mês (07 neste caso) todo mês, exemplo:
Dia 01/09/2017
Alterar o endTime para 31-08-2017,23\:59\:59


velho ... ficou meio confuso essa parada aí .. vc quer alterar o mês atual - 1 é isso ???


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



3. Re: Duvida - Alterando data arquivo

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/08/2017 - 16:27h

danilonthesky escreveu:

Caros,

Preciso de uma ajuda, atualmente eu possuo um arquivo chamado ratein,
dentro deste arquivo possui uma linha com as seguintes informações:
endTime=31-07-2017,23\:59\:59

Preciso de um script sh que altere o parâmetro mês (07 neste caso) todo mês, exemplo:
Dia 01/09/2017
Alterar o endTime para 31-08-2017,23\:59\:59


Boa tarde Danilo, veja se é o que precisa:
DIA=$(date +%-d)
if ((DIA == 1)) ;then
DATA=$(awk -F '[=-,]' '/endTime/{print $4"-"$3"-"$2,$5}' arquivo |sed 's/\\//g')
NOVA_DATA=$(date -d "$DATA next month" '+%Y-%m-%-d %T'|sed 's/:/\\:/g;s/ /,/')
sed -i '/^endTime/s/=.*/='$NOVA_DATA'/' arquivo
fi

att.:
marcelo oliver


4. Resolvido

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/08/2017 - 15:26h

Caros,

Agradeço a ajuda, acabei pesquisando bastante e testando muito acabei chegando em um esquema legal aqui:

#!/bin/bash
date '+%d %m %y'
#Variaveis data
DIA=$(date '+%d' | awk '{print}')
MES=$(date '+%m' | awk '{print}')
ANO=$(date | awk '{print $6}')
#Variavel para o endTime=
FINAL="endTime=$DIA-$MES-$ANO,"
#Comando sera executado pelo crontab todo final de mes (30 ou 31)
sed -i "s/endTime=.*,/$FINAL/" internetrate



5. Re: Duvida - Alterando data arquivo [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/08/2017 - 16:41h

danilonthesky escreveu:

Caros,

Agradeço a ajuda, acabei pesquisando bastante e testando muito acabei chegando em um esquema legal aqui:

#!/bin/bash
date '+%d %m %y'
#Variaveis data
DIA=$(date '+%d' | awk '{print}')
MES=$(date '+%m' | awk '{print}')
ANO=$(date | awk '{print $6}')
#Variavel para o endTime=
FINAL="endTime=$DIA-$MES-$ANO,"
#Comando sera executado pelo crontab todo final de mes (30 ou 31)
sed -i "s/endTime=.*,/$FINAL/" internetrate


Danilo. Boa tarde.
Seguem melhorias para o script:
Em "Dia, MES e ANO", não é necessário o awk!
date +%d
date +%m
date +%Y
Outro detalhe:
#Comando sera executado pelo crontab todo final de mes (30 ou 31)
Como fica o mês de FEVEREIRO?
Execute-o no ultimo dia de cada mês, como saber qual é o ultimo dia?. . .
for M in {1..12};do echo -n $(cal -h $M 2017)|awk '{print $1" =>",$NF}';done 

Janeiro => 31
Fevereiro => 28
Março => 31
Abril => 30
Maio => 31
Junho => 30
Julho => 31
Agosto => 31
Setembro => 30
Outubro => 31
Novembro => 30
Dezembro => 31

Marcelo Oliver



6. Re: Duvida - Alterando data arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/08/2017 - 16:43h

Obrigado pela dica, segunda-feira testo este esquema, então, referente aos meses que acabam em 28, verifiquei que existe a possibilidade do crontab identificar o último dia do mês para execução de uma tarefa.


7. Re: Duvida - Alterando data arquivo [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 18/08/2017 - 18:18h

rapaziada .. eu estou ainda vuando no q vc quer ??? pra q vc's estão na guerra para identificar o ultimo dia do mês ??? não é mais fácil colocar o primeiro dia -1 ???





------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



8. Re: Duvida - Alterando data arquivo [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 18/08/2017 - 18:28h

veja bem ... alterei a data do meu sistema para 1/8 ... executei o date -1 dia para mostrar o mês

mauricio@phantom ~ $ date
Ter Ago 1 18:25:57 -03 2017
mauricio@phantom ~ $ date --date='1 days ago' +%m
07
mauricio@phantom ~ $


então é só colocar no crontab para rodar todo dia 1º

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



9. Re: Duvida - Alterando data arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/08/2017 - 18:30h

Mauriciodez escreveu:

rapaziada .. eu estou ainda vuando no q vc quer ??? pra q vc's estão na guerra para identificar o ultimo dia do mês ??? não é mais fácil colocar o primeiro dia -1 ???





------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------


Vamos lá, existe uma ferramenta que importa o arquivo internetrate e o processa em relatórios, dentro deste arquivo possui dois campos que atualmente estou trabalhando, sendo eles o inicio do relatório (startTime) e o final do relatório (endTime), este relatório deve ser importado mensalmente, portanto em todos os últimos dias dos meses o arquivo deve ser editado com o campo startTime=01-MESATUAL-ANOATUAL e o endTime=ULTIMODIADOMESATUAL-MESATUAL-ANOATUAL através do crontab, que pode executar o script sempre no ultimo dia do mês ás 23:59.

Atualmente já possuo uma base deste script, ainda estou testando em um ambiente para ver se funciona.



10. Re: Duvida - Alterando data arquivo [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 18/08/2017 - 18:32h

comando para 1 mês depois

mauricio@phantom ~ $ date
Ter Ago 1 18:31:25 -03 2017
mauricio@phantom ~ $ date --date='1 month' +%m
09
mauricio@phantom ~ $


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



11. Re: Duvida - Alterando data arquivo

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/08/2017 - 18:34h

Mauriciodez escreveu:

veja bem ... alterei a data do meu sistema para 1/8 ... executei o date -1 dia para mostrar o mês

mauricio@phantom ~ $ date
Ter Ago 1 18:25:57 -03 2017
mauricio@phantom ~ $ date --date='1 days ago' +%m
07
mauricio@phantom ~ $


então é só colocar no crontab para rodar todo dia 1º

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------

Este esquema também deve funcionar, até mais simples do exemplo que eu havia visto na internet:

0 8 28-31 * * [ `date -d tomorrow +%e` -eq 1 ] && fazer-algo 








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts