وحدة 2 / 11

البرامج النصية للأتمتة: إنشاء Bash وPowerShell وPython بأمان

المكاسب:

  • القدرة على إنتاج نصوص أتمتة Bash وPowerShell وPython مع قيود واضحة وحواجز أمنية مدعومة بالذكاء الاصطناعي
  • القدرة على إضافة مبادئ مثل عدم الكفاءة، والتشغيل الجاف، ومعالجة الأخطاء والتراجع إلى كل برنامج نصي وتطبيق دورة "الإنشاء والتقوية والتحقق"
  • القدرة على فهم أن تنفيذ النص المنتج لا يعني أنه آمن واكتساب عادة تحمل المسؤولية من خلال قراءة واختبار الخطوط المدمرة.

البرامج النصية للأتمتة: إنشاء Bash وPowerShell وPython بأمان باستخدام الذكاء الاصطناعي

أسوأ عدو لمدير النظام هو العمل اليدوي المتكرر: الاتصال بكل جهاز وتنظيف السجلات، وفتح نفس المستخدم على عشرين خادمًا، وإجراء نفس الفحص الصحي كل صباح. وهذا التكرار مفتوح أمام الزمن والخطأ البشري. البرنامج النصي للأتمتة هو برنامج صغير يفوض هذه التكرارات إلى الكمبيوتر - غالبًا ما يتم كتابته بلغة Bash (لغة أوامر Shell) في عالم Linux، وPowerShell (غلاف التشغيل الآلي لـ Microsoft) في عالم Windows، وPython للعمل المستقل عن النظام الأساسي. الذكاء الاصطناعي سريع بشكل لا يصدق في إنتاج وشرح وتحسين المسودة الأولى لهذه النصوص. لكن النص ليس نصًا، بل هو قوة تعمل في نظامك؛ على عكس صيغة Excel، إذا كانت غير صحيحة، فإنها تحذف الملف، وتوقف الخدمة، وتقطع الوصول. ولهذا السبب فإن وعد هذه الوحدة هو: يقوم الذكاء الاصطناعي بكتابة السيناريو، وأنت تقرأه وتختبره وتديره مع تحمل المسؤولية.

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

لماذا تعد البرمجة النصية باستخدام الذكاء الاصطناعي قوية جدًا؟

حتى المسؤول ذو الخبرة قد لا يعرف الصيغة الدقيقة لحلقة Bash، أو معلمات PowerShell cmdlet (أمر)، أو تجربة Python/باستثناء الحظر عن ظهر قلب. يملأ الذكاء الاصطناعي هذه الفجوة على الفور: تشرح النية باللغة التركية البسيطة، وينتج مخططًا للعمل. علاوة على ذلك، يمكنك إعطاء نص موجود إلى الذكاء الاصطناعي وقول "اشرح هذا"، "أضف معالجة الأخطاء"، "اجعله أكثر قابلية للقراءة". يؤدي هذا إلى تقصير منحنى التعلم ويجعل أعضاء الفريق المبتدئين يصلون إلى السرعة.

ولكن مع السلطة تأتي المسؤولية. في معظم الأحيان، يكتب البرنامج النصي الذي تم إنشاؤه بواسطة الذكاء الاصطناعي "المسار السعيد" بشكل صحيح (إذا كان كل شيء على ما يرام)؛ ولكن يمكن أن تفوت حالات الحافة (ملف مفقود، القرص ممتلئ، الشبكة معطلة) أو تقديم افتراضات خطيرة. لذا فكر في إنشاء البرنامج النصي باستخدام الذكاء الاصطناعي على ثلاث مراحل: التوليد والتقوية والتحقق.

خطوة بخطوة: إنشاء البرنامج النصي الآمن

  1. اكتب النية والقيد بوضوح. ما هو نظام التشغيل، وما هو إصدار الصدفة، وما هي مسارات الملفات، وما هي الحقوق؟ مثل "Ubuntu 22.04، Bash 5، sudo not root، يعمل فقط ضمن /opt/app/logs". الطلب الغامض ينتج افتراضا خطيرا.
  2. اطلب درابزين الأمان. اطلب من البرنامج النصي "التوقف عند الفشل" (set -euo Pipefail in Bash)، والمطالبة بتأكيد العمليات المدمرة، والنسخ الاحتياطي قبل التشغيل، ووضع التشغيل الجاف. تلتقط حواجز الحماية هذه حالات الحافة التي يتجاوزها الذكاء الاصطناعي.
  3. اكتب العاجز. يجب ألا يسبب البرنامج النصي أي أخطاء أو أضرار عند تشغيله للمرة الثانية. قم بإنشاء منطق "التخطي إذا كان المستخدم موجودًا بالفعل"، "إنشاء الدليل إذا لم يكن موجودًا، لا تلمسه إذا كان موجودًا". وهذا يسمح بتشغيل الأتمتة بأمان مرارًا وتكرارًا.
  4. اقرأ وافهم. قراءة كل سطر المنتجة. اطلب من الذكاء الاصطناعي تحديد الأوامر المدمرة (rm، Remove-Item، DROP) بشكل منفصل.
  5. اختبار مع التشغيل الجاف. أولاً، قم بتشغيله في وضع "إخبار ما يجب القيام به" بدلاً من العمليات الفعلية. إذا كان الإخراج هو ما تتوقعه، فانتقل إلى الوضع الحقيقي — وعلى جهاز الاختبار أولاً.
  6. الاستعداد لعودتك. هل يأخذ البرنامج النصي نسخًا احتياطية؟ هل تعرف كيفية استعادة النسخة الاحتياطية؟ هل يوجد تسجيل، هل يمكنك رؤية ما يفعله لاحقًا؟
نصيحة: اجعل كل برنامج نصي مدمر يشتمل على متغير DRY_RUN=true وعلامة --apply. السلوك الافتراضي هو كتابة ما سيحدث دون حذف أي شيء؛ دع الحذف الفعلي يعمل فقط إذا تم إعطاء --apply بشكل صريح. هذه العادة الوحيدة تمنع الكوارث التي تدوم طوال حياتك المهنية.

ثلاث حالات صغيرة

الحالة 1 - العجز الجنسي أنقذ 3 ساعات. كتب أحد المسؤولين برنامجًا نصيًا قام بتثبيت وكيل المراقبة نفسه على 25 خادمًا. لم يكن الإصدار الأول ضعيفًا: فقد عطل التكوين في التشغيل الثاني إذا كان الوكيل مثبتًا بالفعل. قام المهندس بإضافة منطق الذكاء الاصطناعي "تحقق مما إذا كان مثبتًا، وتخطيه إذا كان كذلك". خلال فترة الصيانة التالية، تم تشغيل البرنامج النصي عن طريق الخطأ مرتين، لكنه لم يسبب أي ضرر. العجز جعل عملية استرداد 25 خادمًا غير ضرورية.

الحالة 2 - قام التشغيل الجاف بحفظ الدليل الجذر. تلقى أحد الفرق نص Bash الذي قام بإزالة النسخ الاحتياطية القديمة. إذا كان المتغير فارغًا، يصبح المسار / بدلاً من /backups/ — خطرًا كلاسيكيًا. قام المهندس بتشغيله لأول مرة في وضع DRY_RUN، وتجمد عندما رأى سطرًا مشابهًا لـ rm -rf / في الإخراج، وأضاف فحصًا متغيرًا (: "${BACKUP_DIR:?لا يمكن أن يكون فارغًا}"). اكتشف التشغيل الجاف خطأً من شأنه أن يمسح القرص بأكمله قبل دخوله مرحلة الإنتاج.

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

أربعة قوالب قابلة للنسخ

1) إنشاء البرنامج النصي الآمن لـ Bash:

دورك: مهندس أتمتة Linux كبير. اكتب نصًا لـ Ubuntu 22.04 / Bash 5. الغرض:[الغرض]. القواعد: - ابدأ بـ "set -euo Pipefail". - تحقق من صحة المتغيرات المطلوبة باستخدام ": ${VAR:?}".- قم بإجراء عمليات تدميرية باستخدام DRY_RUN=true الافتراضي؛ دع التطبيق الحقيقي يعمل فقط باستخدام علامة --apply. - سجل كل خطوة في stdout، وتوقف برسالة ذات معنى عند حدوث خطأ. - جعله عاجزا (بحيث لا يسبب ضررا في الجولة الثانية). بعد ذلك: ضع علامة على الخطوط التي قد تكون مدمرة بشكل منفصل واكتب 3 حالات أحتاج إلى اختبارها قبل الإنتاج.

2) تصلب النص الموجود:

اجعل البرنامج النصي التالي جاهزًا للإنتاج: (1) إضافة معالجة الأخطاء وتسجيلها، (2) جعله غير فعال، (3) وضع أوامر مدمرة خلف التشغيل الجاف، (4) استخراج المسارات والأسرار المشفرة للمتغير. صف بإيجاز كل سطر قمت بتغييره ولماذا. البرنامج النصي: [السيناريو]

3) الأتمتة الآمنة لـ PowerShell:

دورك: خبير أتمتة Windows. اكتب برنامجًا نصيًا متوافقًا مع PowerShell 5.1. الغرض: [الغرض]. القواعد: - ابدأ بـ "$ErrorActionPreference = 'Stop'". - أضف دعم -WhatIf إلى أوامر cmdlets المدمرة (WhatIf الافتراضي). - قم بلف كل إجراء باستخدام محاولة/التقاط، خطأ في السجل. - ترميز بيانات الاعتماد؛ استخدم المعلمة أو الإدخال الآمن. ضع علامة على الخطوط المدمرة واكتب خطوات التراجع.

4) فك تشفير تعبير Cron/Schedule والتحقق منه:

اشرح عبارة cron التالية باللغة التركية البسيطة واكتب مرات التشغيل الثلاثة التالية: [تعبير] أيضًا، إذا كان هدفي هو "[الغرض]"، فهل هذه العبارة صحيحة أم أن هناك حلًا تقترحه؟ لاحظ أيضًا تأثير الفترة الزمنية.

موجه ضعيف / موجه قوي

حث ضعيف:

اكتب لي برنامجًا نصيًا ينظف السجل.

هذه المطالبة خطيرة: ليس من الواضح أي نظام تشغيل، وأي دليل، وأي حد عمري، وأي حاجز أمان. يمكن للذكاء الاصطناعي أن يقدم رسالة أحادية ومدمرة وغير قابلة للتحقق.

مطالبة قوية:

دورك: مهندس أتمتة Linux كبير. اكتب برنامجًا نصيًا لتنظيف السجل لـ Ubuntu 22.04 / Bash. احذف فقط ملفات .log ضمن /opt/app/logs التي مضى عليها أكثر من 30 يومًا. القواعد: set -euo Pipefail؛ التحقق من صحة متغيرات BACKUP_DIR وLOG_DIR (توقف إذا كانت فارغة)؛ قائمة ملفات السجل قبل الحذف؛ اجعل DRY_RUN=true هو الإعداد الافتراضي، والحذف الفعلي فقط باستخدام --apply; دعها تكون عاجزة. ضع علامة على الخطوط المدمرة واكتب 3 سيناريوهات يجب أن أختبرها.

ميزة

نص ضعيف/سريع

النص المقوى

معالجة الأخطاء

لا، فشل صامت

set -euo Pipefail، حاول/قبض

العمل المدمر

يعمل مباشرة

التشغيل الجاف + علم الفحص المفتوح

إعادة التشغيل

قد يسبب ضررا

عاجز وآمن

الإدارة السرية

مشفرة بشدة

مدخلات متغيرة/مخفية

تراجع

لا شيء

خطوة النسخ الاحتياطي + الاستعادة

الأخطاء الشائعة

  • تشغيل البرنامج النصي المدمر دون التشغيل الجاف. عدم رؤية البرنامج النصي الذي يحتوي على rm، وRemove-Item، وDROP أولاً في الوضع الجاف يكلف القرص.
  • تخطي فحص المتغير الفارغ. متغير المسار الفارغ يجعل / بدلاً من /backups/؛ : تأكد من التحقق باستخدام "${VAR:?}".
  • نسيان العجز. ينقطع البرنامج النصي عند تشغيله مرتين، مما يجعل الأتمتة غير موثوقة.
  • أسرار الترميز الصعب. تعد كتابة كلمة المرور والمفتاح في البرنامج النصي بمثابة تسرب عند مشاركة هذا البرنامج النصي.
  • اختبار في الإنتاج. إن القيام بالجولة الأولى في الإنتاج يعني التدرب على المسرح؛ آلة الاختبار أولا.
تنبيه: لا تقبل البرنامج النصي الذي يقدمه الذكاء الاصطناعي لمجرد أنه "نجح، فهذا يعني أنه صحيح". فقط لأنه يعمل لا يعني أنه ليس مدمرا. يمكن تشغيل البرنامج النصي على المسار السعيد وحذف البيانات في حالة الحافة؛ الاختبار الحقيقي هو حالات الحافة.

في ملخص

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

مهمة التطبيق

اختر مهمة تكررها يدويًا في وظيفتك (مثل تنظيف السجل، وفتح المستخدم، والفحص الصحي). اطلب مخططًا تفصيليًا من الذكاء الاصطناعي باستخدام قالب "Secure Bash script" أو "PowerShell Secure Automation" أعلاه. اقرأ النص الذي تم إنشاؤه سطرًا تلو الآخر وحدد الخطوط المدمرة. قم بتشغيله في وضع التشغيل الجاف أولاً على جهاز اختبار، ثم قارن الناتج بتوقعاتك. ثم قم بإعادة النص إلى الذكاء الاصطناعي وقم بتحسينه باستخدام القالب "المصلب" ولاحظ الاختلافات الخمسة بين الإصدارين.

قائمة مرجعية

  • [ ] هل قمت بتضمين قيود مثل نظام التشغيل وإصدار Shell والمسارات والحقوق في الموجه؟
  • [ ] هل البرنامج النصي متسامح مع الأخطاء مع set -euo Pipefail / $ErrorActionPreference='Stop'؟
  • [ ] هل تتم العمليات التدميرية خلف التشغيل الجاف/-WhatIf وتتطلب علامة فحص صريحة؟
  • [ ] هل البرنامج النصي غير فعال (آمن عند التشغيل الثاني)؟
  • [ ] هل قمت باستخراج الأسرار إلى مدخلات متغيرة/سرية بدلاً من تشفيرها بشكل صارم؟
  • [ ] هل قمت بالتشغيل الأول على جهاز الاختبار وقمت بإعداد خطة العودة؟