'htop' para E / S de disco? [fechadas]

0

Estou pesquisando uma ferramenta ssh que exibe qual processo está lendo / gravando em qual arquivo.

Exemplo de saída:

pid (or like htop command) | read mb/s | write mb/s | path/to/file.txt

    
por wuast94 17.06.2018 / 16:25

1 resposta

3

iotop é o que eu recomendaria primeiro. Você pode usar o sinalizador -o para ser mais preciso. Tenha em mente que se você estiver usando o CentOS e uma das versões mais recentes do kernel, você terá que editar a seção abaixo de /usr/lib/python2.7/site-packages/iotop/data.py :

def parse_proc_pid_status(pid):
    result_dict = {}
    try:
        for line in open('/proc/%d/status' % pid):
            if not line.strip(): continue
            key, value = line.split(':\t', 1)
            result_dict[key] = value.strip()
    except IOError:
        pass  # No such process

Adicione a linha que diz: if not line.strip(): continue .

Você também pode usar fuser para mostrar os processos que acessam um arquivo com:

fuser -v -m <file>

Ele simplesmente não mostra se o processo está sendo gravado ou não.

Você também pode usar lsof no próprio arquivo ou inserindo no grep para o nome do arquivo ou processo.

lsof /path/to/file
lsof | grep <filename>
lsof | grep <process>

Para obter exatamente o que você deseja, você precisará usar uma combinação, a menos que já conheça o arquivo que está sendo gravado e deseje ver o processo que está sendo gravado nele.

    
por 17.06.2018 / 16:41