Buscar

VMWare: ESXi BusyBox

En muchas ocasiones ya hemos tenido la necesidad de trabajar con la shell de ESXi para realizar distintas tareas administrativas.

En este blog ya hemos visto algunos ejemplos:


Sin embargo, al trabajar con la shell de ESXi, nos damos cuenta que comandos Unix/Linux como cat, grep, find, date, entre otros, funcionan.

En cambio otros comandos del mundo Unix/Linux, no funcionan.

Lo cierto es que VMWare ESXi incorpora comandos para su administración que solo encontraremos en VMWare ESXi: como esxcli o esxtop, pero otro lado encontraremos otros comandos enmarcados dentro del binario BusyBox.

BusyBox es un pequeño binario que contiene una serie de comandos Unix/Linux para que puedan ser ejecutados en distintos sistemas, como sistemas empotrados o en este caso, VMWare ESXi.

La licencia de uso de BusyBox es software libre: GNU.

Es importante entender: Que la licencia de uso de BusyBox sea libre, no significa que los sistemas donde encontremos BusyBox también lo sean.

Por ejemplo, encontramos BusyBox sobre un sistema propietario como VMWare ESXi con kernel propio: VMKernel.

Podemos encontrar más información sobre BusyBox en:

BusyBox (Wikipedia.org) 

y una demostración en vivo en el sitio oficial de BusyBox:

Javascript PC Emulator (BusyBox.net)

Los hosts ESXi incoporan una versión de  BusyBox compilada por VMWare: 

~ # ls -lFh /usr/lib/vmware/busybox/bin/busybox
-r-xr-xr-x    1 root     root      422.9K Sep 19  2013


La versión compilada de BusyBox que utiliza VMWare en los hosts ESXi es de tamaño muy reducido.

Si ejecutamos: /usr/lib/vmware/busybox/bin/busybox veremos las herramientas de contiene:

Busybox ESXi

Si hemos trabajado con sistemas Linux/Unix, la mayoría de las herramientas que contiene BusyBox nos resultarán familiares.

Hemos de tener en cuenta que la funcionalidad de todas estas herramientas, no es la misma que en sistemas Unix/Linux: La funcionalidad de estos comandos de BusyBox es mucho más reducida.

Pensemos que el tamaño del binario de BusyBox es también muy reducido e integra múltiples comandos.

A modo de ejemplo, podemos comparar los parámetros que admite el comando wget de Unix/Linux (amarillo) y wget de BusyBox (rojo):


Wget en Linux VS Wget en Busybox


Veamos algunos ejemplos de utilidades prácticas de estos comandos sobre VMWare ESXi:

*) ls, cp, mv, cd, find etc: 

Los comandos básicos relacionados con la administración de ficheros, acostumbran a ser los más útiles.

Por ejemplo, ejecutando:  ls -lFh /dev/disks vemos los discos y particiones:

Vista de discos utilizando ls

Otro ejemplo, la búsqueda de todos los ficheros VMDK en todos los datatores a los que conecta el host ESXi:

find ./ -name *.vmdk

y si queremos ver su tamaño:

find ./ -name *.vmdk -exec ls -lh {} \;


Nombre, ruta, tamaño de los VMDK


También con cp (comando para copiar), podemos hacer una copia de seguridad de ficheros de configuración VMX, etc..

*) Crons: 

Los crons, son como las tareas programadas de Windows pero para sistemas Unix/Linux. El nombre del servicio es crond.

Ver tabla de crons:

cat /var/spool/cron/crontabs/root
#min hour day mon dow command
1    1    *   *   *   /sbin/tmpwatch.py
1    *    *   *   *   /sbin/auto-backup.sh
0    *    *   *   *   /usr/lib/vmware/vmksummary/log-heartbeat.py
*/5  *    *   *   *   /sbin/hostd-probe ++group=host/vim/vmvisor/hostd-probe


* La nomenclatura de la tabla es la misma que en sistemas Unix/Linux.

Ver ID de proceso asociado al servicio de crond:

cat /var/run/crond.pid
33556


Enviar un kill al proceso de crond: 

/bin/kill $(cat /var/run/crond.pid)

Iniciar el servicio crond:


/usr/lib/vmware/busybox/bin/busybox crond 

*) wget:

Con wget podemos descargar ficheros utilizando el protocolo http o https.

Por ejemplo, podríamos descargar una ISO directamente en el datastore:


Wget de busybox, descargar ISO en el Datastore


Otro ejemplo de uso de comandos de BusyBox lo encontramos en el siguiente post: 

VMWare: esxi kill vm (SYSADMIT.com) 

En el método 3, para realizar un kill de una VM: "KILL de la VM utilizando el comando kill" los comandos: ps, grep, kill son comandos que encontramos dentro de BusyBox.




No hay comentarios:

Publicar un comentario