نظرة عامة
تعتمد إدارة بيئات لينكس والتحكم بالمهام المؤتمتة اعتماداً وثيقاً على أداة date، وهي الأداة الأساسية لقراءة الوقت وضبط بنيته وتوليد التواريخ داخل الطرفية. يستعرض هذا الدليل الإمكانات المتنوعة للأمر انطلاقاً من الاستخدام اليومي وصولاً إلى التخصيص الدقيق، مع التركيز على سيناريوهات هندسية حقيقية كأرشفة ملفات الخوادم، وحساب الفوارق الزمنية في سكربتات الصيانة، والتحويل بين التوقيت البشري وطوابع يونكس الزمنية.
استعراض التوقيت وضبط صيغ الإخراج المخصصة
يقوم تنفيذ date بصورته المجردة باستخراج التوقيت المحلي للخادم وفق نمط قياسي مدمج، يضم اسم اليوم، واسم الشهر، ورقم اليوم، والوقت الحالي بالساعات والدقائق والثواني، يليه النطاق الزمني وسنة النظام.
⚙️ [أبرز الخيارات المتاحة]
-d, --date=STRING : معالجة سلسلة زمنية يحددها المستخدم بدلاً من الاعتماد على اللحظة الحالية.-s, --set=STRING : ضبط توقيت النظام وتحديثه وفق القيمة الممررة.-u, --utc : اعتماد التوقيت العالمي المنسق (UTC) وتجاهل النطاق المحلي.-r, --reference=FILE : قراءة طابع آخر تعديل أُجري على ملف محدد وعرضه.-I, --iso-8601[=FMT] : إنتاج الوقت والتاريخ بالتوافق الصارم مع معيار ISO 8601.

عند دمج الرمز + مع محددات التنسيق البرمجية، يتيح الأمر تشكيل هيئة مخصصة مثل النمط القياسي YYYY-MM-DD HH:MM:SS.
يُرمز للسنة بأربعة أرقام عبر %Y، وللشهر برقمين عبر %m، ولليوم عبر %d، مع استخدام %H لنظام 24 ساعة، و%M للدقائق، و%S للثواني، حيث يمكن الفصل بينها بأي علامة يراها المطور ملائمة لسجلات التشغيل أو جداول قواعد البيانات.

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

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

التعامل مع المناطق الزمنية وحساب التواريخ الماضية والمستقبلية
يتيح التبديل إلى الخيار -u تتبع التوقيت العالمي الموحد، وهو أمر لا غنى عنه عند إدارة خوادم سحابية موزعة جغرافياً، حيث يضمن توحيد توقيت السجلات وإجراء تحليلات المراقبة دون تشويش ناتج عن الفروق المحلية.

يمكن تمرير متغير البيئة المؤقت TZ في سطر الأوامر ذاته للاستعلام عن توقيت منطقة جغرافية معينة (مثل America/New_York) دون التعديل على التكوين الدائم للنظام، مما يسهل تنسيق المهام المجدولة عبر المناطق الإقليمية المختلفة.

باستخدام الخيار -d مع العبارة 'yesterday'، يحسب الأمر تاريخ اليوم الفائت ويعرضه بهيئة YYYY-MM-DD.
تُعد هذه الآلية جوهرية في سكربتات تدوير السجلات وتجميع بيانات اليوم المنصرم التي تُشغل تلقائياً بعد منتصف الليل.

يدعم المحرك الزمني للأمر تعبيرات طبيعية متقدمة مثل '7 days ago' لتحديد موعد يعود لسبعة أيام سابقة بدقة تامة.
تستند سكربتات الأرشفة والتنظيف الدوري إلى هذه المعايير لتحديد وحذف السجلات القديمة المنتهية صلاحيتها تلقائياً.

يمكن أيضاً التنبؤ بالمواعيد المستقبلية عن طريق صياغات مثل 'next Monday'، وهو أسلوب عملي لبرمجة إشعارات الصيانة الأسبوعية وضبط تواريخ المهام الدورية القادمة ضمن بيئات العمل التلقائية.

بناء سكربتات النسخ الاحتياطي وتسمية الملفات الزمنية آلياً
نبدأ بتهيئة مجلد عمل مستقل لاختبار آليات النسخ الاحتياطي بالانتقال إليه مباشرة عبر mkdir -p /tmp/backup_demo && cd /tmp/backup_demo.

نقوم بإنشاء ملف إعدادات تجريبي يمثل البيانات المراد تأمينها من خلال الأمر echo 'Application configuration data' > config.ini.

تُستغل ميزة التعويض البرمجي للأوامر في باش ($()) لتخزين التاريخ والوقت لحظة التنفيذ ضمن المتغير BACKUP_TAG بتطبيق date '+%Y%m%d_%H%M%S'.
ينتج عن ذلك معرف فريد متسلسل يضمن تمييز كل نسخة احتياطية يتم إنشاؤها عبر الزمن.

يُدمج المتغير السابق في أمر الضغط والأرشفة tar -czf "config_backup_${BACKUP_TAG}.tar.gz" config.ini، وبذلك يتضمن اسم الأرشيف وقت إنشائه تلقائياً، ما يحفظ النسخ السابقة من خطر الاستبدال غير المقصود أثناء دورات النسخ المتكررة.

باستعراض المجلد عبر ls -l config_backup_*.tar.gz، يظهر ملف الأرشيف المنشأ متضمناً طابعه الزمني بدقة، كما في config_backup_20261024_174030.tar.gz، وهي الممارسة المعتمدة في خطوط الإنتاج البرمجية لضمان فرادة الملفات وسهولة تتبعها تاريخياً.

التحويل مع الطابع الزمني ليونكس (Epoch) وقياس زمن التنفيذ
يُستخرج التوقيت بصيغة يونكس القياسية عبر date +%s، والتي تحسب عدد الثواني المنقضية منذ بداية عصر يونكس (1 يناير 1970 00:00:00 UTC).
يُعتمد هذا الرقم الصحيح على نطاق واسع في قواعد البيانات وفهارس البحث لتسهيل مقارنة التواريخ رياضياً وتبادلها بين الخوادم دون تعقيدات الفروق الزمنية.

لعكس العملية وقراءة التوقيت الرقمي بصيغة مفهومة، يُمرر الرمز @ متبوعاً بقيمة الثواني مثل @1700000000 مع الخيار -d للحصول على صيغة YYYY-MM-DD HH:MM:SS.
تُخبر علامة @ الأداة بأن المدخل هو طابع يونكس، وهي وسيلة بالغة الأهمية لتحليل ملفات السجلات المشفرة زمنياً وفك رموزها.

يُمكن دمج الثواني والنانوثانية (%s%N) لقياس الأداء البرمجي بدقة فائقة؛ حيث يُسجل التوقيت قبل تنفيذ المهمة وبعدها، ثم يُحسب الفارق بالمللي ثانية باستخدام التوسيع الحسابي في باش ($(( ))).
تمنح هذه التقنية مديري الأنظمة قدرة دقيقة على قياس سرعة معالجة السكربتات ورصد الاختناقات في أداء العمليات الخلفية.

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