Como concatenar uma string [RESOLVIDO]

1. Como concatenar uma string [RESOLVIDO]

Thiago
Pernilongo

(usa Debian)

Enviado em 11/01/2021 - 10:58h

bom dia pessoal,

tenho a seguinte situação aqui, tenho um script que consegui agendar no cron para ser executado e tal, ok o mesmo funciona tudo bem, no entanto eu quero ter um historico de quando foi executado tal script e tudo mais, dai pensei no seguinte, me corrijam caso eu esteja errado, eu pensei em colocar apos a execução do comando que já esta fazendo o trabalho dele, o seguinte comando:

echo "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => "  date +%x_%r  >> historicoBKP.txt  


isso seria para ter um controle basico e para acompanhar os backups no caso ter dia e hora que foi executado, no entanto, eu preciso concatenar a string do echo com o comando date, já tentei com &, com . com + e simplesmente não funciona, alguem saberia me dizer se consigo fazer esse tipo de operação???

desde já agradeço e qualquer ajuda é muito bem vinda
abs



  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/01/2021 - 17:52h


Pernilongo escreveu:

bom dia pessoal,

tenho a seguinte situação aqui, tenho um script que consegui agendar no cron para ser executado e tal, ok o mesmo funciona tudo bem, no entanto eu quero ter um historico de quando foi executado tal script e tudo mais, dai pensei no seguinte, me corrijam caso eu esteja errado, eu pensei em colocar apos a execução do comando que já esta fazendo o trabalho dele, o seguinte comando:

echo "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => "  date +%x_%r  >> historicoBKP.txt  


isso seria para ter um controle basico e para acompanhar os backups no caso ter dia e hora que foi executado, no entanto, eu preciso concatenar a string do echo com o comando date, já tentei com &, com . com + e simplesmente não funciona, alguem saberia me dizer se consigo fazer esse tipo de operação???

desde já agradeço e qualquer ajuda é muito bem vinda
abs

Boa tarde pernilongo.....
Segue sugestão:
Após o comando que executa o BACKUP,
coloque:
&& printf "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => %(%x_%X)T\n" >> historicoBKP.txt 

Se prefere o date, apesar do "printf %()T", ser mais rápido.....
&& echo "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => $(date +%x_%r )" >> historicoBKP.txt 

Sucesso ou Falha
comando_backup && printf "BACKUP EFETUADO COM SUCESSO EM => %(%x => %X)T\n" || printf "BACKUP FALHOU EM => %(%x => %X)T\n" 

É isso....


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________


3. Re: Como concatenar uma string [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 11/01/2021 - 11:05h

Vc pode usar o comando logger no script e usar o /var/log
https://www.networkworld.com/article/3274570/using-logger-on-linux.html
Depois vc consulta c journalctl


4. RE: COMO CONCATENAR UMA STRING

Thiago
Pernilongo

(usa Debian)

Enviado em 11/01/2021 - 12:21h

Opa amigo, obrigado pela contribuição, realmente é possível fazer pelo logger, aprendi agora, não conhecia, no entanto, ali eu só não gostei muito da solução pois fica meio que com tudo que é gerado log,
e eu queria algo mais do tipo que eu postei na pergunta mesmo sabe? um arquivo somente com os logs do que eu quero para melhor acompanhar, na verdade a grande questão mesmo é se era possível fazer a concatenação da string com o comando date e jogar o resultado em um txt, sabe me dizer se isso é possível mais ou menos da maneira como eu coloquei???

de qualquer forma muito obrigado pela ajuda, pois aprendi mais uma hoje, ainda não era exatamente o que eu queria mas com ctz irei utilizar isso posteriormente, irei manter a pergunta aberta ainda para ver se alguem tem mais alguma ideia...

abs


5. RE: Como concatenar uma string

Thiago
Pernilongo

(usa Debian)

Enviado em 12/01/2021 - 09:21h

[/quote]

Boa tarde pernilongo.....
Segue sugestão:
Após o comando que executa o BACKUP,
coloque:
&& printf "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => %(%x_%X)T\n" >> historicoBKP.txt 

Se prefere o date, apesar do "printf %()T", ser mais rápido.....
&& echo "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => $(date +%x_%r )" >> historicoBKP.txt 

Sucesso ou Falha
comando_backup && printf "BACKUP EFETUADO COM SUCESSO EM => %(%x => %X)T\n" || printf "BACKUP FALHOU EM => %(%x => %X)T\n" 

É isso....

[/quote]

Bom dia msoliver, cara era exatamente isso que eu queria, muito obrigado mesmo pela ajuda viu, funcionou perfeitamente, obrigado mesmo!!!
grande abraço :D


6. Re: Como concatenar uma string [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/01/2021 - 17:03h

Pernilongo escreveu:
Bom dia msoliver, cara era exatamente isso que eu queria, muito obrigado mesmo pela ajuda viu, funcionou perfeitamente, obrigado mesmo!!!
grande abraço :D

Por nada Pernilongo.....
Se não for pedir muito....
Escolha como "MELHOR RESPOSTA", aquela que mais lhe ajudou......



______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Abç.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



7. Re: Como concatenar uma string [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 15/01/2021 - 17:24h

Sem problemas Pernilongo,
Agora esta certinho, Obrigado.



______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________




8. RES: Como concatenar uma string [RESOLVIDO]

Thiago
Pernilongo

(usa Debian)

Enviado em 19/01/2021 - 12:26h

Boa tarde pessoal, sei que já está resolvido o tópico, mas aproveitando o conteudo, gostaria de pedir ajuda em mais uma questão....


Boa tarde pernilongo.....
Segue sugestão:
Após o comando que executa o BACKUP,
coloque:
&& printf "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => %(%x_%X)T\n" >> historicoBKP.txt 

Se prefere o date, apesar do "printf %()T", ser mais rápido.....
&& echo "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => $(date +%x_%r )" >> historicoBKP.txt 

Sucesso ou Falha
comando_backup && printf "BACKUP EFETUADO COM SUCESSO EM => %(%x => %X)T\n" || printf "BACKUP FALHOU EM => %(%x => %X)T\n" 

É isso....


A solução do marcelo funciona perfeitamente, no entanto, depois de comecar a utiliza-la eu notei mais uma necessidade, por padrão quando escrevemos a saida do comando no txt, ela é sempre inserida depois da ultima linha do arquivo,
no entanto, eu precisava que fosse escrito sempre na primeira linha do arquivo, dessa forma toda vez que eu fosse ver o arquivo no topo estaria sempre os backups mais recentes, dei uma pesquisada e encontrei o comando sed -i que junto com uma expressão regular mas isso (o trabalho de inserir sempre na primeira linha), funciona com strings, se eu pegar um texto qualquer e escrever dentro das barras do comando funciona, porém quando eu preciso colocar esse comando que o marcelo fez para funcionar junto com o sed -i ele nao funciona, por exemplo se eu colocar entre crase o comando date dentro das barras do sed funciona, mas quando tento adaptar para rodar com o que o marcelo havia passado que já estava do jeito que eu queria e precisava, dai nao funciona, enfim se alguem puder me ajudar eu agradeço demais, senão, agradeço da mesma forma :)

segue explicação abaixo e exemplos, se eu fizer assim, da forma como mostra abaixo funciona, ele vai executar o comando date e pegar a saida e colocar na primeira linha do arquivo t5 nesse caso como exemplo, isso funciona já

sed -i "1s/^/`date`\n/" t5 


porém tentei fazer algo como isso aqui:

 sed -i "1s/^/`%(%x_%X)T`\n/" t5 


mas sem sucesso, enfim, é isso gostaria de utilizar a solução do marcelo, mas sempre colocando os resultados sempre na primeira linha do arquivo e não na ultima,
enfim, qualquer ajuda é bem vinda

abs



9. Re: Como concatenar uma string [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/01/2021 - 17:07h

Pernilongo escreveu:

Boa tarde pessoal, sei que já está resolvido o tópico, mas aproveitando o conteudo, gostaria de pedir ajuda em mais uma questão....


Boa tarde pernilongo.....
Segue sugestão:
Após o comando que executa o BACKUP,
coloque:
&& printf "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => %(%x_%X)T\n" >> historicoBKP.txt 

Se prefere o date, apesar do "printf %()T", ser mais rápido.....
&& echo "BACKUP SRV XYZ EFETUADO COM SUCESSO EM => $(date +%x_%r )" >> historicoBKP.txt 

Sucesso ou Falha
comando_backup && printf "BACKUP EFETUADO COM SUCESSO EM => %(%x => %X)T\n" || printf "BACKUP FALHOU EM => %(%x => %X)T\n" 

É isso....


A solução do marcelo funciona perfeitamente, no entanto, depois de comecar a utiliza-la eu notei mais uma necessidade, por padrão quando escrevemos a saida do comando no txt, ela é sempre inserida depois da ultima linha do arquivo,
no entanto, eu precisava que fosse escrito sempre na primeira linha do arquivo, dessa forma toda vez que eu fosse ver o arquivo no topo estaria sempre os backups mais recentes, dei uma pesquisada e encontrei o comando sed -i que junto com uma expressão regular mas isso (o trabalho de inserir sempre na primeira linha), funciona com strings, se eu pegar um texto qualquer e escrever dentro das barras do comando funciona, porém quando eu preciso colocar esse comando que o marcelo fez para funcionar junto com o sed -i ele nao funciona, por exemplo se eu colocar entre crase o comando date dentro das barras do sed funciona, mas quando tento adaptar para rodar com o que o marcelo havia passado que já estava do jeito que eu queria e precisava, dai nao funciona, enfim se alguem puder me ajudar eu agradeço demais, senão, agradeço da mesma forma :)

segue explicação abaixo e exemplos, se eu fizer assim, da forma como mostra abaixo funciona, ele vai executar o comando date e pegar a saida e colocar na primeira linha do arquivo t5 nesse caso como exemplo, isso funciona já

sed -i "1s/^/`date`\n/" t5 


porém tentei fazer algo como isso aqui:

 sed -i "1s/^/`%(%x_%X)T`\n/" t5 


mas sem sucesso, enfim, é isso gostaria de utilizar a solução do marcelo, mas sempre colocando os resultados sempre na primeira linha do arquivo e não na ultima,
enfim, qualquer ajuda é bem vinda
abs

Boa tarde Pernilongo.
Estranho seria se o comando
 sed -i "1s/^/`%(%x_%X)T`\n/" t5 
funcionasse, rsrsrsrsrs.
Só esqueceu do printf: => printf "%(%x_%X)T"
Vamos ao ponto:
comando_backup && msg=$(printf "%(%x => %X)T Sucesso)" || msg=$(printf "%(%x => %X)T Falhou")
sed -i "1s|^.*$|${msg}\n&|" Hist_Bkp.txt

ComoFuncionaEsseComandoSed:
Na linha "1", "s" troca,
|^.*$| tudo,
por |${msg}\n&|
Onde "&", é o que casou, "tudo", |^.*$|
O DELIMITADOR foi alterado pq na data tem "/",
19/01/2021_17:06:49 => Sucesso
É isso....
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________




10. RES: Como concatenar uma string [RESOLVIDO]

Thiago
Pernilongo

(usa Debian)

Enviado em 21/01/2021 - 20:55h


Boa tarde Pernilongo.
Estranho seria se o comando
 sed -i "1s/^/`%(%x_%X)T`\n/" t5 
funcionasse, rsrsrsrsrs.
Só esqueceu do printf: => printf "%(%x_%X)T"
Vamos ao ponto:
comando_backup && msg=$(printf "%(%x => %X)T Sucesso)" || msg=$(printf "%(%x => %X)T Falhou")
sed -i "1s|^.*$|${msg}\n&|" Hist_Bkp.txt

ComoFuncionaEsseComandoSed:
Na linha "1", "s" troca,
|^.*$| tudo,
por |${msg}\n&|
Onde "&", é o que casou, "tudo", |^.*$|
O DELIMITADOR foi alterado pq na data tem "/",
19/01/2021_17:06:49 => Sucesso
É isso....
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



Boa noite Marcelo, huashuahsuhusahu rachei de rir com a parte estranho seria se funcionasse kkkkkkkkkkkkkk

Cara desculpe a demora, em ver a resposta e muito obrigado mesmo por me salvar mais uma vez :D
ahhh explicação no final do artigo foi excelente, era justamente o que eu precisava, só deu um erro por conta de um parenteses que era pra ser por fora da aspas dupla,
mas foi tranquilo encontrar esse erro e fora isso funcionou que é uma beleza, muito obrigado mesmo Marcelo ;)

eu estava usando a seguinte solução depois do comando que executava o backup para contornar situação:



cd /
cat bkp.log > .bkp.temp
printf "BACKUP DO SERVIDOR DE DADOS EFETUADO COM SUCESSO EM => %(%x_%X)T\n" > bkp.log
cat .bkp.temp >> bkp.log



funcionava :)
mas com certeza a sua solução é muito melhor, mais completa e "bonita de se ver" kkkkkk

grande abraço meu brother e muito obrigado uma vez mais ;)





11. Re: Como concatenar uma string [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/01/2021 - 21:29h


Pernilongo escreveu:


Boa tarde Pernilongo.
Estranho seria se o comando
 sed -i "1s/^/`%(%x_%X)T`\n/" t5 
funcionasse, rsrsrsrsrs.
Só esqueceu do printf: => printf "%(%x_%X)T"
Vamos ao ponto:
comando_backup && msg=$(printf "%(%x => %X)T Sucesso)" || msg=$(printf "%(%x => %X)T Falhou")
sed -i "1s|^.*$|${msg}\n&|" Hist_Bkp.txt

ComoFuncionaEsseComandoSed:
Na linha "1", "s" troca,
|^.*$| tudo,
por |${msg}\n&|
Onde "&", é o que casou, "tudo", |^.*$|
O DELIMITADOR foi alterado pq na data tem "/",
19/01/2021_17:06:49 => Sucesso
É isso....
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



Boa noite Marcelo, huashuahsuhusahu rachei de rir com a parte estranho seria se funcionasse kkkkkkkkkkkkkk

Cara desculpe a demora, em ver a resposta e muito obrigado mesmo por me salvar mais uma vez :D
ahhh explicação no final do artigo foi excelente, era justamente o que eu precisava,
só deu um erro por conta de um parenteses que era pra ser por fora da aspas dupla,
mas foi tranquilo encontrar esse erro e fora isso funcionou que é uma beleza, muito obrigado mesmo Marcelo ;)

eu estava usando a seguinte solução depois do comando que executava o backup para contornar situação:


cd /
cat bkp.log > .bkp.temp
printf "BACKUP DO SERVIDOR DE DADOS EFETUADO COM SUCESSO EM => %(%x_%X)T\n" > bkp.log
cat .bkp.temp >> bkp.log


funcionava :)
mas com certeza a sua solução é muito melhor, mais completa e "bonita de se ver" kkkkkk
grande abraço meu brother e muito obrigado uma vez mais ;)

Em um momento de insanidade, até pensei em uma solução parecida com a sua....... rsrsrsrsrs
O seu comando "passou" perto, so faltou o printf.....
Bom que deu certo.....
Sinal que estou aprendendo.....

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Abc.: Marcelo Oliver
______________________________________________________________________




12. RE: Como concatenar uma string [RESOLVIDO]

Thiago
Pernilongo

(usa Debian)

Enviado em 25/01/2021 - 08:46h


Em um momento de insanidade, até pensei em uma solução parecida com a sua....... rsrsrsrsrs
O seu comando "passou" perto, so faltou o printf.....
Bom que deu certo.....
Sinal que estou aprendendo.....

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Abc.: Marcelo Oliver
______________________________________________________________________



bom dia marcelo, haushuasusahsa
meu comando passou perto nada kkkkkk
mas que bom que esse forum existe e que pessoas assim como vc nos ajudam \o/
mais uma vez obrigado mesmo pela ajuda toda ae man ;)
grande abraço







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts