أوامر Linux الأساسية التي يجب أن يعرفها كل مهندس DEVOPS الجزء الثاني

تم التحديث: ٢٧ مارس ٢٠٢٦

Essential Linux Commands Every DEVOPS Engineer Should Know Part2

ملخص

تشخيص الشبكات باستخدام ss (بديل netstat)، و ip، و curl، و dig؛ وتصحيح أخطاء الحاويات عبر Docker exec و kubectl exec؛ والمراقبة في الوقت الفعلي باستخدام htop و btop؛ وأدوات القابلية للملاحظة القائمة على eBPF للحصول على رؤى عميقة للنظام.

بناءً على أوامر الملفات والأذونات في الجزء الأول، يتعمق الجزء الثاني في الأوامر التي يستخدمها مهندسو DevOps يوميًا لاستكشاف الأخطاء وإصلاحها والمراقبة وعمليات الحاويات. في عام 2026، ومع هيمنة أعباء العمل المعتمدة على الحاويات على البنية التحتية، أصبح فهم كل من أوامر الشبكة التقليدية وأدوات تصحيح أخطاء الحاويات الحديثة أمرًا ضروريًا. يغطي هذا القسم مجموعة أدوات الشبكات، وأوامر مراقبة النظام، والعمليات الخاصة بالحاويات التي تميز مهندسي DevOps ذوي الخبرة عن المبتدئين.

تشخيص الشبكة: مجموعة الأدوات الحديثة

أصبحت أوامر ifconfig و netstat القديمة مهجورة لصالح أوامر ip و ss، التي توفر معلومات أكثر وتعمل عبر جميع توزيعات Linux الحديثة.

إعدادات IP (بديل ifconfig):

# Old way: ifconfig
ifconfig                        # Display all interfaces (deprecated)

# Modern replacement: ip
ip addr show                    # Show all IP addresses
ip addr show eth0               # Show specific interface
ip link set eth0 up             # Bring interface up
ip link set eth0 down           # Bring interface down
ip route show                   # Show routing table
ip route add 192.168.0.0/24 via 10.0.0.1  # Add static route

أمر ip أسرع وأقوى وأصبح الآن قياسيًا في جميع توزيعات Linux. استخدمه لجميع مهام تكوين الواجهات.

اتصالات الشبكة (بديل netstat):

# Old way: netstat (deprecated, slow on large systems)
netstat -tlnp                   # Show listening ports

# Modern replacement: ss (socket statistics)
ss -tlnp                        # Show listening ports (TCP, listening, numeric, program)
ss -tlnpu                       # Include UDP sockets
ss -atnepo                      # Show all connections with extended info
ss -anr | grep ESTABLISHED      # Show established connections
ss -k dst 192.168.1.100         # Kill connections to specific IP (advanced)

أمر ss مبني مباشرة في واجهة netlink الخاصة بالنواة (kernel)، مما يجعله أسرع بكثير من netstat — وهو أمر بالغ الأهمية عند تصحيح مشكلات الاتصال على الأنظمة التي تحتوي على آلاف المقابس (sockets) المفتوحة.

فهم أعلام (flags) ss:

  • -t: مقابس TCP
  • -u: مقابس UDP
  • -l: المقابس المستمعة فقط
  • -a: جميع المقابس
  • -n: إظهار العناوين الرقمية (عدم حل أسماء المضيفين)
  • -p: إظهار اسم العملية/معرف العملية (PID)
  • -e: معلومات موسعة
  • -o: معلومات المؤقت

حل أسماء النطاقات (dig):

dig example.com                 # Full DNS query
dig example.com +short          # Short answer only
dig example.com MX              # Mail server records
dig @8.8.8.8 example.com        # Query specific nameserver
dig example.com +trace          # Trace entire DNS path
nslookup example.com            # Alternative (older but still useful)

عندما يفشل اكتشاف الخدمة في Kubernetes أو يتعطل حل DNS، يوفر dig معلومات تصحيح مفصلة توضح استجابات DNS الدقيقة.

اختبار اتصال HTTP:

curl https://example.com                    # Simple GET request
curl -I https://example.com                 # Headers only (useful for status codes)
curl -X POST -d '{"key":"value"}' https://example.com  # POST with JSON
curl -H "Authorization: Bearer TOKEN" https://example.com  # Custom headers
curl --resolve example.com:443:192.168.1.100 https://example.com  # Override DNS
curl -w "%{http_code}\n" -o /dev/null https://example.com  # Check status code only

لتصحيح أخطاء API واختبارات الاتصال السريعة، يعد curl أداة لا غنى عنها في عمل DevOps.

أوامر تصحيح أخطاء الحاويات

تصحيح أخطاء Docker

Docker ps                       # List running containers
Docker ps -a                    # List all containers (including stopped)
Docker logs <container_id>      # View container output
Docker logs -f <container_id>   # Follow logs in real-time
Docker exec -it <container_id> /bin/bash  # Open shell in running container
Docker exec <container_id> cat /etc/hosts  # Run command without interactive shell
Docker inspect <container_id>   # View detailed container configuration
Docker top <container_id>       # View running processes inside container
Docker stats                    # Real-time resource usage (memory, CPU)
Docker network ls               # List networks
Docker network inspect <network>  # Inspect specific network

مزيج Docker exec -it ضروري لتصحيح مشكلات التطبيقات دون إعادة بناء الحاويات. يبقي العلم -i المدخل القياسي (stdin) مفتوحًا، ويقوم -t بتخصيص محطة طرفية وهمية (pseudo-terminal).

تصحيح أخطاء Kubernetes

kubectl exec -it <pod> -- /bin/bash      # Open shell in pod
kubectl exec <pod> -- cat /var/log/app   # Run command in pod
kubectl logs <pod>                       # View pod logs
kubectl logs -f <pod>                    # Follow pod logs
kubectl logs <pod> -c <container>        # Logs from specific container
kubectl logs <pod> --tail=50              # Last 50 lines
kubectl describe pod <pod>               # Detailed pod information
kubectl get events -n <namespace>        # Recent events in namespace
kubectl top pod <pod>                    # Resource usage for pod
kubectl port-forward <pod> 8080:8080     # Forward local port to pod
kubectl cp <pod>:/path/to/file ./local   # Copy file from pod

عندما يتعطل pod في Kubernetes أو يتصرف بشكل غير متوقع، فإن kubectl logs و kubectl exec هما أولى أدوات التصحيح لديك. العلم --tail مفيد لتجنب المخرجات الهائلة من الحاويات التي تعمل لفترات طويلة.

بيئة تشغيل الحاويات (crictl)

للأنظمة التي تستخدم بيئات تشغيل الحاويات مثل containerd (الشائعة في Kubernetes)، استخدم crictl:

crictl ps                       # List running containers
crictl logs <container_id>      # View container logs
crictl exec -it <container_id> /bin/bash  # Shell into container
crictl inspect <container_id>   # Container details
crictl images                   # List pulled images

يعد crictl ضروريًا على عقد Kubernetes حيث قد لا يكون Docker مثبتًا ولكن containerd موجود.

مراقبة النظام والأداء

htop (مراقب العمليات التفاعلي)

htop                            # Interactive process list
htop -p <pid>                   # Monitor specific process
htop -u <username>              # Monitor specific user's processes
# Within htop: press F6 to sort by different columns (CPU, memory, etc.)

أمر htop أفضل بكثير من top، حيث يوفر مخرجات ملونة، وفرزًا أفضل، وواجهة تفاعلية.

btop (مراقب الموارد الحديث)

btop                            # Full system resource overview
# Shows: CPU, memory, disks, network, processes
# Interactive: sort by column, search processes, kill processes

أمر btop هو إعادة تنفيذ حديثة لـ top و htop مع واجهة رسومية في المحطة الطرفية تعرض المعالج والذاكرة والقرص والشبكة في عرض واحد.

مراقبة إدخال/إخراج القرص (Disk I/O)

iotop                           # Real-time disk I/O by process
iotop -o                        # Only show processes doing I/O
iotop -b                        # Batch mode (non-interactive output)
iostat -x 1                     # Extended I/O statistics, refresh every 1 second
dstat                           # Combined resource monitoring (CPU, disk, network)
dstat -cd --disk-util           # Disk utilization summary

عند مواجهة اختناقات في إدخال/إخراج القرص، يوضح iotop على الفور العمليات التي تستهلك القرص بكثافة.

مراقبة حركة مرور الشبكة

nethogs                         # Bandwidth usage by process
nethogs -r                      # Reverse sorting (highest bandwidth first)
iftop                           # Live network bandwidth by host
iftop -P                        # Show ports
nload                           # Simple bandwidth graph

يوضح nethogs أي تطبيق يستهلك النطاق الترددي — وهو أمر بالغ الأهمية لتحديد "الجيران المزعجين" في البنية التحتية المشتركة.

تحليل الذاكرة

free -h                         # Human-readable memory usage
free -h -s 2                    # Refresh every 2 seconds
ps aux --sort=-%mem | head -10  # Top 10 memory-consuming processes
pmap -x <pid>                   # Memory map of specific process
smem -s swap -sk -r             # Summary of system memory (installed: `sudo pip install smem`)

أدوات القابلية للملاحظة القائمة على eBPF

يسمح eBPF (extended Berkeley Packet Filter) بتشغيل برامج نواة آمنة دون إعادة تجميع. تستخدم عدة أدوات حديثة eBPF للملاحظة العميقة للنظام:

tcpdump (التقاط الحزم):

tcpdump -i eth0                 # Capture all traffic on eth0
tcpdump -i eth0 port 80         # Capture HTTP traffic
tcpdump -i eth0 src 192.168.1.100  # Capture traffic from specific IP
tcpdump -i eth0 -w capture.pcap # Save to file for analysis
tcpdump -i eth0 -A              # Print packet contents (ASCII)

أدوات قائمة على eBPF (تظهر في 2025-2026):

  • bpftrace: تتبع ديناميكي لنداءات النظام والأحداث
  • ebpf: ملاحظة مخصصة للنواة دون إعادة تجميع
  • falco: مراقبة أمن وقت التشغيل باستخدام eBPF

مثال باستخدام bpftrace:

bpftrace -e 'tracepoint:syscalls:sys_enter_openat { printf("%s\n", str(args->filename)); }'
# Trace all file open system calls in real-time without kernel recompilation

إدارة العمليات

ps aux                          # List all running processes
ps aux | grep nginx             # Find specific process
ps -ef --forest                 # Process tree (hierarchical view)
pgrep -l "python.*"             # Find processes matching pattern
pkill -f "old_process"          # Kill process by pattern (safer than killall)
kill <pid>                      # Send SIGTERM (graceful shutdown)
kill -9 <pid>                   # Send SIGKILL (force kill, last resort)
killall nginx                   # Kill all instances of process (dangerous!)
fg                              # Bring background job to foreground
bg                              # Resume stopped job in background
jobs                            # List background jobs
wait <pid>                      # Wait for process to complete

أمر pkill أكثر أمانًا من killall لأنه يدعم مطابقة الأنماط ولكنه أكثر تحديدًا من القتل بالاسم وحده.

معلومات النظام

uname -a                        # Kernel version and system info
lsb_release -a                  # Linux distribution version
cat /proc/cpuinfo                # CPU information
cat /proc/meminfo               # Memory information
lscpu                           # CPU architecture summary
lsblk                           # Block devices and partitions
lspci                           # PCI devices (GPUs, NICs)
lsusb                           # USB devices

عند استكشاف مشكلات التوافق أو مشاكل الأداء، يعد التحقق السريع من إصدار النواة ومواصفات الأجهزة أمرًا ضروريًا.

ورقة مرجعية سريعة

المهمة الأمر حالة الاستخدام
العثور على المنافذ المستمعة ss -tlnp استكشاف تعارضات المنافذ
مراقبة العمليات btop أو htop التحقق من استهلاك المعالج/الذاكرة
عرض سجلات الحاوية Docker logs -f <id> تصحيح مشكلات الحاوية
تصحيح شبكات pod kubectl exec -it <pod> -- bash استكشاف أخطاء الشبكة
مراقبة إدخال/إخراج القرص iotop -o العثور على اختناقات الإدخال/الإخراج
التحقق من حل DNS dig example.com استكشاف أخطاء DNS
مراقبة النطاق الترددي nethogs -r العثور على مستهلكي النطاق الترددي
عرض شجرة العمليات ps -ef --forest فهم تسلسل العمليات

الخلاصة

يزودك الجزء الثاني بأدوات الشبكات والمراقبة وتصحيح أخطاء الحاويات اللازمة لعمل DevOps في بيئات الإنتاج. إن إتقان ss و ip و curl للشبكات؛ و Docker exec و kubectl exec لتصحيح أخطاء الحاويات؛ و btop و iotop و nethogs للمراقبة في الوقت الفعلي يجعلك فعالاً في تشخيص مشكلات البنية التحتية بسرعة. مع استمرار تبني الحاويات و Kubernetes في عام 2026، تظل هذه الأوامر أساسية في مجموعة أدوات أي مهندس DevOps.


نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.