No todos los entornos OpenWrt están configurados de la misma manera, por lo que mi respuesta es un tiro en la oscuridad ...
El resultado de ejemplo se toma de OpenWrt-12.09 en un "TP-Link TL-WDR4300".
ssh
en su enrutador.
Comprueba tus archivos
root@AP9:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 5184 2124 3060 41% /
/dev/root 2048 2048 0 100% /rom
tmpfs 63340 948 62392 1% /tmp
tmpfs 512 0 512 0% /dev
/dev/mtdblock3 5184 2124 3060 41% /overlay
overlayfs:/overlay 5184 2124 3060 41% /
/dev/sda1 31234700 593536 29075728 2% /mnt/sda1
/dev/sda1
es la tarjeta micro SD de mi dispositivo UMTS ... simplemente ignore esto.
Muchos enrutadores se actualizan de forma similar a la que se ve aquí: un sistema de archivos superpuestos hace que un sistema de archivos superpuestos pseudoescriba un sistema de archivos raíz de solo lectura.
Mira adentro /overlay
...
root@AP9:~# cd /overlay/usr/lib/opkg/info/
root@AP9:/overlay/usr/lib/opkg/info# ls *.list | tail -3
usb-modeswitch-data.list
usb-modeswitch.list
zlib.list
Este directorio contiene la información sobre paquetes instalados adicionalmente. Los archivos que terminan en .list
son listas de archivos instalados por el paquete con el mismo nombre (sin .list
):
root@AP9:/overlay/usr/lib/opkg/info# cat zlib.list
/usr/lib/libz.so.1.2.7
/usr/lib/libz.so.1
/usr/lib/libz.so
El paquete zlib
tiene 3 archivos instalados.
root@AP9:/overlay/usr/lib/opkg/info# du $(cat zlib.list)
71 /usr/lib/libz.so.1.2.7
1 /usr/lib/libz.so.1
1 /usr/lib/libz.so
El paquete zlib
tiene 73kbytes de archivos instalados.
Un crudo 1-liner para unir todo esto y su producción se acorta:
# awk 'BEGIN{D="cd /overlay/usr/lib/opkg/info&&";C=D"ls *.list";while(C|getline>0){P=substr(F=$1,1,length($1)-5);J=D"du -sk $(cat "F")";s=0;while(J|getline>0){s+=$1;t+=$1}close(J);print s"\t"P}print t"\t---TOTAL---"}'
26 blkid
30 block-mount
17 chat
55 comgt
6 kmod-fs-exportfs
(((...some lines skipped...)))
14 portmap
48 swap-utils
223 usb-modeswitch-data
45 usb-modeswitch
73 zlib
4184 ---TOTAL---
HTH!
Añadido 2014-10-17:
La siguiente salida se toma de OpenWrt-12.09 en un "TP-Link TL-WR703N" y muestra cómo agregar la clasificación de la salida por tamaño de paquete.
Echa un vistazo a dónde y cómo S
entra la variable en el juego ...
# awk 'BEGIN{D="cd /overlay/usr/lib/opkg/info&&";C=D"ls *.list";S="sort -n";while(C|getli
ne>0){P=substr(F=$1,1,length($1)-5);J=D"du -sk $(cat "F")";s=0;while(J|getline>0){s+=$1;t+=$1}close(J)
;print s"\t"P|S}close(S);print t"\t---TOTAL---"}'
5 kmod-lib-crc16
5 luci-proto-3g
12 libuuid
13 kmod-usb-serial-wwan
17 chat
24 kmod-usb-acm
24 libusb
26 blkid
30 block-mount
41 kmod-usb-serial
45 usb-modeswitch
48 kmod-usb-serial-option
48 swap-utils
55 comgt
67 kmod-usb-storage
148 libblkid
154 kmod-scsi-core
223 usb-modeswitch-data
382 kmod-fs-ext4
1367 ---TOTAL---
De nuevo: HTH!
Añadido 2018-01-13:
La forma anterior se probó en OpenWrt-AA.
Ahora mirando LEDE-17.01, una ruta ha cambiado: Reemplazar /overlay
con /overlay/upper
arreglos esto.
Status quo ( opkg-list-user-installed-sorted-by-size
no como 1-liner):
#!/usr/bin/awk -f
BEGIN {
D="cd /overlay/upper/usr/lib/opkg/info&&"
C=D"ls *.list"
S="sort -n"
while(C|getline>0) {
P=substr(F=$1,1,length($1)-5)
J=D"du -sk $(cat "F")"
s=0
while(J|getline>0) {
s+=$1
t+=$1
}
close(J)
print s"\t"P|S
}
close(S)
print t"\t---TOTAL---"
}
Prueba de funcionamiento:
root@zsun0:~# ./opkg-list-user-installed-sorted-by-size
8 luci-ssl
9 libustream-mbedtls
13 px5g-mbedtls
338 libmbedtls
368 ---TOTAL---
Pregunta abierta: ¿Cuándo sucedió este cambio en /overlay
la estructura de? LEDE-17 es el sucesor de OpenWrt-CC y no tengo sistemas que ejecuten OpenWrt a la mano. Entonces, si necesita esto en OpenWrt-BB o -CC, eche un vistazo /overlay
primero.