0Pricing
Linux Command Line & Bash Scripting Mastery · درس

أتمتة الأقراص وأنظمة الملفات والضمّ

افحص الأجهزة الكتلية وأدر إدخالات fstab وبرمج عمليات LVM والضمّ بأمان

أتمتة الأقراص وأنظمة الملفات والضمّ درس مجاني في Linux Command Line & Bash Scripting Mastery على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Linux Command Line & Bash Scripting Mastery، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Linux Command Line & Bash Scripting Mastery 4 دروس في المجموع.

فهم أجهزة الكتل باستخدام lsblk وfdisk

قبل أتمتة عمليات الأقراص، يجب أن تتمكنوا من فحص أجهزة الكتل الموجودة على النظام. ومن الأداتين الأساسيتين لذلك lsblk وfdisk -l.

  • lsblk — يسرد أجهزة الكتل بتنسيق شجري، موضحًا أسماء الأجهزة وأحجامها ونقاط تحميلها وأنواعها (disk وpart وlvm)
  • fdisk -l — يعرض جداول الأقسام وتفاصيل القطاعات (ويتطلب صلاحيات root)
  • blkid — يطبع UUID وأنواع أنظمة الملفات لكل جهاز كتل

في البرامج النصية، ستحتاجون غالبًا إلى تحليل هذه المخرجات لاكتشاف الأقراص المتاحة، أو التحقق مما إذا كان القسم مهيأً، أو تحديد UUID الخاص به قبل تحميله.

#!/usr/bin/env bash
# Inspect all block devices and their UUIDs
set -euo pipefail

echo '=== Block Device Tree ==='
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID

echo ''
echo '=== Partition Table Details ==='
sudo fdisk -l 2>/dev/null | grep -E '^Disk |^/dev/'

echo ''
echo '=== UUID Lookup via blkid ==='
sudo blkid | awk -F: '{print $1}' | while read -r dev; do
  uuid=$(sudo blkid -s UUID -o value "$dev" 2>/dev/null || echo 'N/A')
  fstype=$(sudo blkid -s TYPE -o value "$dev" 2>/dev/null || echo 'unknown')
  printf '%-20s UUID=%-38s TYPE=%s\n' "$dev" "$uuid" "$fstype"
done

التحقق من مساحة القرص باستخدام df وdu

تُعد df وdu الأداتين الأساسيتين لإعداد تقارير عن استخدام نظام الملفات والأدلة. وتستخدمونهما في البرامج النصية لإدارة النظام لإطلاق التنبيهات، أو فرض الحصص، أو تحديد وقت توفير مساحة إضافية.

  • df -h — عرض استخدام أنظمة الملفات بصيغة سهلة القراءة عبر جميع أنظمة الملفات المحمّلة
  • df -BG — إخراج النتائج بالغيغابايت لتحليل رقمي متسق
  • du -sh /path — عرض الحجم الإجمالي لدليل محدد
  • du -d 1 /var — تفصيل بمستوى عمق واحد (مفيد لمعرفة الدليل الفرعي الكبير)

يُحلَّل عمود النسبة المئوية المستخدمة من df عادةً لإطلاق تنبيهات امتلاء القرص في برامج المراقبة النصية.

#!/usr/bin/env bash
# Alert if any mounted filesystem exceeds a usage threshold
set -euo pipefail

THRESHOLD=80   # percent

echo 'Checking filesystem usage...'
df -h --output=source,pcent,target | tail -n +2 | while IFS= read -r line; do
  device=$(awk '{print $1}' <<< "$line")
  pct=$(awk '{print $2}' <<< "$line" | tr -d '%')
  mount=$(awk '{print $3}' <<< "$line")

  # Skip pseudo filesystems
  [[ "$device" == tmpfs* || "$device" == devtmpfs* ]] && continue

  if (( pct >= THRESHOLD )); then
    echo "WARNING: $device mounted at $mount is ${pct}% full" >&2
  else
    echo "OK: $device at $mount is ${pct}% used"
  fi
done

قراءة وتحليل /etc/fstab

يمثل /etc/fstab جدول أنظمة الملفات الثابت — فهو يحدد الأجهزة التي تُحمّل عند الإقلاع، والمسار الذي تُحمّل إليه، والخيارات المستخدمة. ويتكون كل سطر من ستة حقول:

  • الجهاز — UUID=... أو LABEL=... أو /dev/sdX
  • نقطة التحميل — مسار الدليل
  • نوع نظام الملفات — ext4 وxfs وnfs وtmpfs وغيرها
  • الخيارات — defaults وro وnoexec وnofail وغيرها
  • Dump — القيمة 0 أو 1 (علامة النسخ الاحتياطي)
  • Pass — القيمة 0 أو 1 أو 2 (ترتيب fsck)

يجب أن تتعامل البرامج النصية التي تضيف إدخالات fstab أو تتحقق منها بسلاسة مع التعليقات (الأسطر التي تبدأ بـ #) والأسطر الفارغة. احرصوا دائمًا على تفضيل UUID على أسماء الأجهزة لتفادي مشكلات إعادة الإقلاع التي قد يتغير فيها ترتيب الأجهزة.

#!/usr/bin/env bash
# Parse /etc/fstab and display non-comment entries in a readable table
set -euo pipefail

FSTAB=/etc/fstab

printf '%-40s %-20s %-10s %s\n' 'DEVICE' 'MOUNTPOINT' 'FSTYPE' 'OPTIONS'
printf '%s\n' '-------------------------------------------------------------------------------------'

while IFS= read -r line; do
  # Skip blank lines and comments
  [[ -z "$line" || "$line" =~ ^[[:space:]]*# ]] && continue

  read -r device mountpt fstype options _dump _pass <<< "$line"
  printf '%-40s %-20s %-10s %s\n' "$device" "$mountpt" "$fstype" "$options"
done < "$FSTAB"

إضافة إدخال إلى fstab بأمان

يُعدّ تحرير /etc/fstab يدويًا عرضةً للأخطاء. فقد يؤدي إدخال غير صحيح إلى منع النظام من الإقلاع. يجب أن يراعي نص الأتمتة الآمن ما يلي:

  • التحقق من وجود الإدخال مسبقًا قبل إلحاقه (قابلية التكرار)
  • إنشاء نسخة احتياطية من الملف الأصلي قبل إجراء أي تعديل
  • استخدام UUID بدلًا من مسار الجهاز
  • إضافة nofail إلى خيارات التحميل حتى لا يؤدي قرص مفقود إلى إيقاف الإقلاع
  • تشغيل mount -a في وضع المحاكاة أو إجراء اختبار تحميل للتحقق قبل إعادة التشغيل

بعد كتابة الإدخال، تحقّق دائمًا باستخدام findmnt --verify (المتاح في توزيعات systemd الحديثة) لاكتشاف أخطاء الصياغة فورًا.

#!/usr/bin/env bash
# Safely append a new entry to /etc/fstab (idempotent)
set -euo pipefail

DEVICE_PATH='/dev/sdb1'
MOUNTPOINT='/mnt/data'
FSTYPE='ext4'
OPTIONS='defaults,nofail'
FSTAB='/etc/fstab'

# Resolve UUID for stable identification
UUID=$(sudo blkid -s UUID -o value "$DEVICE_PATH")
if [[ -z "$UUID" ]]; then
  echo "ERROR: Could not resolve UUID for $DEVICE_PATH" >&2
  exit 1
fi

ENTRY="UUID=$UUID  $MOUNTPOINT  $FSTYPE  $OPTIONS  0  2"

# Idempotency: skip if UUID already referenced in fstab
if grep -qsF "UUID=$UUID" "$FSTAB"; then
  echo "INFO: fstab already contains UUID=$UUID — skipping."
  exit 0
fi

# Backup
cp -p "$FSTAB" "${FSTAB}.bak.$(date +%Y%m%d%H%M%S)"

# Create mountpoint if needed
sudo mkdir -p "$MOUNTPOINT"

# Append entry
echo "$ENTRY" | sudo tee -a "$FSTAB" > /dev/null
echo "INFO: Added: $ENTRY"

# Validate
sudo findmnt --verify --verbose || echo 'WARNING: findmnt verify reported issues'

تحميل أنظمة الملفات وإلغاء تحميلها في النصوص البرمجية

تُعدّ أوامر mount وumount مباشرةً، لكن يجب أن تتعامل النصوص البرمجية مع الحالات الاستثنائية:

  • قد يكون الجهاز محمّلًا بالفعل — يفشل تحميله مرة أخرى؛ تحقّق باستخدام findmnt أو mountpoint
  • قد تكون نقطة التحميل مشغولة (بسبب ملفات مفتوحة) — يفشل umount؛ استخدم lsof +D /mnt/target للعثور على العمليات المتسببة في ذلك
  • استخدم mount -o remount,ro /mnt/data للتحويل إلى وضع القراءة فقط دون إلغاء التحميل
  • استخدم umount -l /mnt/data (التحميل الكسول) كحل أخير — إذ يفصل مساحة الأسماء، لكنه ينتظر إغلاق المراجع

في الأتمتة، تحقّق دائمًا من رمز الخروج للأمر mount وسجّل حالات الفشل في syslog باستخدام logger.

#!/usr/bin/env bash
# Mount a device only if not already mounted; log outcome
set -euo pipefail

DEVICE='/dev/sdb1'
MOUNTPOINT='/mnt/data'

log() { logger -t disk-mount "$*"; echo "[$(date '+%F %T')] $*"; }

# Check if already mounted
if mountpoint -q "$MOUNTPOINT"; then
  log "INFO: $MOUNTPOINT is already mounted — nothing to do."
  exit 0
fi

# Ensure mountpoint directory exists
sudo mkdir -p "$MOUNTPOINT"

# Attempt mount
if sudo mount "$DEVICE" "$MOUNTPOINT"; then
  log "OK: Mounted $DEVICE at $MOUNTPOINT"
else
  log "ERROR: Failed to mount $DEVICE at $MOUNTPOINT"
  exit 1
fi

# Show what is now mounted there
df -h "$MOUNTPOINT"

مقدمة إلى LVM: وحدات التخزين الفعلية ومجموعات وحدات التخزين ووحدات التخزين المنطقية

يضيف LVM (Logical Volume Manager) طبقة تجريد مرنة بين أجهزة الكتل الأولية وأنظمة الملفات. ويتكون التسلسل الهرمي من ثلاث طبقات:

  • Physical Volume (PV) — قرص أولي أو قسم جرى تهيئته باستخدام pvcreate
  • Volume Group (VG) — تجميع وحدة PV واحدة أو أكثر باستخدام vgcreate
  • Logical Volume (LV) — قسم افتراضي يُنشأ من VG باستخدام lvcreate؛ وهو ما تقوم بتهيئته وتحميله

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

أوامر الفحص: pvs وvgs وlvs، ونظيراتها التفصيلية pvdisplay وvgdisplay وlvdisplay.

كتابة نصوص لإنشاء وحدات تخزين LVM

يتبع إعداد LVM آليًا تسلسلًا صارمًا: pvcreate → vgcreate → lvcreate → mkfs → mount. يجب أن تنجح كل خطوة قبل تشغيل الخطوة التالية — استخدم set -euo pipefail وتحقّق من مخرجات كل أمر.

  • تحقّق دائمًا من أن القرص المستهدف لا يحتوي على جدول أقسام موجود قبل استدعاء pvcreate
  • استخدم الخيار -y لتعطيل المطالبات التفاعلية في النصوص البرمجية غير التفاعلية
  • حدّد -L (حجمًا ثابتًا) أو -l 100%FREE لاستخدام كل المساحة المتبقية
  • بعد mkfs، استخدم مسار جهاز LV: /dev/<vgname>/<lvname>
#!/usr/bin/env bash
# Automate LVM setup: PV -> VG -> LV -> mkfs -> mount
set -euo pipefail

DISK='/dev/sdc'          # raw disk, no existing partitions
VG_NAME='vg_appdata'
LV_NAME='lv_appdata'
LV_SIZE='10G'
MOUNTPOINT='/mnt/appdata'
FSTYPE='xfs'

echo "[1/6] Initializing Physical Volume on $DISK"
sudo pvcreate -y "$DISK"

echo "[2/6] Creating Volume Group: $VG_NAME"
sudo vgcreate "$VG_NAME" "$DISK"

echo "[3/6] Creating Logical Volume: $LV_NAME (${LV_SIZE})"
sudo lvcreate -y -L "$LV_SIZE" -n "$LV_NAME" "$VG_NAME"

echo "[4/6] Formatting as $FSTYPE"
sudo mkfs."$FSTYPE" "/dev/$VG_NAME/$LV_NAME"

echo "[5/6] Mounting at $MOUNTPOINT"
sudo mkdir -p "$MOUNTPOINT"
sudo mount "/dev/$VG_NAME/$LV_NAME" "$MOUNTPOINT"

echo "[6/6] Done. Disk usage:"
df -h "$MOUNTPOINT"

# Show LVM summary
vgs && lvs

توسيع وحدة تخزين منطقية أثناء التشغيل

من أقوى ميزات LVM تغيير الحجم أثناء التشغيل — أي توسيع وحدة تخزين منطقية ونظام ملفاتها أثناء تحميلهما واستخدامهما. وتتم العملية كما يلي:

  1. وسّع LV باستخدام lvextend (يعيد الخيار -r تحجيم نظام الملفات في الخطوة نفسها)
  2. إذا لم تستخدم -r، فأعد تحجيم نظام الملفات بشكل منفصل: استخدم resize2fs مع ext4، وxfs_growfs مع xfs

قيود مهمة:

  • يمكن لـ xfs التوسع فقط ولا يمكن تقليصه أبدًا — لذلك خطّط للسعة بعناية
  • يمكن تقليص ext4، ولكن فقط أثناء إلغاء تحميله
  • تحقّق دائمًا من توفر مساحة خالية في VG باستخدام vgdisplay -s قبل التوسيع
#!/usr/bin/env bash
# Extend an LV and its xfs filesystem online
set -euo pipefail

VG_NAME='vg_appdata'
LV_NAME='lv_appdata'
EXTEND_BY='5G'
LV_DEV="/dev/$VG_NAME/$LV_NAME"

# Confirm VG has enough free space
FREE_GB=$(vgs --noheadings --units g -o vg_free "$VG_NAME" | tr -d ' g')
echo "VG free space: ${FREE_GB}G"
if (( $(echo "$FREE_GB < 5" | bc -l) )); then
  echo 'ERROR: Not enough free space in VG' >&2
  exit 1
fi

echo "Extending LV by $EXTEND_BY..."
sudo lvextend -L "+${EXTEND_BY}" "$LV_DEV"

echo 'Growing xfs filesystem online...'
sudo xfs_growfs "$LV_DEV"

echo 'New size:'
df -h "$LV_DEV"
lvs "$LV_DEV"

إنشاء أنظمة الملفات وتهيئتها

بعد إعداد الأقسام أو LVM، تحتاج إلى تهيئة جهاز الكتل بنظام ملفات. ومن الخيارات الشائعة في إدارة Linux:

  • ext4 — ناضج ومدعوم بالتسجيل، ويدعم التقليص؛ وهو الإعداد الافتراضي في العديد من التوزيعات (mkfs.ext4)
  • xfs — عالي الأداء، ومفضّل للملفات الكبيرة وعمليات الإدخال والإخراج المتوازية؛ وهو الإعداد الافتراضي في RHEL/CentOS (mkfs.xfs)
  • btrfs — يعتمد النسخ عند الكتابة، ويدعم اللقطات المضمنة (mkfs.btrfs)
  • tmpfs — يعتمد على ذاكرة RAM، ويُحدّد في fstab دون استخدام mkfs

اضبط دائمًا تسمية ذات معنى لنظام الملفات (باستخدام الخيار -L) حتى يمكن الإشارة إلى الجهاز باستخدام LABEL= في fstab كبديل احتياطي لـ UUID.

#!/usr/bin/env bash
# Format a partition and assign a label; print resulting UUID
set -euo pipefail

PARTITION='/dev/sdb1'
FSTYPE='ext4'
LABEL='appdata'

# Safety check: refuse to format a currently mounted device
if findmnt --source "$PARTITION" > /dev/null 2>&1; then
  echo "ERROR: $PARTITION is currently mounted. Unmount first." >&2
  exit 1
fi

echo "Formatting $PARTITION as $FSTYPE with label '$LABEL'..."
sudo mkfs."$FSTYPE" -L "$LABEL" -F "$PARTITION"

# Retrieve and display the new UUID
NEW_UUID=$(sudo blkid -s UUID -o value "$PARTITION")
echo "Formatted successfully."
echo "Label : $LABEL"
echo "UUID  : $NEW_UUID"
echo "Use this in fstab: UUID=$NEW_UUID  /mnt/$LABEL  $FSTYPE  defaults,nofail  0  2"

أتمتة تحميل NFS باستخدام autofs

بالنسبة إلى أنظمة ملفات الشبكة، قد يؤدي التحميل عند الإقلاع باستخدام fstab إلى تأخيرات أو حالات فشل إذا تعذر الوصول مؤقتًا إلى خادم NFS. يحلّ autofs هذه المشكلة بالتحميل عند الطلب وإلغاء التحميل بعد انتهاء مهلة زمنية.

  • الخريطة الرئيسية: /etc/auto.master — تحدد دليل نقطة التحميل وملف خريطته
  • الخريطة المباشرة: /etc/auto.nfs — تحدد الخيارات ومسار خادم NFS لكل دليل فرعي
  • أعد التحميل باستخدام systemctl reload autofs بعد إجراء التغييرات
  • تظهر نقاط التحميل تلقائيًا ضمن الدليل المُعدّ عند الوصول إليها

في النصوص البرمجية، يمكنك إنشاء ملف الخريطة ديناميكيًا من قائمة بمشاركات NFS ثم إعادة تحميل autofs — وهذا مفيد لتوفير التخزين المشترك عبر العديد من المضيفات.

#!/usr/bin/env bash
# Generate an autofs NFS map file from a share list and reload autofs
set -euo pipefail

NFS_SERVER='192.168.1.50'
AUTO_MAP='/etc/auto.nfs'
AUTO_MASTER='/etc/auto.master'
MOUNT_BASE='/nfs'

# Define shares: localname:remote_path
declare -A SHARES=(
  [homes]='/export/homes'
  [media]='/export/media'
  [backups]='/export/backups'
)

# Write map file
{
  echo '# Generated by disk-automation script'
  for localname in "${!SHARES[@]}"; do
    remote="${SHARES[$localname]}"
    echo "$localname  -rw,soft,timeo=30  ${NFS_SERVER}:${remote}"
  done
} | sudo tee "$AUTO_MAP" > /dev/null

echo "Wrote $AUTO_MAP"

# Ensure master map references this file
if ! grep -qF "$AUTO_MAP" "$AUTO_MASTER"; then
  echo "$MOUNT_BASE  $AUTO_MAP" | sudo tee -a "$AUTO_MASTER" > /dev/null
  echo "Updated $AUTO_MASTER"
fi

sudo systemctl reload autofs && echo 'autofs reloaded'

لقطة LVM للنسخ الاحتياطية الآمنة

توفر لقطات LVM نسخةً لنقطة زمنية محددة من وحدة تخزين منطقية، مما يتيح إنشاء نسخ احتياطية متسقة لأنظمة الملفات قيد التشغيل دون إلغاء تحميلها. وتلتقط اللقطة الحالة وقت إنشائها باستخدام النسخ عند الكتابة.

  • الإنشاء: lvcreate -s -n lv_snap -L 2G /dev/vg_data/lv_data
  • حمّل اللقطة في وضع القراءة فقط لإجراء نسخ احتياطي لها: mount -o ro /dev/vg_data/lv_snap /mnt/snap
  • شغّل rsync أو tar على نقطة تحميل اللقطة
  • أزل اللقطة بعد النسخ الاحتياطي: umount /mnt/snap && lvremove -f /dev/vg_data/lv_snap

اجعل حجم اللقطة 10-20% من وحدة LV الأصلية. فإذا امتلأت اللقطة، تصبح غير صالحة — راقبها باستخدام lvs -o lv_name,snap_percent.

#!/usr/bin/env bash
# Create an LVM snapshot, back up via tar, then remove snapshot
set -euo pipefail

VG='vg_appdata'
ORIGIN_LV='lv_appdata'
SNAP_LV='lv_appdata_snap'
SNAP_SIZE='2G'
SNAP_MOUNT='/mnt/snap_backup'
BACKUP_DEST='/var/backups/appdata'
DATESTAMP=$(date +%Y%m%d_%H%M%S)

trap 'sudo umount "$SNAP_MOUNT" 2>/dev/null; sudo lvremove -f "/dev/$VG/$SNAP_LV" 2>/dev/null' ERR EXIT

echo '[1] Creating snapshot...'
sudo lvcreate -s -n "$SNAP_LV" -L "$SNAP_SIZE" "/dev/$VG/$ORIGIN_LV"

echo '[2] Mounting snapshot read-only...'
sudo mkdir -p "$SNAP_MOUNT"
sudo mount -o ro "/dev/$VG/$SNAP_LV" "$SNAP_MOUNT"

echo '[3] Archiving to backup destination...'
sudo mkdir -p "$BACKUP_DEST"
sudo tar -czf "$BACKUP_DEST/appdata_${DATESTAMP}.tar.gz" -C "$SNAP_MOUNT" .

echo '[4] Cleaning up snapshot...'
sudo umount "$SNAP_MOUNT"
sudo lvremove -f "/dev/$VG/$SNAP_LV"

echo "Backup complete: $BACKUP_DEST/appdata_${DATESTAMP}.tar.gz"

اختبار المعرفة: أتمتة fstab والتحميل بأمان

اختبر فهمك لممارسات أتمتة الأقراص وأنظمة الملفات والتحميل بأمان التي تناولها هذا الدرس.

مراجعة الدرس: أتمتة الأقراص وأنظمة الملفات والتحميل

في هذا الدرس أنشأت مجموعة أدوات متكاملة من أجل إدارة الأقراص والتخزين بأمان وقابلية للبرمجة النصية على أنظمة Linux. وأهم النقاط:

  • الفحص أولًا: توفر لك lsblk وblkid وdf وdu المعلومات اللازمة قبل إجراء أي تغيير.
  • الانضباط عند استخدام fstab: استخدم UUID دائمًا، وأدرج nofail دائمًا، وأنشئ نسخة احتياطية قبل التحرير، وتحقّق باستخدام findmnt --verify.
  • أمان التحميل: تحقّق من mountpoint -q قبل التحميل، وسجّل باستخدام logger، وتعامل مع أخطاء انشغال الجهاز باستخدام lsof.
  • قوة LVM: يتيح تسلسل PV → VG → LV التوسيع أثناء التشغيل والنسخ الاحتياطية المعتمدة على اللقطات دون توقف.
  • اختيار نظام الملفات مهم: xfs للأداء (قابل للتوسيع فقط)، وext4 للمرونة (يمكن تقليصه دون تحميل)، وbtrfs لأحمال العمل الأصلية المعتمدة على اللقطات.
  • NFS عند الطلب: يتجنب autofs تأخيرات الإقلاع بتحميل المشاركات الشبكية عند الوصول إليها فقط.
  • النسخ الاحتياطية باللقطات: توفر لقطات LVM نسخًا احتياطية متسقة أثناء التشغيل — لكن راقب دائمًا snap_percent وأزل اللقطات فورًا بعد النسخ الاحتياطي.

بدمج هذه الأنماط، يمكنك أتمتة دورة حياة التخزين بأكملها بشكل موثوق: الاكتشاف والتوفير والتحميل وتغيير الحجم والنسخ الاحتياطي.

الأسئلة الشائعة

هل درس «أتمتة الأقراص وأنظمة الملفات والضمّ» مجاني؟

نعم — نص درس «أتمتة الأقراص وأنظمة الملفات والضمّ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Linux Command Line & Bash Scripting Mastery، انتقل إلى CoddyKit PRO. تتضمن دورة Linux Command Line & Bash Scripting Mastery 4 دروس في المجموع.

ماذا ستتعلم في «أتمتة الأقراص وأنظمة الملفات والضمّ»؟

افحص الأجهزة الكتلية وأدر إدخالات fstab وبرمج عمليات LVM والضمّ بأمان تتمرن على Linux Command Line & Bash Scripting Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Linux Command Line & Bash Scripting Mastery؟

لا تُشترط خبرة سابقة. Linux Command Line & Bash Scripting Mastery على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «أتمتة الأقراص وأنظمة الملفات والضمّ»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Linux Command Line & Bash Scripting Mastery هذا؟

نعم. كل درس في Linux Command Line & Bash Scripting Mastery يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أتمتة إنشاء المستخدمين والمجموعات
  2. التحكّم في خدمات systemd وكتابة ملفات الوحدات
  3. أتمتة الأقراص وأنظمة الملفات والضمّ
  4. إنشاء سكربتات فحص صحة النظام والتنبيه
← العودة إلى Linux Command Line & Bash Scripting Mastery