من برای کامپیوتر، لپتاپ یا سرور نیاز به اطلاعاتی در مورد سختافزار آن دارم. همچنین این اطلاعات در هنگامی که شما مجبور به تعویض دیسک، RAM یا … به واسطهی یک فروشنده نه چندان مطمئن هستید میتواند مفید واقع شود. جهت تعویض سختافزاری از سیستم خود نیاز دارید که همه اطلاعات لازم را در اختیار داشته باشید. در این مطلب، من قصد دارم تا همه دستورات خط فرمانی که میتواند به جمعآوری اطلاعات در مورد سختافزار شما بر روی یک سیستم کمک نماید را توضیح دهم.
همه دستورات زیر بر روی سیستم اوبونتو ۱۴.۰۴ اجرا گردیدهاند، ولی به هر حال بایستی روی اکثر توزیعهای بروز مانند دبیان یا فدورا نیز عمل نمایند.
پیدا کردن نام سیستم
شما میتوانید از یکی از دو دستور زیر جهت نمایش نام سیستم بهره ببرید:
$ hostname $ cat /etc/hostname salamdonya
نمایش نام دامنه سیستم دیاناس:
$ dnsdomainname salam-donya.com
نمایش Fully Qualified Domain Name (FQDN) سیستم:
$ hostname -f server1.salam-donya.com
نمایش شماره سریال سیستم و سازنده سیستم و مدل آن
$ sudo dmidecode -s system-serial-number $ sudo dmidecode -s system-manufacturer $ sudo dmidecode -s system-product-name $ sudo dmidecode | more
یا میتوانید از دستور lshw استفاده نمایید:
# lshw | more $ sudo lshw -short
نمایش اطلاعاتی در مورد سختافزار نصب شده
$ sudo lsdev
نمایش اطلاعات مربوط به پردازنده (CPU) سیستم
$ cat /proc/cpuinfo
یا استفاده از دستور زیر:
$ lscpu
نمایش دادههای آماری مربوط به پردازنده (CPU)
$ sudo mpstat $ sudo mpstat 1 $ sudo mpstat -A
نمایش اطلاعات مربوط به حافظه اصلی (RAM) سیستم
نمایش دادههای آماری مربوط به استفاده حافظه در سیستم، شامل کل حافظه نصب شده و میزان استفاده شده از آن:
$ less /proc/meminfo
نمایش میزان حافظه (RAM) آزاد و استفاده شده در سیستم:
free ## نمایش مقدار با واحد مگابایت ## free -m ## نمایش مقدار با واحد گیگابایت ## free -g ## نمایش مقدار با واحد ترابایت ## free --tera ## نمایش مقدار به صورتی که خوانایی آن راحتتر باشد ## free -h
نمایش میزان استفاده از فضای swap سیستم
از یکی از دستورات زیر میتوان استفاده نمود:
$ swapon -s $ cat /proc/swaps $ cat /proc/meminfo $ top $ vmstat $ for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less $ smem
نمایش اطلاعات آماری حافظه مجازی سیستم:
$ sudo vmstat $ sudo vmstat 1 $ sudo vmstat 2
نمایش اطلاعات مربوط به نسخه توزیع اوبونتو و اطلاعات مربوطه
$ lsb_release -a
نمایش نسخه هسته (کرنل) سیستم
$ uname -r
یا استفاده از دستور زیر:
$ uname -a
نمایش پارامترهای هسته (کرنل) سیستم
$ cat /proc/cmdline $ sysctl -a | more
نمایش ۳۲ یا ۶۴بیتی بودن معماری هسته (کرنل) سیستم
استفاده یکی از سه دستور زیر:
$ uname -m $ getconf LONG_BIT $ arch
نمایش اطلاعات مربوط به حافظههای جانبی (هارد) سیستم
نمایش اطلاعات همه دیسکهای نصب شده و مقدار آنها:
# fdisk -l | grep '^Disk /dev'
نمایش همه پارتیشنهای دیسک dev/sda/ :
جهت نمایش اطلاعات دیسکی که لیبل آن به صورت dev/sda/ میباشد:
# fdisk -l /dev/sda
برای اختصاص لیبل (نام) به یک دیسک:
$ sudo fdisk /dev/sda $ sudo e2label /dev/sda1 $ sudo cfdisk /dev/sda
نمایش خصوصیتهای بلاکهای حافظه:
# blkid
نمایش لیست کامل بلاکهای حافظه:
# lsblk
نمایش میزان دیسک استفاده شده در سیستمفایل:
$ df $ df -H $ df -HT
نمایش میزان حجم اشغال شده توسط فایلها / فولدرها:
$ du $ du /home
نمایش فایلسیستمهای متصل (مونت) شده در سیستم:
## استفاده یکی از دستورات زیر ## $ cat /proc/mount $ mount
نمایش دستگاههای اسکازی (SCSI) و خصوصیات آن در لینوکس:
$ lsscsi
نمایش وضعیت ورودی/خروجی
$ sudo iostat $ sudo iostat 2
نمایش اطلاعات مربوط به سختافزارهای متصل شده توسط PCI به سیستم
$ lspci $ lspci -vt $ lspci | grep -i 'something' $ lspci -vvvn| less
نمایش اطلاعات مربوط به دستگاههای متصل شده توسط رابط USB به سیستم
$ lsusb $ lsusb -vt
نمایش اطلاعات مربوط دستگاههای متصل شده به صورت بیسیم
$ iwconfig $ watch -n 1 cat /proc/net/wireless $ wavemon
نمایش اطلاعات مربوط به کارت گرافیکی یا VGA سیستم
$ lspci | grep -i vga $ lspci -vvnn | grep VGA
یا استفاده از دستور زیر:
$ sudo lshw -class display
نمایش اطلاعات مربوط به کارت گرافیک NVIDIA
دستورات زیر فقط با درایور لینوکسی باینری شرکت Nvidia کار میکند:
$ nvidia-smi
یا استفاده از دستور زیر:
$ nvidia-settings
نمایش اطلاعات مربوط به کارت گرافیک AMD/ATI
دستورات زیر فقط با درایور لینوکسی باینری AMD موسوم به catalyst کار میکند:
$ fglrxinfo
نمایش نسخه یونیتی (Unity) در حال اجرا بر روی سیستم
$ unity --version
نمایش اطلاعات مربوط به دستگاههای صوتی سیستم
$ lspci | grep -i audio
یا استفاده از دستور زیر:
$ cat /proc/asound/cards
یا دستور زیر:
$ arecord -l
نمایش اطلاعات مربوط به باطری سیستم / لپتاپ و دما
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0 $ acpi -V
نمایش میزان زمان روشن بودن سیستم
$ uptime $ who $ w
نمایش میزان load پردازنده سیستم
## استفاده یکی از دستورات زیر ## $ uptime $ cat /proc/loadavg $ sudo top $ sudo htop $ sudo atop
نمایش تاریخچه راهاندازی مجدد و خاموش نمودن سیستم
$ last reboot $ last shutdown
نمایش runlevel سیستمی که درحال کار با آن هستید
$ runlevel $ who -r
نمایش پیغامهای هسته (کرنل) در هنگام بالا آمدن سیستم
از دستورات زیر جهت مشاهده پیغامهای سیستم در هنگام راهاندازی (بوت شدن) که دربردارندهی مشخصات سختافزاری نیست هست استفاده نمایید:
$ sudo less /var/log/dmesg $ sudo grep 'regx' /var/log/dmesg $ sudo grep '[h|s]d' /var/log/dmesg
نمایش درایورها (ماژولهای) سیستم
$ sudo lsmod $ sudo modinfo {driver_name} $ sudo modinfo kvm
مشاهده آیپی سیستم و اطلاعات مربوطه
شما نیاز دارید تا از دستور ip به صورت زیر استفاده نماید:
## اطلاعات مربوط به رابطهای شبکه، بایستی به عنوان کاربر ریشه توسط دستور sudo اجرا گردد ## sudo ip a sudo ip sudo ip link ls up sudo ifconfig -a ## نمایش اطلاعات مختص رابط شبکه eth0 ## sudo ip a show eth0 sudo ifconfig eth0
نمایش جدول مسیریابی شبکه سیستم
## میتوانید هر یک از دستورات زیر را استفاده نمایید ## ## بایستی به صورت کاربر ریشه (روت) اجرا گردد ## sudo ip r sudo route -n sudo netstat -nr
نمایش ethernet bridgeهای سیستم
$ sudo brctl show $ sudo bridge link
نمایش اطلاعات دیاناس سرور و اطلاعات مربوطه در سیستم
نمایش آیپی دیاناس سرور (آیپی آیاسپی یا دیاناس سرور بایستی در این فایل لیست شده باشد):
# cat /etc/resolv.conf
نمایش فایل تنظیمات system resolver. دربردارندهی اطلاعات مفیدی در مورد آنکه چگونه host loookups عمل میکند:
# cat /etc/host.conf
از دو فایل بالا جهت تنظیم آنکه جستجو کنندهی دامنه چگونه عمل نماید، استفاده نمایید.
نمایش اطلاعاتی در مورد پورتها و سوکتهای سیستم
## بایستی به صورت ریشه اجرا گردد، توسط sudo ## sudo ss ## نمایش تمامی پورتهایی که آماده دریافت هستند ## sudo ss -l sudo netstat -tulpn sudo netstat -tulpn | grep LISTEN ## نمایش کلیه سوکتهای TCP sudo ss -t -a ## نمایش کلیه سوکتهای UDP sudo ss -u -a ## نمایش کلیه فایلهای باز lsof | more lsof | grep something lsof /dev/sda2 lsof /path/to/file
نمایش کلیه سرویسهای در حال اجرا
### SYS V ### $ sudo service --status-all
یا استفاده از دستور زیر:
## UPSTART ## $ sudo initctl list
فهمیدن فعال بودن یک سرویس:
## UPSTART ## $ sudo initctl status service-name $ sudo initctl status smbd
یا استفاده از دستور زیر:
## SYS V $ sudo service serviceName status $ sudo service nginx status
نمایش فایلهای لاگ (رخداد)
$ cd /var/log $ ls -l $ tail -f /var/log/fileName $ grep 'something' /var/log/fileNameHere
پیدا کردن فایل بر اساس نام
$ locate fileName $ locate htpasswd $ locate passwd $ locate my.resume.doc
پیدا کردن فایل با شرایط تعیین شده
$ find {/dir/to/search} -name {file-to-search} -print $ find /etc/ -name /etc/passwd -print $ find $HOME -name '*.doc' -print
نمایش جزئیات حساب کاربر(ان)
$ less /etc/passwd $ grep userName /etc/passwd $ getent passwd
نمایش جزئیات گروه(های) کاربری
$ less /etc/group $ getent group $ grep group-name /etc/group $ groups userName
تنظیمات و تغییرات رمز عبور کاربران
$ chage -l userName $ chage -l root $ chage -l vivek
نمایش اطلاعات استفاده از منابع سیستم
$ sudo top $ sudo htop $ sudo atop $ sudo ps auxwww $ sudo netstat [options] $ sudo iostat $ sudo mpstat 1 $ sudo sar [options]
ردگیری فراخوانهای سیستمی (system call)
$ strace -o output.txt /bin/foo $ strace -p 22254 -s 80 -o debug.nginx.txt
ردگیری فراخوان کتابخانهها (library)
$ sudo ltrace /usr/sbin/httpd $ sudo ltrace /sbin/chroot /usr/sbin/httpd
نمایش اطلاعات مربوط به پردازش در سیستم
$ sudo pstree $ sudo pstree | less $ sudo ps auxwwwm $ ps alxwww $ ps auxwww $ lsof -b M -n -l
تغییر اولویتبندی پردازشی
$ sudo /bin/nice -n -1 command-name-here $ sudo /bin/nice -n -1 pid $ sudo renice {priority} pid
نمایش وابستگیهای پردازشی در پردازنده
$ sudo taskset -p {pid-here} $ sudo taskset -p 42
نمایش کلیه بستههای نرمافزاری نصب شده بر روی سیستم
$ dpkg -l $ dpkg -l | less $ dpkg -l nginx
نمایش کلیه پچهای نصب شده بر روی سیستم
$ sudo apt-show-versions -a | grep -i "security"
نمایش لیست تمام کتابخانههای (library) مورد نیاز در هنگام اجرای یک فایل خاص
$ ldd file
نمایش آن که یک فایل خاص به کدام بسته نرمافزاری مرتبط است
$ dpkg -S /path/to/file $ dpkg -S /bin/ls
تهیه یک فایل پشتیبان از کلیه بستههای نرمافزاری نصب شده
$ sudo dpkg --get-selections > /root/installed.pkgs.txt
و پس از آن جهت نصب بستههای نرمافزاری از طریق فایل ایجاد شده:
$ sudo dpkg --set-selections < /root/installed.pkgs.txt
نمایش تنظیمات دیواره آتش (فایروال) سیستم
$ sudo iptables -L -n -v $ sudo ufw status numbered $ sudo ufw status verbose $ sudo ufw app list
حتما نگاهی هم به صفحات راهنما (man page) دستوراتی که در مقاله معرفی نمودهایم، بپردازید:
$ man dpkg $ man htop $ man ...
در نهایت، یک پشتیبان از اطلاعات خود داشته باشید. بیان این که داشتن پشتیبان چقدر مهم است از پس این کلمات بر نمیآید. این که یک برنامه مدون جهت تهیه پشتیبان داشته باشید به شما اجازه میدهد تا از خطاهای دیسک، پاک نمودنهای اشتباهی فایلها، خراب شدن فایلها، خراب شدن کامل سرور و ... جان سالم به در ببرید.
منبع: سایبرسیتی