یک اسکریپت Bash بنویسید که یک دایرکتوری مشخص را به فایل tar.gz با پسوند تاریخ فعلی بک‌آپ بگیرد و نسخه‌های قدیمی‌تر از N روز را حذف کند

9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:43

0.0

برای حل این مسئله از دستورات پایه‌ای شل مثل tar برای فشرده‌سازی، date برای تولید رشته تاریخ، و find با گزینه -mtime برای یافتن و حذف فایل‌های قدیمی استفاده کنید؛ اسکریپت ورودی‌ها را (مسیر دایرکتوری و تعداد روزها) بررسی کند و نام فایل خروجی را مثلاً backup-YYYYMMDD.tar.gz تولید نماید. نکات مفید: قبل از حذف واقعی از find ... -print برای تست استفاده کنید، مجوزهای نوشتن را چک کنید، و در صورت نیاز پیام‌های خطا و راهنمای کوتاه برای استفاده در اسکریپت قرار دهید.

توسط پژوهشگر در 201 روز قبل ساعت 03:43
دسته بندی ها: Bash Scripting Bash Scripting for beginner
sara در 201 روز قبل ساعت 05:27

نکته: قبل از اجرای حذف دائمی با find ... -exec rm -f {} \; حتماً از گزینه -print استفاده کنید تا نتیجه را به درستی بررسی کنید. همچنین مطمئن شوید مسیر ورودی و مجوزهای نوشتن به پوشه خروجی وجود دارد و از نقل قول مناسب برای مسیرهای دارای فاصله استفاده کنید. برای جلوگیری از حذف اشتباهی، نسخه‌های قدیمی‌تر را با -mtime +N روز هدف بگیرید و پس از تأیید خروجی با -print، دستور حذف را اجرا کنید. نام خروجی را با تاریخ فعلی می‌سازد مانند backup-YYYYMMDD.tar.gz و از گزینه‌های tar -czf برای فشرده‌سازی استفاده کنید. اگر tar روی سیستم BSD باشد، گزینه‌ها ممکن است متفاوت باشند؛ در صورت امکان از GNU tar استفاده کنید یا سازگارسازی لازم را انجام دهید.

گزارش

1 پاسخ

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

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