📚 مبحث پیشرفته لینوکس: مدیریت پردازشها و منابع سیستم
مدیریت پردازشها در لینوکس یکی از مباحث پیشرفته و ضروری است که برای عیبیابی، بهینهسازی و کنترل منابع سیستم استفاده میشود. در این آموزش، به برخی از دستورات پیشرفته و مهم پردازشها میپردازیم.
🔍 1. مشاهده پردازشهای سیستم
نمایش لیست پردازشهای در حال اجرا:
مشاهده پردازشها به صورت گرافیکی و لحظهای:
نسخه پیشرفتهتر با امکانات بیشتر:
(نیاز به نصب دارد: sudo apt install htop)
🔧 2. ارسال سیگنال به پردازشها
خاتمه دادن به یک پردازش با PID:
خاتمه سریع (سیگنال 9)
بستن یک برنامه بر اساس نام:
📈 3. نظارت بر منابع سیستم
مشاهده استفاده از CPU و حافظه:
مشاهده وضعیت حافظه:
نظارت بر ورودی/خروجی دیسک:
(نیاز به نصب دارد: sudo apt install sysstat)
📂 4. مدیریت پردازشهای پسزمینه
اجرای یک برنامه در پسزمینه:
مشاهده لیست پردازشهای پسزمینه:
بازگرداندن پردازش پسزمینه به پیشزمینه:
🚦 5. اولویتبندی پردازشها
اجرای یک پردازش با اولویت پایینتر:
تغییر اولویت پردازش در حال اجرا:
🔎 6. جستجوی پردازشها
جستجو بر اساس نام برنامه:
نمایش اطلاعات کامل پردازش:
(نیاز به نصب دارد: sudo apt install sysstat)
📜 7. نظارت بر لاگها برای پردازشها
مشاهده لاگهای سیستم به صورت زنده:
مشاهده خطاهای مرتبط با کرنل:
👁@Gozar_Xray
مدیریت پردازشها در لینوکس یکی از مباحث پیشرفته و ضروری است که برای عیبیابی، بهینهسازی و کنترل منابع سیستم استفاده میشود. در این آموزش، به برخی از دستورات پیشرفته و مهم پردازشها میپردازیم.
🔍 1. مشاهده پردازشهای سیستم
نمایش لیست پردازشهای در حال اجرا:
ps aux
مشاهده پردازشها به صورت گرافیکی و لحظهای:
top
نسخه پیشرفتهتر با امکانات بیشتر:
htop
(نیاز به نصب دارد: sudo apt install htop)
🔧 2. ارسال سیگنال به پردازشها
خاتمه دادن به یک پردازش با PID:
kill PID
خاتمه سریع (سیگنال 9)
kill -9 PID
بستن یک برنامه بر اساس نام:
killall program_name
📈 3. نظارت بر منابع سیستم
مشاهده استفاده از CPU و حافظه:
vmstat
مشاهده وضعیت حافظه:
free -h
نظارت بر ورودی/خروجی دیسک:
iostat
(نیاز به نصب دارد: sudo apt install sysstat)
📂 4. مدیریت پردازشهای پسزمینه
اجرای یک برنامه در پسزمینه:
command &
مشاهده لیست پردازشهای پسزمینه:
jobs
بازگرداندن پردازش پسزمینه به پیشزمینه:
fg %job_number
🚦 5. اولویتبندی پردازشها
اجرای یک پردازش با اولویت پایینتر:
nice -n 10 command
تغییر اولویت پردازش در حال اجرا:
renice -n 5 -p PID
🔎 6. جستجوی پردازشها
جستجو بر اساس نام برنامه:
pgrep program_name
نمایش اطلاعات کامل پردازش:
pidstat
(نیاز به نصب دارد: sudo apt install sysstat)
📜 7. نظارت بر لاگها برای پردازشها
مشاهده لاگهای سیستم به صورت زنده:
tail -f /var/log/syslog
مشاهده خطاهای مرتبط با کرنل:
dmesg | tail
👁@Gozar_Xray
50👌25 7❤🔥6 6
کدام یک از زبانهای برنامهنویسی زیر به طور پیشفرض مفسری (Interpreter) است؟
Anonymous Quiz
23%
C
15%
Go
38%
JavaScript
12%
C#
5%
Nim
7%
Swift
50 26 9👌2
پارادوکس “امنیت در نرمافزارهای اپن سورس” بر این اساس شکل میگیرد که:
1. “امن است چون منبع باز است”:
در دسترس بودن کد منبع به افراد و جامعه اجازه میدهد تا آن را بررسی کنند، آسیبپذیریها را پیدا کنند، و بهبود دهند. این شفافیت باعث میشود نقاط ضعف سریعتر شناسایی و برطرف شوند، زیرا هزاران توسعهدهنده و متخصص امنیت روی آن نظارت دارند.
2. “امن نیست چون منبع باز است”:
از طرف دیگر، چون کد به طور عمومی قابل مشاهده است، هکرها نیز میتوانند از این فرصت استفاده کنند تا آسیبپذیریها را شناسایی و از آنها سوءاستفاده کنند، بهخصوص اگر جامعه توسعهدهندگان بهموقع برای رفع این مشکلات عمل نکند.
راهکار:
امنیت نرمافزارهای اپن سورس به کیفیت جامعه توسعهدهندگان و سرعت واکنش آنها به تهدیدها بستگی دارد. اپن سورس میتواند بسیار امن باشد، اما تنها در صورتی که:
• جامعهای فعال برای بررسی و رفع مشکلات وجود داشته باشد.
• فرآیندهای سختگیرانهای برای مدیریت کد و نسخهها اجرا شوند.
• کاربران بهروزرسانیهای امنیتی را بهموقع اعمال کنند.
این پارادوکس بیشتر از اینکه تضادی باشد، یک توازن است: شفافیت اپن سورس همزمان هم قدرت آن است و هم نقطهای که نیاز به مراقبت دارد.
👁️@Gozar_Xray
1. “امن است چون منبع باز است”:
در دسترس بودن کد منبع به افراد و جامعه اجازه میدهد تا آن را بررسی کنند، آسیبپذیریها را پیدا کنند، و بهبود دهند. این شفافیت باعث میشود نقاط ضعف سریعتر شناسایی و برطرف شوند، زیرا هزاران توسعهدهنده و متخصص امنیت روی آن نظارت دارند.
2. “امن نیست چون منبع باز است”:
از طرف دیگر، چون کد به طور عمومی قابل مشاهده است، هکرها نیز میتوانند از این فرصت استفاده کنند تا آسیبپذیریها را شناسایی و از آنها سوءاستفاده کنند، بهخصوص اگر جامعه توسعهدهندگان بهموقع برای رفع این مشکلات عمل نکند.
راهکار:
امنیت نرمافزارهای اپن سورس به کیفیت جامعه توسعهدهندگان و سرعت واکنش آنها به تهدیدها بستگی دارد. اپن سورس میتواند بسیار امن باشد، اما تنها در صورتی که:
• جامعهای فعال برای بررسی و رفع مشکلات وجود داشته باشد.
• فرآیندهای سختگیرانهای برای مدیریت کد و نسخهها اجرا شوند.
• کاربران بهروزرسانیهای امنیتی را بهموقع اعمال کنند.
این پارادوکس بیشتر از اینکه تضادی باشد، یک توازن است: شفافیت اپن سورس همزمان هم قدرت آن است و هم نقطهای که نیاز به مراقبت دارد.
👁️@Gozar_Xray
52❤🔥27 19👌9
در یک برنامه سرور با تعداد زیادی اتصال همزمان، کدام یک از مکانیزمهای زیر برای مدیریت رویدادهای I/O بهینهتر است و چرا؟
1) select 2) poll 3) epoll 4) io_uring
1) select 2) poll 3) epoll 4) io_uring
Anonymous Quiz
14%
گزینه ۱) چون select سادهترین روش برای مدیریت چندین اتصال همزمان است.
23%
گزینه ۲) چون poll محدودیت تعداد فایلدسکریپتورهای همزمان را برطرف میکند.
25%
گزینه ۳) چون epoll بهرهوری بالاتری برای مدیریت تعداد زیادی اتصال در مقیاس بزرگ دارد.
39%
گزینه ۴) چون io_uring علاوه بر مدیریت I/O، سربار سیستمکالها را به حداقل میرساند.
ورژن دوم اسکریپت ایزی مش که از آخرین نسخه هسته موجود استفاده میکنه و خیلی از مشکلاتش برطرف شده. برای استفاده از ورژن دوم از طریق اسکریپت قبلی ابتدا تانل رو پاک کنید. کانفیگ هر دو ورژن مشابه هم هست اما با هم دیگه سازگار نیستند.
https://github.com/Musixal/Easy-Meshbash <(curl -Ls --ipv4 https://github.com/Musixal/easy-mesh/raw/main/easymesh_v2.sh)👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
5 32❤🔥21👌18 4
🌟 io_uring: a Linux-specific API for asynchronous I/O
یکی از قابلیتهای جدید و قدرتمند لینوکس io_uring است که برای بهبود عملکرد ورودی/خروجی (I/O) طراحی شده است. ایده اصلی این فناوری این است که انجام عملیات I/O (مثل خواندن و نوشتن دادهها از فایلها یا شبکه) را سریعتر و کارآمدتر کند.
توضیح ساده:
وقتی برنامهای در لینوکس بخواهد چیزی از دیسک بخواند یا روی آن بنویسد، معمولاً باید از کرنل بخواهد این کار را انجام دهد. این فرآیند شامل "سیستم کال" (system call) است که زمانبر است و در عملیات I/O زیاد، سرعت سیستم را کند میکند.
پس io_uring به برنامه اجازه میدهد که:
درخواستهای I/O را در یک حلقه (queue) قرار دهد.
کرنل این درخواستها را به صورت غیرهمزمان (async) و سریع اجرا کند.
نتیجه درخواستها را به برنامه اطلاع دهد، بدون نیاز به سیستم کالهای اضافی.
مزایا:
سرعت بالا: به خاطر کاهش تعداد سیستم کالها.
پرفورمنس بهتر: مخصوصاً برای برنامههایی که به تعداد زیادی عملیات I/O نیاز دارند.
غیرهمزمان بودن: درخواستها به طور موازی انجام میشوند و برنامه میتواند همزمان به کارهای دیگری بپردازد.
👁@Gozar_Xray
یکی از قابلیتهای جدید و قدرتمند لینوکس io_uring است که برای بهبود عملکرد ورودی/خروجی (I/O) طراحی شده است. ایده اصلی این فناوری این است که انجام عملیات I/O (مثل خواندن و نوشتن دادهها از فایلها یا شبکه) را سریعتر و کارآمدتر کند.
توضیح ساده:
وقتی برنامهای در لینوکس بخواهد چیزی از دیسک بخواند یا روی آن بنویسد، معمولاً باید از کرنل بخواهد این کار را انجام دهد. این فرآیند شامل "سیستم کال" (system call) است که زمانبر است و در عملیات I/O زیاد، سرعت سیستم را کند میکند.
پس io_uring به برنامه اجازه میدهد که:
درخواستهای I/O را در یک حلقه (queue) قرار دهد.
کرنل این درخواستها را به صورت غیرهمزمان (async) و سریع اجرا کند.
نتیجه درخواستها را به برنامه اطلاع دهد، بدون نیاز به سیستم کالهای اضافی.
مزایا:
سرعت بالا: به خاطر کاهش تعداد سیستم کالها.
پرفورمنس بهتر: مخصوصاً برای برنامههایی که به تعداد زیادی عملیات I/O نیاز دارند.
غیرهمزمان بودن: درخواستها به طور موازی انجام میشوند و برنامه میتواند همزمان به کارهای دیگری بپردازد.
👁@Gozar_Xray
❤🔥15 7 2
Forwarded from XRay Chat (Doc)
Anonymous Poll
43%
TCP
9%
TCPMUX
6%
WS
1%
WSMUX
2%
WSS
2%
WSSMUX
5%
UDP
3%
UDP over TCP
29%
None (other tunnels)
* bump version to 0.6.4
* tcp keep alive
* enabling keepalive for connections, this will make easier for the server to detect connection losses at tcp level
* set keepalive for localconnections in wsmux
* set keepalive for local connection in ws
* set nodelay for control channel and tunnel connections are able to obtain nodelay
* set nodelay for control channel and tunnel connections are able to obtain nodelay settings
* force control channel for nodelay
* force control channel for nodelay
* add buffers and set nodelay on control channel
* add buffers and set nodelay on control channel
* tcp nodelay for channel dialer
* add tcp buffers also nodelay for local and control channel
* add tcp buffers also nodelay for local and control channel
* TCP and Websocekt Dialers Now Have Custom SO_RCVBUF & SO_SNDBUF which take effect if so_rcvbuf > 0 or so_sndbuf > 0
* new optimizations for fixing buffers
این آپدیت به لطف آقا شهرام مشکلات مربوط به بافر TCP رو تا حدود زیادی حل می کنه، مخصوصا وقتی که یوزر اسپید تست میگیره و حجم اضافه در پنل میفته. (قسمتی هم مربوط به بافر xray هست البته). نکته دیگه شاید برای UDP over TCP این تنظیمات اوکی نباشه بنابراین feedback بدید تا بررسی بشه.
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
3👌30❤🔥12 12
فان فکت: استاد در ویدئو آخرش برای بار هزارم آموزش نصب xui رو داد. 😧
Please open Telegram to view this post
VIEW IN TELEGRAM
1 180 79
اگر دامنه شما در کلادفلر بلاک شده است، لطفاً اعلام کنید از چه روشی از این سرویس استفاده میکردید؟
Anonymous Poll
20%
برای اتصال مستقیم (CDN)
11%
برای اتصال ریورس (Tunneling)
5%
هر دو مورد
64%
دیدن نتایج
اون دسته از افرادی که روی ریورس CDN بکهال دامنهشون توی کلادفلر بلاک شده اول دامنهتون رو دیلیت کنید، بعد یه اکانت کلاد جدید بسازید و دامنه رو ببرید داخلش. اینجوری مجددا کار میده.
ورژن آخر یعنی v0.6.5 رو هم نصب کنید. توی این ورژن user-agent رندوم و path رندوم اضافه شده. هنوز نمیدونیم دلیل این بلاک شدن ها تعداد کانکشن های بالای XRay Core هست یا مربوط به IP ایران میشه.
* better log for ApplyTCPTuning
* random tunnel path for ws/wss connections
* random user-agent for ws/wss connections
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
15❤🔥27 16👌5 3
کلادفلر دیگه اجازه استفاده سرویس CDN برای VPN نمیده و در صورت فهمیدن این موضوع کل شبکه CDN خودشو برای اون دامنه میبنده.
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
31👌147 118 31
Everything Is Open Source , If You Can Read Assembly ☹️
Please open Telegram to view this post
VIEW IN TELEGRAM
اگر به دنبال جستجوی حرفهایتر و دقیقتر در فایلها هستید، ابزار grep در لینوکس امکانات پیشرفتهای ارائه میدهد. در اینجا چند روش پیشرفته برای استفاده از grep آورده شده است.
۱. جستجوی عبارات پیچیده با Regular Expressions پیشرفته
برای جستجوی الگوهای پیچیده، از -E برای فعال کردن حالت Extended Regular Expressions استفاده کنید:
grep -E "^(ERROR|WARNING):.*" log.txt
این دستور تمام خطوطی که با ERROR یا WARNING شروع میشوند را در فایل log.txt پیدا میکند.
۲. نمایش تعداد وقوع عبارات
برای شمارش تعداد دفعاتی که یک عبارت در فایل ظاهر شده، از گزینه -c استفاده کنید:
grep -c "404" access.log
این دستور تعداد دفعاتی که کد خطای 404 در فایل access.log ظاهر شده را نمایش میدهد.
۳. جستجو در فایلهای بزرگ با حافظه کمتر
اگر با فایلهای بسیار بزرگ کار میکنید و نمیخواهید از حافظه زیاد استفاده شود، از گزینه --line-buffered استفاده کنید:
grep --line-buffered "search_term" large_file.txt
این گزینه هر خط را پس از پردازش بلافاصله چاپ میکند و حافظه کمتری مصرف میشود.
۴. جستجو و حذف خطوط نامطلوب
اگر بخواهید خطوطی که شامل عبارت خاصی نیستند را حذف کنید (یا فقط خطوط بدون آن عبارت را ببینید)، از گزینه -v استفاده کنید:
grep -v "DEBUG" log.txt
این دستور تمام خطوطی که عبارت DEBUG ندارند را نمایش میدهد.
۵. جستجو در فایلهای باینری
برای جستجو در فایلهای باینری یا دادههای غیرمتنی، از گزینه -a استفاده کنید:
grep -a "magic_number" binary_file.bin
این دستور فایلهای باینری را مانند فایل متنی پردازش میکند.
۶. ترکیب grep با ابزارهای دیگر
دستور grep را میتوان بهراحتی با سایر ابزارهای لینوکس ترکیب کرد تا جستجو و پردازش دادهها بهینه شود. مثال:
الف) ترکیب با find: برای جستجو در همه فایلهای خاص با پسوند مشخص:
find . -name "*.log" | xargs grep "ERROR"
این دستور همه فایلهای با پسوند .log را جستجو کرده و عبارت ERROR را در آنها پیدا میکند.
ب) ترکیب با sort و uniq: برای یافتن تعداد خطوط منحصربهفرد:
grep "user_login" access.log | sort | uniq -c
این دستور تعداد وقوع هر خطی که شامل user_login است را نمایش میدهد.
ج) ترکیب با awk: برای استخراج اطلاعات خاص از خطوط پیدا شده:
grep "ERROR" log.txt | awk '{print $1, $2, $NF}'این دستور ستون اول، دوم، و آخر خطوط حاوی ERROR را نمایش میدهد.
۷. جستجوی همزمان چندین الگو
برای جستجوی چندین عبارت بهصورت همزمان، از -e استفاده کنید:
grep -e "ERROR" -e "WARNING" log.txt
این دستور هم ERROR و هم WARNING را پیدا میکند.
۸. هایلایت کردن عبارتهای پیدا شده
برای مشخص کردن عبارتهای جستجو شده با رنگ، از --color استفاده کنید:
grep --color=auto "search_term" file.txt
چرا grep برای کاربران حرفهای ضروری است؟
قابلیت جستجوی سریع در فایلهای حجیم.
انعطافپذیری در پردازش دادهها با Regular Expressions.
امکان ترکیب با سایر ابزارها برای ایجاد دستورات پیچیده.
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11 8👌6
در کدامیک از موارد زیر، پروتکل TCP ممکن است مکانیزم "Congestion Control" را فعال کند و چگونه این مکانیزم جریان داده را تحت تأثیر قرار میدهد؟
Anonymous Quiz
26%
زمانی که بافر مقصد پر شود و بستهها کنار گذاشته شوند؛ TCP ارسال داده را متوقف میکند.
14%
زمانی که RTT کاهش یابد؛ TCP نرخ ارسال بستهها را افزایش میدهد.
21%
زمانی که بستهای گم شود یا ACK با تأخیر برسد؛ TCP نرخ ارسال را کاهش میدهد.
24%
زمانی که اتصالهای موازی زیاد شوند؛ TCP بستهها را در صف قرار میدهد.
14%
زمانی که تعداد زیادی بسته همزمان به مقصد برسد؛ TCP برخی بستهها را دوباره ارسال میکند.
بیتکوین، ارزشمندترین ارز دیجیتال جهان، با ادامه روند صعودی و شکستن رکوردهای تاریخی، اکنون از مرز ۱۰۳ هزار دلار عبور کرده است.
👁️ @Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
عامل این کاهش، مسدود کردن سرویس های VPN این شبکه میباشد.
👁️ @Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 26 11❤🔥3