جمعه, ۱۴ اردیبهشت, ۱۴۰۳ / 3 May, 2024
مجله ویستا
آشنایی با procfs
procfs یک سیستم فایل مجازی است کــه در شاخه proc/ متصل شده و امکان دسترسی به اطلاعات هسته را فراهم میسازد. این یکی از ویژگیهای لینوکس اسـت که دسترسی به اطلاعات هسته و پردازشها را در قالب متنی فراهــم میسازد. بسیاری از دستورات خط فرمــان مــانند ps، top، pstree اطلاعات خود را این فایل سیستم استخراج میکنند. نکته قابل توجه این است که این مــقاله بــرای هستههای سری ۲.۶ لینوکس نوشته شده و ممکن است برخی از موارد ذکر شده در آن در سری ۲.۴ موجود نباشد.
● فایل سیستم مجازی
فایلهای و دایرکتوریهای موجود در شاخه 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/بیاندازید. البته بـه شرطی که کد منبع هسته بر روی سیستمتان نصب باشد.
منبع : نشریه لینوکس ایران
نمایندگی زیمنس ایران فروش PLC S71200/300/400/1500 | درایو …
دریافت خدمات پرستاری در منزل
pameranian.com
پیچ و مهره پارس سهند
تعمیر جک پارکینگ
خرید بلیط هواپیما
ایران انتخابات احمد وحیدی حسن روحانی حجاب پاکستان مجلس شورای اسلامی دولت دولت سیزدهم رهبر انقلاب نیکا شاکرمی مجلس
سیل هواشناسی تهران آتش سوزی یسنا شهرداری تهران قوه قضاییه پلیس روز معلم معلم آموزش و پرورش فضای مجازی
قیمت خودرو سهام عدالت قیمت طلا سازمان هواشناسی مالیات طلا بازار خودرو قیمت دلار خودرو حقوق بازنشستگان بانک مرکزی ایران خودرو
مهران غفوریان موسیقی تلویزیون سریال عمو پورنگ ساواک سینمای ایران نمایشگاه کتاب مهران مدیری مسعود اسکویی سینما عفاف و حجاب
رژیم صهیونیستی اسرائیل فلسطین غزه آمریکا جنگ غزه روسیه ترکیه حماس نوار غزه انگلیس اوکراین
استقلال فوتبال پرسپولیس سپاهان علی خطیر باشگاه استقلال لیگ برتر جواد نکونام بازی لیگ برتر ایران تراکتور رئال مادرید
هوش مصنوعی فناوری اپل گوگل ناسا مدیران خودرو تلفن همراه
طب سنتی خواب فشار خون کبد چرب