ورود/ایجاد حساب کاربری
   منوی اصلی
· خانه
· لیست کاربران
· جستجو
· آمار مشاهدات
· آرشیو مقالات


- شرح
· راهنمای نویسندگان
· درباره ما

   همکاری با نشریه
در صورتی که مایل به همکاری با نشریه هستید، می‌توانید در لیست پستی نشریه عضو شده و در جریان امور قرار گیرید. برای اطلاعات بیشتر، اینجا کلیک کنید.

   کاربران
سردبیر
هیچ مدیر کمکی حاضر
همکاران
هیچ مدیر کمکی حاضر
اعضا:
جدیدترین:جدید امروز:0
جدیدترین:جدید دیروز:0
جدیدترین:مجموع:2471
جدیدترین:جدیدترین:
ufumenarayu
اعضا:حاضر
اعضا:اعضا:0
مهمان‌ها:مهمان‌ها:3
مجموع:مجموع:3
کاربران حاضر
هیچ کاربر حاضری وجود ندارد

   ورود کاربران




 


 برای ورود مشکل دارید؟
 ثبت نام کاربران جدید

آشنایی با procfs

(764 مجموع کلمات موجود در متن)
(7313 بار مطالعه شده است)  نسخه چاپی

آشنایی با procfs

procfs یک سیستم فایل مجازی است کــه در شاخه proc/ متصل شده و امکان دسترسی به اطلاعات هسته را فراهم می‌سازد. این یکی از ویژگی‌های لینوکس اسـت که دسترسی به اطلاعات هسته و پردازش‌ها را در قالب متنی فراهــم می‌سازد. بسیاری از دستورات خط فرمــان مــانند ps، top، pstree اطلاعات خود را این فایل سیستم استخراج می‌کنند. نکته قابل توجه این است که این مــقاله بــرای هسته‌های سری 2.6 لینوکس نوشته شده و ممکن است برخی از موارد ذکر شده در آن در سری 2.4 موجود نباشد.

فایل سیستم مجازی
فایل‌های و دایرکتوری‌های موجود در شاخه 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/0

توجه داشته باشید که بجای [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 "1 min:\t" $1 "\n5 min:\t" $2 "\n15 min:\t" $3 }' /proc/loadavg

۴) اطلاعات پارتیشن‌های سیستم در فایل proc/partitions/ قرار دارد.

$ cat /proc/partition

۵) فایل‌های proc/net/ و proc/sys/net/ را می‌توانید برای نمایش و یـــا تغییر اطــلاعات مــهم شبکه استفاده کنید. برای مثال برای غیر فعال کردن ping دستور زیر را در حالت ریشه وارد کنید:

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

یا برای فعال کردن IP Forwarding و IP Masquerading دستور زیر را در حالت کاربر ریشه وارد کنید:

#echo 1 > /proc/sys/net/ipv4/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/بیاندازید. البته بـه شرطی که کد منبع هسته بر روی سیستمتان نصب باشد.

PDF Version

مترجم:آلن باغومیان alan@technoux.org
منبع: http://linuxgazette.net/115/nirendra.html

تمامی مطالب و مقالات این سایت تحت مجوز GNU FDL قرار دارند. بنابراین کپی و ایجاد تغییر در آنها مطابق شرایط این مجوز آزاد می‌باشد.