Визуализация необработанных битов disk

Observium поддерживает только distro extend oid node, ни другие.

Ваше расширение SNMP-агента работает как ожидалось, и вы можете проверить это, пройдя вручную по purpose oid узлу.

Observium Poller может быть расширен для опроса дополнительных значений, например, посмотрите, как используется узел "distro" в ./includes/polling/os/unix.inc.php

1
05.03.2018, 02:38
2 ответа

Sparklines puede ayudar... primero obtengasparkutil e instale elmostvisor de texto .

  1. Este truco muestra una vista abstracta de los primeros 61 sectores de /dev/sda:

    for f in `seq 0 1 60` ; do :
        printf "%.03i %s\n" $f \
            $({   printf '4294967295\n'
                  sudo dd if=/dev/sda skip=$f bs=512 count=1 2> /dev/null |
                  od -v -A n -t uI ; } | 
               spark | sed 's/^.//' )
    done | most
    

    Salida en mi sistema (primeras dos líneas abreviadas):

    000 ▁▁▁▃▆▆▁▁▄▇▂▆▁▁▆▁▁▁▄▄▄▁...
    001 ▁▆▃▇▂▁▁▁▄▃▆▂▄▂▁▁▁▁▁▁▁▂...
    

    Cada fila representa un sector de disco. Las líneas cortas son números pequeños, las líneas altas son números grandes. Cada minigráfico aquí representa un entero sin signo, (4 bytes ), que es relativamente compacto. Si se no cabe todo en la pantalla en most, utilice la derecha y la izquierda flechas para desplazarse hacia los lados.

    Para ver cómo se ven los datos vacíos, reemplace el /dev/sdacon /dev/zero.

    El código anterior se puede usar para escanear un disco, simplemente cambiando el seqvalores. Utilice sudo hdparm -i /dev/sda | grep CurCHSpara obtener el cilindro (pistas ), cabezas y números de sector, que en mi sistema devoluciones:

    CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
    

    Esto significa que cada 16383er sector es el primer sector de un (virtual )pista. Para un disco en su mayoría en blanco, estos mostrarían dónde está el se acaban los datos.

    Cambiar el seqanterior a seq 0 16383 $((16383*60))mostraría los primeros sectores de las primeras 61 pistas del disco.

    Para hacer que el minigráfico muestre solo 1 byte por carácter, cambie 4294967295a 255, y uIa uC.


    Notas sobre cómo funciona el código:

    ddenvía un sector de datos de 512 bytes a odque genera enteros sin signo, que es el número más grande que sparkentiende.

    sparkusa alturas relativas calculadas a partir de la entrada, (prueba spark <<< '1 2 3 4'para ver cómo funciona ), lo que significa que a menos que haya un número máximo principal, las diferentes líneas podrían ser diferentes escamas. Para evitar las diferentes escalas engañosas, printfse utiliza para anteponga el máximo correcto que hace que sparkuse uno consistente escama, pero deja un primer char alto no deseado,que es mas tarde eliminado con sed.


  2. Una técnica similar puede mostrar una visión general borrosa de la densidad de datos de un disco o partición. En lugar de abstraer una pocos bytes en un carácter de chispa, extraiga una muestra de bloques , o más bien las relaciones de compresión relativas de una muestra de bloques.

    Se requieren dos útiles más :pigz, (para la mayoría sin encabezado zlib compresión )ypv. pves realmente opcional, pero una barra de progreso hace que la espera sea menos tediosa.

    El código:

    d=sda b=512 c=1 m=$(( (512*$(</sys/block/${d/s???*/${d%%[0-9]*}/$d}/size))/b )) \
    s=200 i=$((m/s)) ; \
    for ((f=0;f<m;f+=i)) ; do 
       sudo dd if=/dev/${d} skip=$f bs=$b count=$c 2> /dev/null | 
       pigz -9z | 
       wc -c
    done | pv -l -s $s -i "0.1" \
              -F 'Read %b of '"$((s+1)) $((b*c))-byte"' blocks %p%e' | 
    spark
    

    Salida (en mi HD):

    Read  201  of 201 512-byte blocks [=====================================>] 100%
    ▇███▁█▂██▃█▆▂▂██▃▆███▆█▅▁█████▇▂▇▂▁▇▂▂▂▆▄█▃▅█▁▄█▃▅▅▅▃▃▂▅
    ▃▂█▆▅▇▁▅▃▆▄▁█▃▇▁▁▂▂▅█████▇█████████▆█████████▅█▁████████
    ███████████████████████▆███████▆██▃███████▁████████▂███▂
    ▁▁▁▁▂▂▂▂██████████▁█▁▁▅▃▁▃█▂▅▄▅▁▁
    

    El disco duro $destá dividido en 200($s)partes, y la primera el bloque de cada parte se comprime con pigz, se canaliza a wcpor un byte count, y la lista resultante de números se envía a spark.

    Los 200 sparkcaracteres representan las densidades de datos de 200 512 bytes bloques de muestra. Los caracteres rellenos -son ​​bloques con datos densos que no se comprimirán, los caracteres más cortos son datos dispersos que es bastante comprimible.

    Establezca s=2000para una vista más significativa. Las variables están todas en el principio, y se puede ajustar como se desee. Aumente$b(pero de la forma 512 *2^n solo )o $cpara leer muestras más grandes. Es interesante que aumentar los tamaños de muestra (leyendo un bloque 8K en lugar de 512 byte uno )generalmente dibuja un minigráfico muy similar, lo que implica un 512 byte bloque es lo suficientemente bueno...

1
27.01.2020, 23:32

dd if=/dev/sda | hd | less

Eso generará todo el contenido del disco en hexadecimal, una pantalla completa a la vez. Las ejecuciones largas de la misma secuencia byte se anotarán y omitirán.

1
27.01.2020, 23:32

Теги

Похожие вопросы