پنجشنبه, ۱۱ خرداد, ۱۴۰۲ / 1 June, 2023
مجله ویستا
آشنایی با procfs

● فایل سیستم مجازی
فایلهای و دایرکتوریهای موجود در شاخه proc/ مجازی هستند زیرا اطلاعات موجود در آنها در ابزارهای ذخیره سازی دائمی مانند دیسکهای سخت ذخیره نمیشوند، در مقابل تماما در حافظه RAM قرار میگیرند.
● اتصال proc
برای دیدن اینکه آیا فایل سیستم proc هم اکنون بــر روی سیستم شما متــصل میباشد یا خیر میتوانید از دستورات mount یا grep proc /etc/mtab استفاده کنید. در صورتی که کتصل نیست از دســتور mount بـــرای اتصال آن اسـتفاده کنید:
# mount -t proc proc /proc
● اطلاعات پروسهها
هـــر پروسه یــک ورودی در شاخه proc/ دارد که با شماره PID آن مشخص میشوند.
▪ برخی از فایلهای مهم موجود در این فایل سیستم عبارتند از:
- pid/cmdline:
شماره پروسه/فرمان که فرمانی است که پروسه خاصی بواسطه آن اجرا شده است.
- pid/cwd:
حاوی لینکی به شاخه فعلی پروسه در حال اجراست.
- pid/environ:
حاوی لیستی از متغییرهای محیطی پروسه است.
- pid/exe:
حاوی لینکی به برنامهای است که پروسه را اجرا کرده است.
- /pid/fd:
حاوی لینکهایی به تمامی فایلهایی است که یک پروسه در حال حاضر آنها را باز کرده است.
- pid/mem:
حاوی محتویات حافظه اشغالی توسط پروسه است.
- pid/stat:
حاوی اطلاعات وضعیت پروسه است.
- pid/statm:
حاوی اطلاعات مصرف حافظه پروسه است.
▪ چند مثال برای دریافت اطلاعات پروسهها
۱) برای پیدا کردن فایلهای ورودی استفاده شده توسط یک پروسه خاص از دستور زیر استفاده کنید:
$ ls -l /proc/[pid]/fd/۰
توجه داشته باشید که بجای [pid] باید شماره پروسه مورد نظرتان را وارد کنید.
۲) برای پیدا کردن سوکتهای مورد استفاده توسط یک پروسه دستور زیر را وارد کنید:
# ls -l /proc/[pid]/fd|sed -n /socket/{s/.*[//;s/]//p}#
اطلاعات مربوط به این سوکتها را میتوانید با استفاده از دستور netstat -ae بدست آورید. ۳) برای دریافت آرگومانهای خط فرمان ارسال شده به یک پروسه دستور زیر را وارد کنید:
$ cat /proc/[pid]/cmdline
۴) برای دریافت پروسه والد یک پروسه از دستور زیر استفاده کنید:
$ grep PPid /proc/[pid]/status
● اطلاعات عمومی سیستم
فایل سیستم procfs حـاوی مقدار زیادی اطلاعات در مورد سیستم است. مانند بار پردازشگر، پیکربندی فایل سیستمها و شبکه و... در زیر مثالهایی برای دریافت این اطلاعات و تغییر آنها ارائه شده است.
۱) برای دریافت میزان حافظه آزاد سیستم از دستور زیر استفاده کنید:
$ grep Free /proc/meminfo
۲) اطلاعات آمــاری سیستم از زمــان آخرین راهانــدازی در فایـــل proc/stst/ قـــرار دارند. بــرای دیدن تعداد پروسهای که سیستم از زمان آخرین بوت داشته است، از دستور زیر استفاده کنید:
$ grep processes /proc/stat
۳) برای دیدن میزان بار سیستم در ۱، ۵ و ۱۵ دقیقه گذشته دستور زیر را وارد کنید:
$ awk ۰۳۹;{print "۱ min: " $۱ "
۵ min: " $۲ "
۱۵ min: " $۳ }# /proc/loadavg
۴) اطلاعات پارتیشنهای سیستم در فایل proc/partitions/ قرار دارد.
$ cat /proc/partition
۵) فایلهای proc/net/ و proc/sys/net/ را میتوانید برای نمایش و یـــا تغییر اطــلاعات مــهم شبکه استفاده کنید. برای مثال برای غیر فعال کردن ping دستور زیر را در حالت ریشه وارد کنید:
# echo ۱ > /proc/sys/net/ipv۴/icmp_echo_ignore_all
یا برای فعال کردن IP Forwarding و IP Masquerading دستور زیر را در حالت کاربر ریشه وارد کنید:
#echo ۱ > /proc/sys/net/ipv۴/ip_forward
۶) فایل سیستمهای متصل به سیستم را میتوانید از proc/mounts بدست آورید:
$cat /proc/mounts
۷) برای تغییر بلادرنگ نام میزبان، دستور زیر را وارد کنید:
#echo memphis > /proc/sys/kernel/hostname
۸) برای دریافت اطلاعات CPU کامپیوتر، دستور زیر را وارد کنید:
$cat /proc/cpuinfo
۹) برای دیدن مقدار فضای مصرف شده Swap از دستور زیر استفاده کنید:
$cat /proc/swaps
۱۰) برای دیدن مدت زمانی که سیستم در حال اجراست، پس از آخرین بوت:
$cat /proc/uptime
۱۱) برای نمایش منابع به اشتراک گذاشته شده به واسطه NFS:
$cat /proc/fs/nfsd/exports
● مقداری اطلاعات از هسته
۱)برای نمایش شماره نسخه هستهای که در حال اجراست:
$cat /proc/version
۲) فایل proc/kmsg/ توسط دایمن klogd برای منبع اطلاعات ثبتی استفاده میشود.
۳) فایل proc/kcore/ دسترسی به حافظه فیزیکی سیستم را فــراهــم میسازد. آنرا میتوانید با استفاده از gdb برای بررسی وضعیت ساختار هریک از دادههای موجود در هسته استفاده کنید.
● برای اطلاعات دقیقتر میتوانید نگاهی به فایل usr/src/linux/Documentation/filesystems/proc.txt/بیاندازید. البته بـه شرطی که کد منبع هسته بر روی سیستمتان نصب باشد.
منبع : نشریه لینوکس ایران
همچنین مشاهده کنید
سایت تجارت نیوزسایت مثلث آنلاینخبرگزاری ایلناسایت ساعدنیوزخبرگزاری صدا و سیماسایت دیدارنیوزسایت رویداد 24خبرگزاری تحلیل بازارسایت الفسایت رکنا