یک اسکریپت 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 و مرتب‌سازی فایل‌ها، همهٔ فایل‌های قدیمی‌تر از پنج مورد را حذف کنید. نکات: اسکریپت باید ورودی دایرکتوری را بررسی کند (وجود و دسترسی), از مسیرهای با فاصله پشتیبانی کند (استفاده از نقل‌قول‌ها و آرایه‌ها)، قبل از حذف فایل‌ها با حالت آزمایشی تست شود و پیام‌های خطا/موفقیت مناسب نمایش دهد.

توسط پژوهشگر در 223 روز قبل ساعت 01:04
دسته بندی ها: Bash Scripting Bash Scripting for beginner
nima در 223 روز قبل ساعت 14:45

برای یک پشتیبان‌گیری مطمئن، ورودی دایرکتوری را از وجود و دسترسی بررسی کنید و از نقل‌قول برای مسیرهای با فاصله استفاده کنید. برای نگه‌داشتن تنها پنج نسخه، از مرتب‌سازی بر اساس زمان و حذف نسخه‌های قدیمی‌تر استفاده کنید تا فضای ذخیره‌سازی کنترل شود. در حالت dry-run یا آزمایشی، خروجی فایل‌های پیشنهادی حذف و وضعیت هر عملیات را نمایش دهید تا از صحت کار مطمئن شوید. همچنین از mkdir -p backups و tar -czf "backups/backup-$(date +%Y%m%d-%H%M%S).tar.gz" -C "$INPUT_DIR" استفاده کنید تا پوشهٔ backups ایجاد شود و مسیرهای دارای فاصله به‌درستی پشتیبانی شوند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری