خطاهای پیش آمده در لینوکس و راه حل آنها

تجریبات بر طرف سازی خطاهای لینوکس

خطاهای پیش آمده در لینوکس و راه حل آنها

تجریبات بر طرف سازی خطاهای لینوکس

اندازه گیری مدت اجرای یک برنامه در لینوکس با اسکریپت

کافی است یک bash script فایل درست کنیم و این را در داخل آن بنویسیم


start=`date +%s`
stuff
end=`date +%s`

runtime=$((end-start))
echo $runtime >> runtime.txt

چگونه بوت لودر لینوکسمان را تعمیر کنیم

برای لینوکس:

فرض میکنیم که حواسمان نبوده، یک پارتیشن به سیستم اضافه کرده ایم و یا اینکه مشکلی پیش آمده و لینوکس بوت نمیشود،

 ما هم کار داریم، میخواهیم به فایلهای روی سیستم عامل ویندوز که بعدا در کنارش لینوکس نصب کرده ایم دسترسی پیدا کنیم اما امکانش نیست

خوب پس چه کنیم!؟


اول اینکه فرض میکنیم خوش شانس هستیم و سی دی یا دی وی دی لینوکس را داریم، آنهم از نوع live اش

پس سیستم را با لینوکس جدیدمان بدون اینکه نصبش کنیم بوت میکنیم


سپس لازم است که بدانیم کدام پارتیشن در لینوکس نقش root ( همان / ) را دارد، 

اگر شانس بیاوریم و پارتیشن های ساخته شده همه معمولی و از نوع primary و یا logical باشند با دستور زیر میتوانیم این پارتیشن را ببینیم.

fdisk -l


خوب، در مورد مثال من، این پارتیشن از نوع logical بوده و شماره آنهم 7 بود. 

به عبارت دیگر sda7

لذا انرا با دستور زیر ، زیر شاخه /mnt مانت مینماییم


mount /dev/sda7 /mnt

برای اطمینان از اینکه پارتیشن boot به صورت مجزا ساخته شده باشد یا خیر، میتوانیم از مسیر آن با دستور زیر لیست بگیریم.

من خوش شانس بودم و پارتیشن سوایی برای boot نداشتم، در غیر اینصورت می بایست آنرا نیاز مانت میکردم

ls /mnt


ls /mnt/boot

خب باید سه فولدر زیر را نیز مانت نماییم، اینها فولدرهای مجازی هستند و اطلاعات داخل آن مورد نیاز لینوکس است

sudo mount —bind /dev/ /mnt/dev

sudo mount —bind /proc/ /mnt/proc

sudo mount —bind /sys/ /mnt/sys


حال اقدام به نصب بوت لودر روی سکتور صفر هارد می کنیم


grub-install —root-directory=/mnt/ /dev/sda

این دستور زیر، باعث میشود که لینوکس سابق، به عنوان لینوکس فعال ، فعالیتش را آغاز کند

chroot         /mnt

خب، حالا زمان ان رسیده که جناب grub بررسی کند آیا سیستم عامل دیگری روی کامپیوتر موجود است یا خیر، 

پس با اجرای دستور زیر این عمل صورت می پذیرد.

update-grub


ما میخواستیم سیستم را رستارت کنیم که پیام داد در حال chroot امکان ندارد، 

ما هم بدون بررسی عملکرد، تنها کار ممکن و معقول را انجام دادیم

با زدن دستور exit به وضعیت قبلی برگشته و سپس دستور زیر

exit


reboot


البته ما به یک مشکلی بر خورد کردیم، لینوکس بوت میشد اما در صفحه بوت گراب، اثری از ویندوز نبود

لذا ابتدا وارد لینوکس شده و یک ترمینال را باز کردیم

سپس با دستور su- وارد اکانت root شدیم. اجرای دستور update-grub ویندوز 10 پیدا شد و مشکل ما مرتفع گردید.


چگونه میشود یک تست ساده در ncl انجام داد

زبان اسکریپت نویس NCAR COMMAND LANGUAGE یا همون ncl زبانی بسیار قوی برای پردازش و تهیه نقشه های هواشناسی و دریایی و همچنین اقلیمی هستش.


برای تست یک اسکریپت نوشتم و اینطوری صدا زدم، 



str1="aqsurf"

str2=str1+nt

print(str2)


 و اینطوری صداش زدم، میخواستم مقدار 000 رو به انتهای اون string بچسبونه

 ncl -n  test.ncl nt="000"



یک اسکریپت ساده برای ایجاد یک صف در اسکریپت لینوکس

بسیار ساده، به تعداد هسته های پردازشی صف درست میشود.


NumberOfCPUs=`(cat /proc/cpuinfo |grep processor|tail -n 1 |awk '{print $3}')`

for ARG in  {000..099}; do

    echo $ARG

    sleep 5&

    NPROC=$(($NPROC+1))

    if [ "$NPROC" -ge $NumberOfCPUs ]; then

        wait

        NPROC=0

        echo '******************************'

    fi

done


تعداد هسته های پردازشی تشخیص داده شده توسط لینوکس

دستور زیر اطلاعات کلی سیستم عامل لینوکس رو در خصوص هسته های پردازشی میدهد


cat /proc/cpuinfo


و دستور زیر شماره هسته های شناسایی شده را 


 cat /proc/cpuinfo |grep processor



دستور زیر شما آخرین هسته را میدهد، توجه کنید که اعداد از 0 الی این عدد هستند

cat /proc/cpuinfo |grep processor|tail -n 1

این دستور شماره  اخرین هسته شناسایی شده را میدهد 

cat /proc/cpuinfo |grep processor|tail -n 1 |awk '{print $1}'

,و دستور زیر مقدار بالا را در یک متغیر میریزد

 NumberOfCPUs=`(cat /proc/cpuinfo |grep processor|tail -n 1 |awk '{print $3}')`