Din rațiuni precum documentare, monitorizare, depanare, informare statistică ne propunem să investigăm un sistem. Investigarea unui sistem presupune investigarea componentelor acestora, precum:
ps
, top
, time
, lsof
, strace
, /proc
ls -l
, file
, stat
, df
dpkg -l
, dpkg -L
, dpkg -S
, apt-file
, apt-cache
/etc/issue
, lsb_release
, uname
, /proc/cmdline
, /boot
/dev
, /proc/cpuinfo
, /proc/meminfo
, lscpu
, free
, uptime
, pidstat
, mpstat
, vmstat
, iostat
, iotop
, lspci
, lshw
, inxi
, lsusb
, dstat
, lsblk
, /dev
, /dev/disk/by-...
ip
, ip a s
, ip l s
, ip r s
, /etc/resolv.conf
, netstat
, ss
, vnstat
, iptraf
, nethogs
xxd
, hexdump
Investigarea proceselor cu strace
și time
. Văzut cum se folosește /proc
.
Căutarea de pachete ce conțin un fișier folosind apt-file
.
Căutarea în pachete folosind dpkg
.
Obținerea memoriei libere (doar a memoriei libere).
Aflarea adresei IP a sistemului.
Aflarea adresei IP publice a sistemului.
/dev
și faceți un long listing a conținutului: cd /dev/ ; ls -la
'c'
sau 'b'
(în loc de '-'
sau 'd'
)alexj@hathor /dev $ ls -la tty* crw--w---- 1 root tty 4, 0 Mar 16 18:27 tty0 crw-rw---- 1 root tty 4, 1 Mar 16 18:27 tty1 crw--w---- 1 root tty 4, 10 Mar 16 18:27 tty10 crw--w---- 1 root tty 4, 11 Mar 16 18:27 tty11 crw--w---- 1 root tty 4, 12 Mar 16 18:27 tty12 crw--w---- 1 root tty 4, 13 Mar 16 18:27 tty13 [...] alexj@hathor /dev $ ls -la [sh]d* brw-rw---- 1 root disk 8, 0 Mar 22 17:48 sda brw-rw---- 1 root disk 8, 1 Mar 16 18:27 sda1 brw-rw---- 1 root disk 8, 2 Mar 22 12:21 sda2 brw-rw---- 1 root disk 8, 5 Mar 16 18:27 sda5 brw-rw---- 1 root disk 8, 16 Mar 22 12:21 sdb brw-rw---- 1 root disk 8, 17 Mar 16 18:27 sdb1
/dev/random
cat /dev/random
cat
./dev/full
. echo "test">/dev/full
dd if=/dev/zero of=~/zeros bs=1KB count=1
/proc
, listați conținutul direcorului și observați fișierele și directoarele disponibile./proc/cpuinfo
, /proc/meminfo
, /proc/interrupts
și /proc/ioports
./proc
. Vizualizati apoi conținutul fișerelor din /proc
găsite. alexj@hathor ~ $ strace -e open uptime 2>&1 |grep "/proc" open("/proc/uptime", O_RDONLY) = 3 open("/proc/loadavg", O_RDONLY) = 4
/proc
corespunzător procesului bash în care sunteți și listați conținutul. cd /proc/$$; ls -la
status
cmdline
fd
hd
) sau SATA (adică cele al căror nume începe cu sd
) din sistem (Indiciu: /dev
, grep
).sda
./dev
, grep
, ^b
, cut
)./dev
, grep
, ^c
, cut
)./proc/devices
./etc/passwd
./proc
corespunzător.fd
sau lsof
).lsmod
pentru a lista modulele de nucleu inserate.strace
pe comanda precedentă, aflați din ce fișier din /proc
obține lsmod
informațiile.Afișați informații despre utilizarea resurselor sistemului:
nethogs
, iptraf
)
Pentru a afișa într-un format simplu informații despre monitorizarea sistemului puteți folosi utilitarul dstat
.
Afișați informații despre sistem precum:
hdparm
)
Din fișierul de aici dorim să extragem partea care începe de la offset-ul 0x13000
(în hexazecimal) până la sfârșit. Puneți conținutul într-un alt fișier. Afișați conținutul primilor 16 octeți din fișier în format hexazecimal; output-ul trebuie să fie de forma 0080 b67f 6a01 7900 1180 0000 b57f b57f
.
dd
. Folosiți opțiunea skip
a dd
.
Pentru că operați pe octeți, nu pe blocuri, va trebui să configurați pentru dd
dimensiunea blocului la 1
folosind opțiunea bs
.
Determinați următoarele informații despre sistem. Puteți folosi oricare dintre comenzile pe care le cunoașteți:
/etc/hostname
)/etc/issue
sau lsb_release
)Agregați informațiile/comenzile obținute mai sus într-un script care să aibă un output similar cu formatul de mai jos (nu trebuie să fie strict ca în exemplul de mai jos):
hostname: ... distribution: ... architecture type: ... kernel version: ... total memory: ... used memory: ... free memory: ... number of partitions: ... hard disk model: ... hard disk device: ... hard disk free space: ... NIC (Network Interface Card) model: ... graphics card model: ... monitor model: ...
Determinați pachetul care conține fișierul header gdk.h
. Hint: Puteți căuta după șirul /gdk.h
ca să căutați pachetele care conțin fix fișierul gdk.h
.
Listați pachetele din repository care încep cu șirul "di"
. Indiciu: Folosiți apt-cache pkgnames
.
Din ce pachet face parte utilitarul ifconfig
?
Ce executabile sunt conținute în pachetul sysstat
? Dar în pachetul coreutils
? Indiciu: Executabilele sunt cele care se găsesc într-un director care se termină în bin/
.
Folosiți utilitarele iostat
, pidstat
și mpstat
pentru a monitoriza informații despre sistem. Realizați rulări care:
$$
).
Pentru a rula un întreg sistem sub ARM folosiți comanda qemu-system-arm
și indicațiile de aici. Pentru a descărca acele imagini (filesystem, kernel, initial ramdisk) mai rapid, folosiți resursele de aici.
root
cu parola root
.
Pentru a afla informații despre mașina virtuală proaspăt pornită rulați comanda
uname -a
ping
pe mașina virtuală, dar merge wget
sau alte comenzi care au de-a face cu accesul la Internet.
Pentru a copia programul compilat static anterior urmăriți indicațiile legate de folosirea SSH pentru copiere (opțiunea -redir tcp:2222::22
la qemu-system-arm
).
vim
pe mașina virtuală QEMU de ARM.
Pentru aceasta va trebui să editați fișierul /etc/apt/sources.list
și să folosiți URL-uri de forma archive.debian.org
în loc de ftp.debian.org
. Comentați liniile finale care conțin șirul squeeze-updates
(cu -
, adică minus
).