Shell Script para logar via ssh num servidor e ao mesmo tempo varrer o HD trazendo os três maiores a

1. Shell Script para logar via ssh num servidor e ao mesmo tempo varrer o HD trazendo os três maiores a

Helton Ferreira da Costa
heltonfc

(usa CentOS)

Enviado em 31/08/2019 - 17:20h

Bom dia,

Preciso criar um shell script para a seguinte função:
- logar numa maquina via ssh(usuario e IP já estarão inseridos no script, irá apenas solicitar senha de acesso).
- Após logar vai varrer todo o disco trazendo os três maiores arquivos .log com seus respectivos caminhos e nome desses arquivos.

Obs: será um script único, onde eu logo em um servidor, onde se iniciará automaticamente a varredura do disco trazendo as informações mencionadas acima.




  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/09/2019 - 16:22h


heltonfc escreveu:

msoliver escreveu:


heltonfc escreveu:
Boa Tarde Marcelo,
Até o momento tenho um script para logar via ssh (ssh -X usuario@192.168.0.100), este script inclusive achei aqui na área de scripts postado pelo Robson Fernando Gomes.

O restante tenho apenas uns pedaço que estou juntando para tentar criar um script completo,
desculpe Marcelo pelo pouco que tenho, é o primeiro script.

Helton, bom dia.
Logue com o ssh e de o comando abaixo como "root":
find /var/log/ -iname "*.log" -exec stat --printf="%s %n\n" {} \;|sort -n -r -t " " -k1|head -n3
O "stat" pode ser trocado pelo "ls":
find /var/log/ -iname "*.log" -exec ls -l {} \;|sort -n -r -t " " -k5|head -n3

Explicando:
find /var/log/ -iname "*.log" # Busca por todos arquivos terminados em ".log"
-exec stat --printf="%s %n\n" {} \; #Com a saída do comando anterior, da um "stat", pega o tamanho em bytes "%s" e o nome do arquivo "%n"
sort -n -r -t " " -k1 # Ordena em ordem numérica com base no tamanho e inverte a saída.
head -n3 # Mostra somente as 3 primeiras linhas, que refere-se aos 3 maiores arquivos!!!
Obs.:
Uso o comando abaixo para logar via ssh
sshpass -p "senha" ssh login@IP 

Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver

Marcelo muito obrigado pela ajuda, funcionou perfeitamente, sendo necessário pequenos ajustes no meu ambiente.
Só acrescentado, já estou assistindo algumas aulas sobre Shell script, na minha função antiga não trabalhávamos com script, na nova vou trabalhar bastante.

Obrigado mais uma vez.

Boa tarde heltonfc.
Bom que seu problema foi resolvido....
Se não for pedir muito.... Marque o tópico como resolvido, e, eleja a melhor resposta....
Dessa forma sou pontuado, o que incentiva a continuar colaborando, compartilhando conhecimentos....
abraço,
Marcelo Oliver

VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver

3. Re: Shell Script para logar via ssh num servidor e ao mesmo tempo varrer o HD trazendo os três maior

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/09/2019 - 17:42h

Poste o que já fez...
Desconheço o CentOS. Em qual pasta ficam os arquivos de log?
Att.: Marcelo Oliver


4. Re: Shell Script para logar via ssh num servidor e ao mesmo tempo varrer o HD trazendo os três maiores a

Helton Ferreira da Costa
heltonfc

(usa CentOS)

Enviado em 01/09/2019 - 18:29h

msoliver escreveu:

Poste o que já fez...
Desconheço o CentOS. Em qual pasta ficam os arquivos de log?
Att.: Marcelo Oliver


Boa Tarde Marcelo,

Até o momento tenho um script para logar via ssh (ssh -X usuario@192.168.0.100), este script inclusive achei aqui na área de scripts postado pelo Robson Fernando Gomes.

O restante tenho apenas uns pedaço que estou juntando para tentar criar um script completo, desculpe Marcelo pelo pouco que tenho, é o primeiro script.
Achei esse script aqui que tem algum semelhança do que preciso. Esse script também peguei aqui e foi criado pelo Bruno Eleutero Silva

#! /bin/sh
# Fazendo Backup dos logs atuais
tar -zcvf /backup/var/log-`date +%d.%m.%y-%H:%M`.tar.gz /var/log
# Acessando o diretório de logs
cd /var/log
# Procura todos os arquivos no /var/log e executa a limpeza
for l in `find . -type f -exec ls {} \;`; do
echo -n >$l &>/dev/null
done
# Remove arquivos de backup de logs com mais de 3 dias de criação
find /backup/var/ -name "*.tar.gz" -ctime +3 -exec rm -rf {} \;

- Tentei mudar para adequar para o que preciso sem muito sucesso.
- Preciso de script que log na maquina e busque na raiz(/ em todo o disco) arquivos .log é que me mostre os 3 maiores, o caminho onde estão localizados e seus respectivos tamanho em Giga ou M.


5. Re: Shell Script para logar via ssh num servidor e ao mesmo tempo varrer o HD trazendo os três maiores a

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/09/2019 - 02:02h


heltonfc escreveu:
Boa Tarde Marcelo,
Até o momento tenho um script para logar via ssh (ssh -X usuario@192.168.0.100), este script inclusive achei aqui na área de scripts postado pelo Robson Fernando Gomes.

O restante tenho apenas uns pedaço que estou juntando para tentar criar um script completo,
desculpe Marcelo pelo pouco que tenho, é o primeiro script.

Helton, bom dia.
Logue com o ssh e de o comando abaixo como "root":
find /var/log/ -iname "*.log" -exec stat --printf="%s %n\n" {} \;|sort -n -r -t " " -k1|head -n3
O "stat" pode ser trocado pelo "ls":
find /var/log/ -iname "*.log" -exec ls -l {} \;|sort -n -r -t " " -k5|head -n3

Explicando:
find /var/log/ -iname "*.log" # Busca por todos arquivos terminados em ".log"
-exec stat --printf="%s %n\n" {} \; #Com a saída do comando anterior, da um "stat", pega o tamanho em bytes "%s" e o nome do arquivo "%n"
sort -n -r -t " " -k1 # Ordena em ordem numérica com base no tamanho e inverte a saída.
head -n3 # Mostra somente as 3 primeiras linhas, que refere-se aos 3 maiores arquivos!!!
Obs.:
Uso o comando abaixo para logar via ssh
sshpass -p "senha" ssh login@IP 

Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


6. Re: Shell Script para logar via ssh num servidor e ao mesmo tempo varrer o HD trazendo os três maiores a

Helton Ferreira da Costa
heltonfc

(usa CentOS)

Enviado em 02/09/2019 - 16:14h

msoliver escreveu:


heltonfc escreveu:
Boa Tarde Marcelo,
Até o momento tenho um script para logar via ssh (ssh -X usuario@192.168.0.100), este script inclusive achei aqui na área de scripts postado pelo Robson Fernando Gomes.

O restante tenho apenas uns pedaço que estou juntando para tentar criar um script completo,
desculpe Marcelo pelo pouco que tenho, é o primeiro script.

Helton, bom dia.
Logue com o ssh e de o comando abaixo como "root":
find /var/log/ -iname "*.log" -exec stat --printf="%s %n\n" {} \;|sort -n -r -t " " -k1|head -n3
O "stat" pode ser trocado pelo "ls":
find /var/log/ -iname "*.log" -exec ls -l {} \;|sort -n -r -t " " -k5|head -n3

Explicando:
find /var/log/ -iname "*.log" # Busca por todos arquivos terminados em ".log"
-exec stat --printf="%s %n\n" {} \; #Com a saída do comando anterior, da um "stat", pega o tamanho em bytes "%s" e o nome do arquivo "%n"
sort -n -r -t " " -k1 # Ordena em ordem numérica com base no tamanho e inverte a saída.
head -n3 # Mostra somente as 3 primeiras linhas, que refere-se aos 3 maiores arquivos!!!
Obs.:
Uso o comando abaixo para logar via ssh
sshpass -p "senha" ssh login@IP 

Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver



Marcelo muito obrigado pela ajuda, funcionou perfeitamente, sendo necessário pequenos ajustes no meu ambiente.
Só acrescentado, já estou assistindo algumas aulas sobre Shell script, na minha função antiga não trabalhávamos com script, na nova vou trabalhar bastante.

Obrigado mais uma vez.