Pegar os processos que estão consumindo mais memória e gravá-los em arquivos separados [RESOLVIDO]

1. Pegar os processos que estão consumindo mais memória e gravá-los em arquivos separados [RESOLVIDO]

PEDRO HENRIQUE ANDRADE DE MEDEIROS COSTA
PenguinCosta

(usa Ubuntu)

Enviado em 20/09/2020 - 15:57h

Olá, sou novo em shell script, e preciso de uma ajuda:

Estou tentando criar um script que mostre os 10 processos que estão com uma quantidade maior de memória alocada na máquina Ubuntu, e salvar cada um dos processos em um arquivo com o seu respectivo nome e extensão .log. A questão é que não sei como fazer para pegar cada processo separadamente e salvá-lo em um arquivo diferente.

Alguém tem alguma dica de como isso pode ser possível?


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/09/2020 - 21:41h


PenguinCosta escreveu:

Olá, sou novo em shell script, e preciso de uma ajuda:

Estou tentando criar um script que mostre os 10 processos que estão com uma quantidade maior de memória alocada na máquina Ubuntu,
e salvar cada um dos processos em um arquivo com o seu respectivo nome e extensão .log.
A questão é que não sei como fazer para pegar cada processo separadamente e salvá-lo em um arquivo diferente.

Alguém tem alguma dica de como isso pode ser possível?

Boa noite PenguinCosta.
Segue sugestão:
ps -eo pmem,pcpu,cputime,comm --sort -pmem|head -n11
#Mostra os Processos/Comandos com maior consumo de memória


#Gera os arquivos com o conteúdo:
ps -eo pmem,pcpu,cputime,comm --sort -pmem|awk 'NR>1 && NR<11 {print $0 > "Arquivo_"$4".txt" }'


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

3. Re: Pegar os processos que estão consumindo mais memória e gravá-los em arquivos separados [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 20/09/2020 - 18:27h

ps aux | sort -nk 4 | head -n 10 | cut -d -f10 | xargs touch

Estou escrevendo no celular então nao estou testando o comando completo, mas a ideia eh:
Ps aux -> lista processos c consumo de memoria e cpu
Sort -nk 4 -> ordena pela quarta coluna(memoria)
Head -n 10 -> recupera as 10 primeiras linhas
Cut -d -f10 -> eu quero apenas o nome do processo, entao uso espaço como delimitador e pego a 10a coluna
Touch -> cria um arquivo
Xargs -> recebe como psrametros um comando e uma lista e roda o programa passado pegando uma linha de cada vez da lista

Se não funcionar servirá de base


4. Re: Pegar os processos que estão consumindo mais memória e gravá-los em arquivos separados [RESOLVIDO]

PEDRO HENRIQUE ANDRADE DE MEDEIROS COSTA
PenguinCosta

(usa Ubuntu)

Enviado em 20/09/2020 - 18:54h

Bom deu os seguintes erros:

cut: the delimiter must be a single character
touch: missing file operand

Mas ainda assim, valeu. Agora eu meio que tenho uma ideia de como fazer.


5. Re: Pegar os processos que estão consumindo mais memória e gravá-los em arquivos separados

PEDRO HENRIQUE ANDRADE DE MEDEIROS COSTA
PenguinCosta

(usa Ubuntu)

Enviado em 23/09/2020 - 15:25h

msoliver, esse "Importante" que você colocou no final, poderia explicar?


6. Re: Pegar os processos que estão consumindo mais memória e gravá-los em arquivos separados [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/09/2020 - 16:33h


PenguinCosta escreveu:

msoliver, esse "Importante" que você colocou no final, poderia explicar?

Boa tarde PenguinCosta.
Isso é somente a minha assinatura.
O comando: lynx --dump goo.gl/a9KeFc
Acessa: https://www.vivaolinux.com.br/termos-de-uso/
E o sed -nr '/^[ ]+Se/,/dou.$/p', "pega" o trecho:
"
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.
"
É isso...., um filtro com o sed.....
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts