Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Código em questão não está funcionando

#!/bin/dash

if [ ! -d log ]
then
    mkdir log
fi 
processo_memoria(){
    processos=$(ps -e -o pid --sort -size | head -n 11 | grep [0-9])
    for pid in $processos
    do
        nome_processo=$(ps -p $pid -o comm=)
        echo  $(date +%F,%H:%M:%S) >> log/$nome_processo.log
        tamanho_processo=$(ps -p $pid -o size | grep [0-9])
        echo "$(bc <<< "scale=2/;$tamanho_processo/1024") MB" >> log/$nome_processo.log
    done
}

processo_memoria
if [ $? -eq 0 ]
then
    echo "Os arquivos foram salvos com sucesso"
else
    echo "Houve um problema na hora de salvar os arquivos"
fi
2 respostas
solução!

Olá Fellipe,

Acredito que o problema esteja na primeira linha, o interpretador seria

#!/bin/bash

Estou colocando abaixo o código formatado:

#!/bin/bash

if [ ! -d log ]
then
    mkdir log
fi


processos_memoria(){
processos=$(ps -e -o pid --sort -size | head -n 11 | grep [0-9])
for pid in $processos
do
    nome_processo=$(ps -p $pid -o comm=)
    echo -n $(date +%F,%H:%M:%S,) >> log/$nome_processo.log
    tamanho_processo=$(ps -p $pid -o size | grep [0-9])
    echo "$(bc <<< "scale=2;$tamanho_processo/1024") MB" >> log/$nome_processo.log
done
}

processos_memoria
if [ $? -eq 0 ]
then
    echo "Os arquivos foram salvos com sucesso"
else
    echo "Houve um problema na hora de salvar os arquivos"
fi

Abs

Muito obrigado! Funcionou perfeitamente