ادامه مبحث فايل سيستم
سيستم وقتي crash ميکند، fsck بايد خوانده شود از کجا اين موضوع را متوجه مي شود؟ لين وکس وقت ي ب الا م ي آي د init
اوّلين فايلي که ميخواند rc.sysinit را ميخواند. وقتي اين فايل را ميخواند چک ميکند فايلي به نام Auto fsck داريم يا نه؟
هاست لینوکس
[N.pardis@Lpi1~]$less /rc.sysinit /Autofsck
در يک if چک ميکند اگر همچنين فايلي وجود دارد به شما پي ام ميدهد که سيستم آگاهانه down نشده بعد کاري ک ه م ي-
کند اينست که نرمافزاري به نام fsck را اجرا ميکند.
پس يک راه خوب براي اينکه بفهميد يک سرور در چه ساعتي و چه تاريخي up شده است اينست که فرمان زير را بزنيم:
[N.pardis@Lpi1~]$less /.Autofsck*
پس اين فايل را باز ميکند و ميبيند که چه ساعتي up شده است و وقتي shutdown کنيم اين فايل پاک م يش ود يعن ي اگ ر
درست shutdown کنيم پاک ميشود و دوباره که up کنيم system را دوباره ميسازد. ول ي اگ ر درس ت shutdown نکن يم
پاک نميشود و ميماند و ميفهمد. پس fsck را صدا ميزند و وقتي ميآيد کار سنگيني انجام ميده د ک ه ک ارش ا ينس ت ک ه
)البته همهيفايل سيستمها را چک نميکند( نوع فايل سيستم را تشخيص ميدهد و نرمافزار مربوط را اجرا مي کند.
fsck همهي فايل سيستمها را چک نميکند. fsck ابتدا super block را ميخواند، سپس جمع object ها را بدست مي-
آورد و اينکه چقدر بايد خالي باشد. و پس از آن به سراغ دايرکتوريها ميرود و فايلهاي زير آنها را ميخواند. پس وقت ي سيس تم
crash ميکند fsck ميآيد داخل حافره.
خرید گواهینامه ssl
ما ميتوانيم به fsck بگوييم درست کار نکن در بعضي مواقع ممکن است مشکلاتي براي ما بوجود آورد. در بسياري از زمانها fsck
خودش درست کار نميکند. خيلي وقتها يک اتفاقي ميافتد که خود fsck هم درست کار نميکند. مثلاً ميگويد فاي ل پ رد يس
مال userid استاد است و ميگويد من به يک تناق رسيدم و prompt ميدهد و م يگوي د خ ود ب رو دنب ال ک ن. ب ه ه ر
دليلييک هکر يا نرمافزار بد pointer ها را جابجا کرده و prompt اي که ميآيد File system check اس ت و خ يل ي خيل ي
خطرناک است و Admin خودش بايد دستي اين مشکل را حل کند.
ولي اگر به تناق نرسد و تعدادي فايل پيدا کند که بيصاحب است fsck ميبرد زير دايرکتوري lost+found ميگذارد. زم ان ي
که شما لينوکس را به کار ميگيريد و يک پارتيشن لينوکسي درست ميکنيد حتماً يک lost+found درست ميکند و فايلهايي
که صاحب ندارند زير اين دايرکتوري قرار مي دهدو شما به عنوان Admin بايد تکليف فايلهاي lost+found را معلوم کني د، در
ادامه روش انجام دادن آن را بررسي خواهيم کرد.
فرض کنيد ما يک شبکه بزرگ داريم و 1000 نفر کاربر در حال انجام دادن فعاليتهايشان هستند، برق ميرود وقتي برق م يآي د
لينوکس بالا ميآيد و fsck را صدا ميکند و نگاه ميکند که مثلاً تعدادي فايل بيصاحب پيدا ميکند و در lost+found ق رار
مي دهد. حال ميخواهيم هر فايل را در جاي خودش بگذاريم
بايد ابتدا با فرمان string محتويا اين فايلها را بخوانيم و ببينيم به چه کسي و کجا ربط دارد.فرمان string کاري که م ي کن د
اينست که محتويا يک فايل را مي خواند و چيزهايقابل استفاده آن را بيرون مي کشد و نم ا يش م ي ده د. ح الا ي ک فاي ل را
عمديزير lost+found ميبريم و سپس با طي مراحلي آن را سر جاي اولش برمي گردانيم:
به عنوان مثال فايل date را انتقال مي دهيم زير lost+found :
1( ابتدا شماره inode آن را پيدا مي کنيم چون فايلي که درست مي کند زير lost+found عددي است:
[N.pardis@Lpi1~]$ls –l -i /bin/date
0(يک کپي از آن را در خانه ي خودمان قرار مي دهيم:
[N.pardis@Lpi1~]$cp/bin/date/ #2042244
Admin حالا بايد تشخيص دهد جنس اين فايل چيست؟ چ ون با ي د س ر ج ا يش بگ ذار يم اول ين ک ار ي ک ه توص يه ش ده ب ا
فرمان File اينست که با فرمان file جنس آن را پيدا کنيم:
[N.pardis@Lpi1~]$file\# 2042244
ميگويد exe است و اجرايش ميکند و ميبيند مثلاً تاريخ را ميدهد و ميگذارد سر جايش در غير اين صور اگر بگوي د Data
است با فرمان string داخل آن را ببينيد.
[N.pardis@Lpi1~]$ move #2024244 /bin/date
[N.pardis@Lpi1~]$String \# 2224244 string
فرمان string فرماني است که يک فايل باينري را ميخواند و آنهايي که حدس ميزد ascii است سه تا پشت سر هم نش ان م ي-
دهد. از روي string بايد فهميدکه مربوط به کدام دايرکتوري است.
[N.pardis@Lpi1~]$man String
يک راه حل هم اينست که وقتي سيستم و سرويسها و package ها و … را نصب ميکنيم و خوب ک ه تس ت ک رد يم و تحوي ل
داديميک چيز ديگر هم به صاحب سيستم تحويل ميدهيم. کاري که ميکنيم اينست که اين فرمان را ميزنيم:
[N.pardis@Lpi1~]$cd /ls –li | sort -n| less
سپس از آن پرينت هم مي گيريم.اين فرمان کاري که ميکند اينست که همهي فايلها را با inode هاي آنها sort شده نگ ه م ي-
دارد و زماني که يکي از اين فايلها زير lost+found قرار گرفت خيلي راحت به وسيله شمارهشان برميگردانيم س ر ج ا يش. اي ن
روش در جاهايي جواب ميدهد که فايلهايشان static است ولي Dynamic درست نميش ود م ثلاً در ي ک دانش گاه ا ي ن روش
کارايي چنداني ندارد، فقط ميتوان فايلهاي اساسي را برگرداند سر جاي خودشان.
(System Activity Report)Sar
فرمان ديگري که داريم به نام Sar است که اطلاعاتي راجع به اينکه چند درصد حافره پر شده و چه تعداد فايل open ک رد يم را
به ما نشان مي دهد. در منوآل Sar ميتوانيم اطلاعا زيادي را بدست آوريم. فرمان ديگ ر ي ه م وج ود دارد ب ه ن ام lsof ک ه
فايلهايي که باز است را به ما نشان ميدهد.
[N.pardis@Lpi1~]$ Sar -r 2 10
[N.pardis@Lpi1~]$lsof | less