Nicht jede OpenWrt-Umgebung ist auf die gleiche Weise eingerichtet, daher ist meine Antwort ein Schuss in die Dunkelheit ...
Die Beispielausgabe stammt von OpenWrt-12.09 auf einem "TP-Link TL-WDR4300".
ssh
in Ihren Router.
Überprüfen Sie Ihre filesytsems.
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
ist die micro SD Karte meines UMTS Sticks ... einfach ignorieren.
Viele Router werden auf ähnliche Weise wie hier dargestellt geflasht: Ein schreibgeschütztes Root-Dateisystem wird durch ein Overlay-Dateisystem pseudobeschreibbar gemacht.
Schau rein /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
Dieses Verzeichnis enthält die Informationen zu zusätzlich installierten Paketen. Die Dateien, die mit enden, .list
sind Listen von Dateien, die vom Paket mit dem ähnlichen Namen (ohne .list
) installiert wurden :
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
Paket zlib
hat 3 Dateien installiert.
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
Das Paket zlib
enthält 73 KB installierte Dateien.
Ein roher 1-Liner, der alles zusammenklebt und die Ausgabe verkürzt:
# 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!
Hinzugefügt am 17.10.2014:
Die folgende Ausgabe stammt aus OpenWrt-12.09 auf einem "TP-Link TL-WR703N" und zeigt, wie die Ausgabe nach Paketgröße sortiert wird.
Schauen Sie sich an, wo und wie die Variable S
ins Spiel kommt ...
# 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---
Nochmals: HTH!
Hinzugefügt am 13.01.2018:
Der obige Weg wurde mit OpenWrt-AA getestet.
Bei LEDE-17.01 hat sich ein Pfad geändert: Ersetzen /overlay
durch /overlay/upper
behebt diesen Fehler.
Status quo ( opkg-list-user-installed-sorted-by-size
nicht als 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---"
}
Testlauf:
root@zsun0:~# ./opkg-list-user-installed-sorted-by-size
8 luci-ssl
9 libustream-mbedtls
13 px5g-mbedtls
338 libmbedtls
368 ---TOTAL---
Offene Frage: Wann ist diese /overlay
Strukturänderung eingetreten? LEDE-17 ist der Nachfolger von OpenWrt-CC und ich habe keine OpenWrt-Systeme zur Hand. Wenn Sie dies für OpenWrt-BB oder -CC benötigen, schauen Sie /overlay
zuerst hinein.