xin được cười cái title một cái đã =))
Busybox là một software, nó tập hợp nhiều UNIX utilities (các câu lệnh) thành một file duy nhất.Các câu lệnh cung cấp bởi busybox thường tương đương với các câu lệnh cung cấp bởi GNU nhưng có ít option hơn.
Cài đặt:
$ sudo apt-get install -y busyboxHỏi nào:
$ whatis busybox
busybox (1) - The Swiss Army Knife of Embedded Linux
Chạy lệnh ``du`` cung cấp bởi busybox
$ busybox du --help
BusyBox v1.25.0 (2016-06-23 20:12:29 UTC) multi-call binary.
Usage: du [-aHLdclsxhmk] [FILE]...
Summarize disk space used for each FILE and/or directory
-a Show file sizes too
-L Follow all symlinks
-H Follow symlinks on command line
-d N Limit output to directories (and files with -a) of depth < N
-c Show grand total
-l Count sizes many times if hard linked
-s Display only a total for each argument
-x Skip directories on different filesystems
-h Sizes in human readable format (e.g., 1K 243M 2G)
-m Sizes in megabytes
-k Sizes in kilobytes (default)
So với GNU ``du`` trên Ubuntu 14.04:
$ du --help | wc -lbusybox được viết nhằm tối ưu về kích thước, thích hợp cho các hệ thống nhúng. Nó chỉ nặng chưa đến 1 MB:
61
/ # du -h /bin/busyboxNhưng chứa đầy đủ các câu lệnh thường dùng:
988.0K /bin/busybox
/ # find /bin | wc -lChạy busybox --help để xem đầy đủ các câu lệnh nó hỗ trợ.
371
Sử dụng Docker, ta có thể chạy ngay một container sử dụng busybox:
$ docker run -it --rm busyboxToàn bộ trong image này chỉ có hơn 9000 file
/ # busybox
BusyBox v1.25.0 (2016-06-23 20:12:29 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.
...
/ # find / | wc -lNếu bỏ đi các file cần thiết của kernel và hệ thống sinh ra khi chạy thì còn lại:
9342
/ # find / -not -path '/dev*' -not -path '/sys*' -not -path '/proc*' | wc -lBỏ qua các file /bin sinh ra bởi busybox, ta còn lại 21 file/directory thiết yếu:
392
/ # find / -not -path '/dev*' -not -path '/sys*' -not -path '/proc*' -not -path '/bin*' | wc -lTrong đó chỉ có 9 file:
21
/ # find / -not -path '/dev*' -not -path '/sys*' -not -path '/proc*' -not -path '/bin*' -type f | wc -lfile /.dockerenv luôn tồn tại trong các docker container. Ở đây, file này trống:
9
/ # find / -not -path '/dev*' -not -path '/sys*' -not -path '/proc*' -not -path '/bin*' -type f
/root/.ash_history
/.dockerenv
/etc/hosts
/etc/resolv.conf
/etc/hostname
/etc/localtime
/etc/group
/etc/passwd
/etc/shadow
/ # wc -l /.dockerenvCác file còn lại trong /etc là các file cấu hình thiết yếu của hệ thống.
0 /.dockerenv
Image busybox rất nhẹ, thích hợp làm base image cho các image khác:
$ docker images | grep busybox
busybox latest 2b8fd9751c4c 4 weeks ago 1.093 MB
Hết.
Tham khảo:
Credit:
Image by http://www.swisstool.co.uk/st/handyman-red-swiss-army-knife/
HVN @ FAMILUG DOT ORG
No comments:
Post a Comment