یک اسکریپت bash بنویسید که یک دایرکتوری ورودی را به صورت tar.gz فشرده کرده با نام شامل تاریخ و زمان در پوشهٔ backups ذخیره کند و فقط ۵ نسخهٔ اخیر را نگه دارد.
4.0 بازدید آخرین ویرایش در 223 روز قبل ساعت 01:04 0.0
برای حل این مسئله از فرمان tar برای فشردهسازی (tar -czf)، از date برای تولید مهر زمانی (مثلاً date +"%Y%m%d-%H%M%S") و mkdir -p برای ایجاد پوشهٔ backups استفاده کنید؛ نام فایل میتواند مثل backup-$(date ...).tar.gz باشد. برای حذف نسخههای قدیمی میتوانید پس از ایجاد فایل جدید با ls -tp backups/*.tar.gz | grep -v '/$' | tail -n +6 | xargs -r rm -- یا با find و مرتبسازی فایلها، همهٔ فایلهای قدیمیتر از پنج مورد را حذف کنید. نکات: اسکریپت باید ورودی دایرکتوری را بررسی کند (وجود و دسترسی), از مسیرهای با فاصله پشتیبانی کند (استفاده از نقلقولها و آرایهها)، قبل از حذف فایلها با حالت آزمایشی تست شود و پیامهای خطا/موفقیت مناسب نمایش دهد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای یک پشتیبانگیری مطمئن، ورودی دایرکتوری را از وجود و دسترسی بررسی کنید و از نقلقول برای مسیرهای با فاصله استفاده کنید. برای نگهداشتن تنها پنج نسخه، از مرتبسازی بر اساس زمان و حذف نسخههای قدیمیتر استفاده کنید تا فضای ذخیرهسازی کنترل شود. در حالت dry-run یا آزمایشی، خروجی فایلهای پیشنهادی حذف و وضعیت هر عملیات را نمایش دهید تا از صحت کار مطمئن شوید. همچنین از mkdir -p backups و tar -czf "backups/backup-$(date +%Y%m%d-%H%M%S).tar.gz" -C "$INPUT_DIR" استفاده کنید تا پوشهٔ backups ایجاد شود و مسیرهای دارای فاصله بهدرستی پشتیبانی شوند.
گزارش