أوامر Linux ومهارات Shell
البحث عن: بحث Linux الذي يقوم بكل شيء
البحث هو الأمر الأكثر خطورة على خادم الإنتاج، وهذا هو بالضبط سبب استحقاقه الإتقان. يقوم بالتعداد والتصفية والتنفيذ في تعبير واحد، وكل حادثة كلاسيكية '/var here be dragons' تعود إلى معاينة قام شخص ما بتخطيها. العادات ميكانيكية: استخدم -print أو -ls أولاً، دفعة واحدة مع -exec ... +، قم بالتمرير من خلال -print0 إلى xargs -0، وتعامل مع -delete كقرار تمرير ثانٍ، وليس مسودة أولى أبدًا.
النقاط الرئيسية
- قم بالتصفية على البيانات الوصفية، وليس الاسم وحده: -type f، -mtime +30، -size +100M، و -perm -o+w حدد موقع الملفات الفردية التي تفوتها اصطلاحات التسمية وتقارير العمر.
- قم بمعاينة كل استعلام مدمر: ابحث عن /var/www/uploads -name 'core.*' -ls أولاً، وقم بتبديل -ls بـ -delete فقط بعد قراءة القائمة فعليًا؛ المعاينة هي التحقق من السلامة، وليس اقتراحا.
- -exec cmd {} + يقوم بتجميع الملفات في عدد قليل من الدعوات ويتغلب على \; تشكل على الأشجار الكبيرة. تعمل نفس الصيغة على تشغيل "إدارة كل ملف مطابق في عملية واحدة" دون ظهور خطأ في قائمة الوسيطات طويل جدًا.
- الإخراج الآمن بشكل افتراضي: ابحث عن . -الاسم '*.old' -print0 | xargs -0 rm -v; تعتبر الأنابيب العادية في xargs نمطًا معروفًا لفقد البيانات في اليوم الذي يحتوي فيه اسم الملف على مسافة.
- -xdev و -maxdegree يحافظان على صدق السير: يتوقفان عن البحث عن المتابعة في عمليات التثبيت واللقطات، مما ينقذ وقت التشغيل وافتراضاتك حول "هذا الدليل".
- تكون النوافذ الزمنية دقيقة إذا تم السؤال عنها بدقة: -mmin -1440 لآخر 24 ساعة، -newermt '2026-01-01' منذ تاريخ، وتذكر -xtime تعني "فترات 24 ساعة كاملة مضت" قبل اقتباسها في التذكرة.
- التقليم عمدًا: العثور على . -path '*/node_modules' -prune -o -name '*.js' -print يتخطى الدليل الوحيد الذي يفوق بقية الشجرة من حيث الحجم والوقت.
- توقع مخارج غير صفرية على الأدلة غير القابلة للقراءة؛ تعتبر أسطر stderr مثل "تم رفض الإذن" عبارة عن ملفات تم تخطيها، وليست بيانات، لذا فإن البرامج النصية إما تتسامح مع حالة الخروج من البحث أو تتحقق منها بشكل صريح بدلاً من افتراض عمليات السير النظيفة.
ملاحظة ميدانية
بدأت قصة أسوأ عملية بحث وحذف لدينا بنمط اسم غير مقتبس والذي توسعت الصدفة الثانية إلى ثلاث كلمات في بداية عملية البحث. القاعدة بسيطة: - اطبع أولاً، واقتبس دائمًا، و - لا تتدخل الحذف أبدًا في الأمر في المرة الأولى التي يتم تشغيله فيها.
أسئلة شائعة
لقد عثرت على ملفات ولكن الأمر المتلقين للمعلومات لم يفعل شيئًا. لماذا؟
دائمًا ما يكون هناك اقتباس أو إدخال فارغ: تم توسيع النمط بواسطة الصدفة قبل أن يراه البحث، أو لم يتلق xargs شيئًا. أنماط الاقتباس، وإقران -print0 مع xargs -0 في كل مرة.
- هل تريد الحذف أو rm بعد البحث؟
- الحذف مباشر وسريع ولا يرحم؛ ولا يمكن مزجه مع -exec في نفس التعبير. قم بتشغيل المطابقة -print أولاً واقرأها؛ هذا هو الانضباط كله.
لماذا يتم العثور على أخطاء في إذن الطباعة في أدلة النظام؟
المكونات التي لا يمكنك قراءة أخطاء الطباعة فيها إلى stderr وإجراء البحث عن الخروج غير صفري؛ قم بالتصفية باستخدام 2>/dev/null لتوفير الراحة التفاعلية، ولا تفسر هذه الأخطاء مطلقًا على أنها غياب للملفات.
الفرق بين -mtime و -ctime مرة أخرى؟
-mtime هو تغيير المحتوى، -ctime هو تغيير البيانات الوصفية (الأذونات، إعادة التسمية، عدد الروابط الثابتة)؛ تشون أو حركة تصطدم بالوقت دون لمس mtime، الأمر الذي يربك تقريرًا واحدًا بالضبط كل ربع سنة.
كيف تساعدك Kinetikatech في أوامر linux ومهارات shell
باختصار: الأوامر وعادات البرمجة النصية التي تحدد ما إذا كان المسؤول يشغل الخادم أم يحاربه: البحث عن النصوص والعمليات وتحويلها ونقلها والإشراف عليها باستخدام الأدوات الموجودة في كل تثبيت أساسي. سلّمها إلى خدمة أمن خوادم لينكس و إدارة الخوادم لدينا وهي مغطاة: تقييم سليم وتنفيذ نظيف ومراقبة على مدار الساعة.