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

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

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

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

رفع مشکل -bash: /usr/bin/rm: Argument list too long

بر روی یک سرور قبلا اجراهایی صورت گرفته و فایل های زیادی تولید شده که باعث پر شدن کل فضای هارد سرور و از کار افتادن آن شده است.


پس از برگزاری جلسات با گروه مربوطه تصمیم به پاک کردن فایل های txt که دیگر مورد نیاز نبودند گرفتیم.

هنگامی که از دستور rm -rf استفاده کردم با پیام خطای زیر مواجه شدم.

-bash: /usr/bin/rm: Argument list too long


البته فقط دستور ls اجرا میشد.

ابتدا با دسته بندی کردن نام فایل ها به ترتیب آنها را حذف می کردم، اما این کار بسیار وقت گیر بود.


با جستجو در اینترنت به روش زیر رسیدم که بسیار عالی و سریع بود.

با دستور زیر حذف را به بلاک های 200 فایلی محدود می کنیم.


echo *.txt|xargs -n 200 rm -fv


می توان عدد 200 را زیادتر یا کمتر کرد که در هر بار حذف، همان تعداد را حذف می کند.


نحوه اجرای یک برنامه با استفاده از libfaketime

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


یک راه حل دم دست اما نامناسب تغییر ساعت سیستم می باشد.

اما چرا نامناسب است، به دو دلیل زیر:

1- اول اینکه ممکن است شما دسترسی ادمین نداشته باشید.

2- حتی با داشتن دسترسی ادمین بر روی یک سیستم با چند کاربر احتمال بروز مشکل در کارهای دیگران را پیش می آورد.


همچنین اگر بخواهید اسکریپت را با crontab به صورت خودکار اجرا کنید امکان تغییر ساعت وجود ندارد.


یک راه استفاده از برنامه libfaketime  است. من این برنامه را در فضای کاربری خودم دانلود و کمپایل کردم.

نحوه استفاده از آن به شکل زیر است:

LD_PRELOAD=$faketimePATH/libfaketime.so.1 FAKETIME="@2022-01-01 01:01:00"   \

FAKETIME_DONT_RESET=1  \

"run your program"


با اجرای دستور بالا، زمان اجرای برنامه شما به ساعت 01:01:00 تاریخ 2022-01-01 تنظیم و آن برنامه در آن تاریخ اجرا می شود.

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

افزایش حجم پارتیشنهای LVM در سنت او اس 7 / رد هت 7

فضای روی پارتیشنتون کم اومده؟


خیلی راحت چه تو فضای مجازی چه حقیقی میتونید اونرو افزایش بدید.


چطوری؟

اینطوری


pvcreate /dev/sda3

vgextend c1 /dev/sda3


pvscan


vgdisplay


lvextend -l +number /dev/c1/LogPart.

مقدار number را از بخش Free PE / Size خروجی vgdisplay انتخاب کنید.

ls /dev/c1


xfs_growfs /dev/mapper/c1-root


df -h

استفاده از socks5 برای yum در لینوکس

سلام، 

اگر زمانی بخواهید برای یک سیستم لینوکسی که ارتباط اینترنتی ندارد از امکان yum استفاده کنید به روش زیر عمل کنید.

حوزه عمل برای سیستم های redhat base


vi /etc/yum.conf

add this line perhaps at the end of the file


proxy=socks5://ip:port


may be you need DNS request send and receive  through this channel, so use this instead


proxy=socks5h://ip:port


درست کردن dual boot برای لینوکس و ویندوز، بعد از نصب لینوکس

گاهی اوقات این مشکل با بعضی از توزیع های لینوکس پیش میاد.

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


دلیل:

1- عمده دلیلی که من متوجه شدم، برای ویندوز 7 ( فکر کنم ویستا به بعد) یک پارتیشن اول 100 مگابایت و بعدا 500 مگابایت از نوع پریماری توسط ویندوز درست میشه که در این اواخر قالب بندی اون ntfs هستش.

2- تعدادی از توزیع های لینوکس از جمله CentOS پیش فرض ntfs رو پشتیبانی نمیکنند، لذا موقع نصب grub2 نمیتونه بوت لودر رو بدرستی بازسازی کنه.


راهکار:

1- نصب ntfs-3g

2- بازسازی grub2-boot


روش:

1- yum install epel-release

2- yum install ntfs-3g

3-grub2-mkconfig > /dev/null

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

4-cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old

برای روز مبادا

5-grub2-mkconfig -o /boot/grub2/grub.cfg

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