Read the first chapter
The whole of chapter one, free. About 5 min. Turn the pages with the arrows, your keyboard, or a swipe.
Chapter 1
فهم النواة وإدارة خدمات لينكس
bash uname -r free -h lsblk
يعرض الأمر الأول إصدار النواة، ويعرض الثاني الذاكرة، بينما يسرد الثالث أجهزة التخزين. افحص هذه النتائج قبل التحقيق في أداء خدمة؛ فقد ترى أن المشكلة ناتجة عن ذاكرة ممتلئة أو قرص غير مركب، لا عن الخدمة نفسها.
يستخدم لينكس تسلسل الملفات القياسي (Standard Filesystem Hierarchy) لتنظيم وظائف الأدلة. ركّز على الأدلة التالية:
1. /etc: يحتوي إعدادات النظام والخدمات، مثل ملفات إعداد خدمة الويب. انسخ الملف قبل تعديله حتى تستطيع الرجوع إليه. 2. /var: يخزن البيانات المتغيرة، ومنها السجلات وقوائم الحزم وملفات التخزين المؤقت. افحصه عند امتلاء القرص أو فشل خدمة بسبب سجل كبير. 3. /proc: نظام ملفات افتراضي يعرض معلومات العمليات والنواة والذاكرة. لا تتعامل معه كدليل عادي؛ تتغير محتوياته مع حالة النظام. 4. /sys: يعرض معلومات الأجهزة وبرامج تشغيلها، ويساعدك في فحص حالة العتاد والواجهات. 5. /dev: يحتوي ملفات تمثل الأجهزة، مثل الأقراص والواجهات الطرفية. لا تحذف ملفًا منه دون معرفة وظيفته، لأنك قد تمنع النظام من الوصول إلى جهاز أساسي.
بعد ذلك افحص العمليات. تعرض ps لقطة دقيقة في لحظة محددة، بينما تعرض top نشاطًا متجددًا. استخدم:
bash ps aux --sort=-%cpu | head top pstree -p
يظهر الأمر الأول أكثر العمليات استهلاكًا للمعالج، ويعرض top التغير المستمر، بينما يوضح pstree علاقة العملية الرئيسية بالعمليات التابعة. إذا وجدت عملية عالقة، سجّل رقمها أولًا، ثم أرسل لها إشارة إنهاء لطيفة:
bash kill 2481
استخدم الإنهاء القسري فقط عندما تفشل الطريقة العادية:
bash kill -9 2481
يحاول الإنهاء العادي منح البرنامج فرصة لإغلاق الملفات وحفظ البيانات، أما الإنهاء القسري فيوقفه فورًا وقد يترك بيانات غير مكتملة.
systemd هو مدير الخدمات والتهيئة في معظم توزيعات لينكس الحديثة. تتحكم في خدمة باستخدام systemctl:
bash systemctl status nginx systemctl restart nginx systemctl enable --now nginx
يعرض status الحالة وآخر الرسائل، ويعيد restart تشغيل الخدمة، بينما يفعّل enable --now التشغيل التلقائي مع تشغيل الخدمة فورًا. اقرأ السجل بدل الاكتفاء برسالة “فشل التشغيل”:
bash journalctl -u nginx -b --no-pager
يعرض الخيار -u سجل الوحدة، ويقصر -b النتائج على الإقلاع الحالي. ابحث عن مسار ملف خاطئ، منفذ مستخدم، أو إذن مرفوض.
لإنشاء خدمة مخصصة، اكتب وحدة في /etc/systemd/system/backup-local.service:
`ini [Unit] Description=نسخ إعدادات محلية After=local-fs.target
[Service] Type=oneshot ExecStart=/usr/local/sbin/backup-local.sh
[Install] WantedBy=multi-user.target `
بعد حفظها، نفّذ:
bash systemctl daemon-reload systemctl start backup-local.service systemctl status backup-local.service
يقرأ daemon-reload تعريف الوحدة الجديد. استخدم Type=oneshot عندما تنفذ الخدمة مهمة وتنتهي، ولا تستخدمه لخدمة طويلة الأمد.
الصلاحيات تكمل الطبقات السابقة. يتكون إذن الملف من قراءة وكتابة وتنفيذ للمالك والمجموعة والآخرين. افحصها عبر:
bash ls -l /etc/ssh/sshd_config
يغيّر chown المالك والمجموعة، ويغيّر chmod الأذونات:
bash chown root:root /etc/ssh/sshd_config chmod 600 /etc/ssh/sshd_config
يمنح 600 المالك القراءة والكتابة فقط. استخدم قوائم التحكم بالوصول (Access Control Lists) عندما تحتاج إلى منح مستخدم إضافي وصولًا محددًا دون تغيير مالك الملف:
bash setfacl -m u:deploy:r /srv/app/config.yml getfacl /srv/app/config.yml
تمنح القاعدة السابقة المستخدم deploy صلاحية القراءة فقط. راجع أيضًا البتات الخاصة: يمنح SUID البرنامج هوية مالكه أثناء التنفيذ، ويجعل SGID الملفات الجديدة ترث المجموعة، بينما يمنع Sticky Bit المستخدم من حذف ملفات لا يملكها داخل دليل مشترك مثل /tmp. افحصها بعناية قبل تغييرها، لأن الخطأ فيها قد يوسع الوصول إلى ملفات حساسة.
الخلاصة العملية: ابدأ بالنواة والموارد، ثم افحص الملفات والسجلات، ثم العمليات والخدمات، ثم الصلاحيات. هذا هو ترتيب منهج طبقات النظام.
تطبيق عملي: تشخيص خدمة متوقفة
لنفترض أن خادمًا يشغل خدمة ويب، وأن المستخدمين يحصلون على خطأ عند فتح الموقع بعد تعديل إعداد الخدمة. اتبع الخطوات التالية:
1. تحقق من حالة الخدمة bash systemctl status nginx --no-pager إذا ظهرت حالة failed، لا تعِد تشغيل الخادم. انتقل إلى السجل لمعرفة السبب.
2. اقرأ السجل الخاص بالإقلاع الحالي bash journalctl -u nginx -b -n 50 --no-pager إذا ظهر أن المنفذ 80 مستخدم، اكتشف العملية المنافسة: bash ss -ltnp | grep ':80' يجب أن ترى اسم البرنامج ورقم العملية التي تستمع على المنفذ.
3. اختبر إعداد الخدمة قبل تشغيلها bash nginx -t النتيجة الناجحة يجب أن تتضمن أن الصياغة صحيحة وأن الاختبار اكتمل بنجاح. إذا ذكر الملف رقم سطر، أصلح ذلك السطر بدل تعديل ملفات أخرى.
4. راجع صلاحيات ملف الإعداد bash ls -l /etc/nginx/nginx.conf namei -l /etc/nginx/nginx.conf يوضح namei صلاحيات كل دليل في المسار. قد يملك الملف أذونات صحيحة، لكن يمنع أحد الأدلة الوسيطة الوصول إليه.
5. افحص الذاكرة والعمليات bash free -h ps aux --sort=-%mem | head إذا اقتربت الذاكرة من الامتلاء، عالج العملية الأعلى استهلاكًا بعد فهم وظيفتها. لا تقتل عملية عشوائيًا، خصوصًا إذا كانت قاعدة بيانات أو خدمة تخزين.
6. أعد التشغيل وتحقق من النتيجة bash systemctl restart nginx systemctl is-active nginx يجب أن تعيد is-active القيمة active. اختبر المنفذ محليًا: bash curl -I http://127.0.0.1 ظهور استجابة HTTP يثبت أن الخدمة تستجيب محليًا، لكنه لا يثبت بعد سلامة الشبكة الخارجية.
قائمة فحص سريعة:
• افحص إصدار النواة والذاكرة قبل تغيير الإعدادات. - اقرأ سجل الوحدة باستخدام journalctl. - اختبر صياغة الإعداد بأداة الخدمة نفسها. - تحقق من المنفذ والعملية التي تستخدمه. - راجع مالك الملف وأذوناته ومسارات الأدلة. - أعد تشغيل الخدمة فقط، ثم تحقق من حالتها والاستجابة المحلية. - سجّل التغيير والنتيجة حتى يستطيع المسؤول التالي متابعة العمل.
إذا نجحت الخدمة محليًا وفشل الوصول من الشبكة، فقد انتقلت المشكلة إلى طبقة أخرى. أما إذا فشلت محليًا، فابقَ داخل طبقات الخدمة والإعداد والموارد بدل فحص معدات الشبكة بلا دليل.
أخطاء شائعة تحتاج إلى انتباه
إعادة تشغيل الخادم بدل تحديد الخدمة المتوقفة
تؤدي إعادة التشغيل إلى إخفاء الدليل الموجود في الذاكرة والسجل، وقد تعيد المشكلة بعد دقائق. كما أنها توقف خدمات سليمة بلا حاجة.
افعل هذا: افحص systemctl status وjournalctl، ثم أعد تشغيل الوحدة المتأثرة فقط.
لا تفعل هذا: لا تستخدم reboot كأول حل لمجرد أن الموقع لا يستجيب.
استخدام الإنهاء القسري لكل عملية عالقة
قد يؤدي kill -9 إلى فقدان بيانات لم تُكتب على القرص، خصوصًا مع الخدمات التي تستخدم قواعد بيانات أو ملفات سجلات.
افعل هذا: استخدم kill العادي، انتظر، ثم افحص السجل والموارد قبل التصعيد.
لا تفعل هذا: لا تقتل العملية الأعلى استهلاكًا للمعالج دون معرفة اسمها ووظيفتها.
منح صلاحيات واسعة لإصلاح خطأ وصول
قد يحل chmod -R 777 المشكلة لحظيًا، لكنه يسمح لكل مستخدم بالقراءة والكتابة والتنفيذ داخل المسار، وقد يفتح بابًا لتعديل ملفات الخدمة.
افعل هذا: حدّد المستخدم أو المجموعة المطلوبة، ثم استخدم chown أو قائمة تحكم بالوصول مثل setfacl بصلاحية دقيقة.
لا تفعل هذا: لا توسّع الصلاحيات على دليل كامل قبل معرفة الملف الذي يرفض الوصول وسبب الرفض.
عندما تربط كل عطل بطبقة واضحة، تتحول إدارة الخادم من سلسلة أوامر تجريبية إلى تشخيص قابل للتكرار. تبدأ بالنواة، تمر عبر الملفات والعمليات، وتنتهي بخدمة وصلاحيات مضبوطة؛ وهذه الرؤية تمهّد لإدارة التخزين والشبكات والأمان على أساس سليم.
End of chapter one. 4 more chapters and about 6,213 words in the full book.
Swipe or use the arrows to turn the page
What's inside: 5 chapters
- 1. فهم النواة وإدارة خدمات لينكس
- 2. إدارة التخزين والنسخ الاحتياطي
- 3. بناء شبكات لينكس المؤسسية
- 4. تأمين الخوادم والاتصالات
- 5. تشغيل الآلات الافتراضية والحاويات
About this book
"Linux Systems And Infrastructure" is a how-to guide book by Anonymous with 5 chapters and approximately 6,213 words. Linux system administration, networking, security, virtualization, and enterprise infrastructure.
This book was created using Inkfluence AI, an AI-powered book generation platform that helps authors write, design, and publish complete books. It was made with the AI Ebook Generator.
Frequently Asked Questions
What is "Linux Systems And Infrastructure" about?
Linux system administration, networking, security, virtualization, and enterprise infrastructure
How many chapters are in "Linux Systems And Infrastructure"?
The book contains 5 chapters and approximately 6,213 words. Topics covered include فهم النواة وإدارة خدمات لينكس, إدارة التخزين والنسخ الاحتياطي, بناء شبكات لينكس المؤسسية, تأمين الخوادم والاتصالات, and more.
Who wrote "Linux Systems And Infrastructure"?
This book was written by Anonymous and created using Inkfluence AI, an AI book generation platform that helps authors write, design, and publish books.
How can I create a similar how-to guide book?
You can create your own how-to guide book using Inkfluence AI. Describe your idea, choose your style, and the AI writes the full book for you. It's free to start.
Write your own how-to guide book with AI
Describe your idea and Inkfluence writes the whole thing. Free to start.
Start writingCreated with Inkfluence AI