بر روی یک سرور قبلا اجراهایی صورت گرفته و فایل های زیادی تولید شده که باعث پر شدن کل فضای هارد سرور و از کار افتادن آن شده است.
پس از برگزاری جلسات با گروه مربوطه تصمیم به پاک کردن فایل های txt که دیگر مورد نیاز نبودند گرفتیم.
هنگامی که از دستور rm -rf استفاده کردم با پیام خطای زیر مواجه شدم.
-bash: /usr/bin/rm: Argument list too long
البته فقط دستور ls اجرا میشد.
ابتدا با دسته بندی کردن نام فایل ها به ترتیب آنها را حذف می کردم، اما این کار بسیار وقت گیر بود.
با جستجو در اینترنت به روش زیر رسیدم که بسیار عالی و سریع بود.
با دستور زیر حذف را به بلاک های 200 فایلی محدود می کنیم.
echo *.txt|xargs -n 200 rm -fv
می توان عدد 200 را زیادتر یا کمتر کرد که در هر بار حذف، همان تعداد را حذف می کند.
گاهی ضروری است که یک برنامه را در لینوکس در ساعت و زمان دیگری به جز زمان سیستم اجرا کنید.
یک راه حل دم دست اما نامناسب تغییر ساعت سیستم می باشد.
اما چرا نامناسب است، به دو دلیل زیر:
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 تنظیم و آن برنامه در آن تاریخ اجرا می شود.
در اینحالت زمان سیستم شما تغییر نمیکند و سایر برنامه ها مطابق روال همیشه اجرا می شوند.
گاهی اوقات این مشکل با بعضی از توزیع های لینوکس پیش میاد.
لینوکس رو نصب میکنید اما با اینکه ویندوز هستش، تو صفحه بوت دیده نمیشه.
دلیل:
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
و سپس سیستم را ریستارت کنید و در صفحه نمایش بوت، ویندوز را مشاهده کنید.
yum با استفاده از اینترنت سیستم دیگر
یکی از مشکلات ادمین ها، نصب برنامه های اضطراری بر روی سیستم لینوکسی است که اینترنت ندارد.
یکی از ساده ترین و بهترین روشها به صورت زیر است
استفاده از socks proxy
گام اول
ssh -D port_number -d -C -q -N user@linuxWithInternet
گام دوم
اضافه کردن این خط در فایل
/etc/yum.conf
proxy=socks5://127.0.0.1:port_number
گام سوم
استفاده از دستور yum برای نصب برنامه های مورد نیاز
DENYHOSTS برنامه بسیار مناسبی برای پیش گیری از SSH ATTACK روی سرورهای لینوکسی متصل به اینترنت می باشد.
این برنامه با قرار دادن IP فرد نفوذگر در لیست سیاه مانع تقاضای مجدد ارتباط SSH از همان IP می گردد.
اما همین موضوع مشکلاتی را هم به همراه می آورد. به عنوان مثال اگر هنگام ورود خودتان و یا همکارتان اشتباهی در ورود پسورد یا شناسه ورود داشته باشید و این با تنظیمات DENYHOSTS باعث بشود که IP شما و یا همکارتان در لیست سیاه قرار بگیرد، ارتباط های بعدی شما با سرور دچار اختلال خواهد گردید.
در این صورت چندین روش برای بر طرف کردن و رفع این مشکل وجود دارد که برای همه آنها می بایست از طریق یک سیستم و یا IP دیگر بتوانید به سرورتان متصل شوید.
سپس فایل /etc/hosts.allow/ را ادیت کرده و دستور زیر را در انتهای فایل به ازای هر آدرس شبکه و یا IP وارد میکنید:
ALL: XXX.YYY.ZZZ.0/24
که به جای XXX.YYY.ZZZ.0 و سابنت 24 IP و سابنت مربوط به آنرا وارد می نمایید.
با اینکار دسترسی شبکه و یا IPهای داده شده به سرورتان فعال میگردد.
به جز این دو روش دیگر هم برای دسترسی وجود دارد که در پست های بعدی به آن خواهم پرداخت