نیاز به حل تمامی سوالات مسابقه نیست و از هر قسمت هر مقدار که میتوانید حل کنید. توجه داشته باشید که سوالات الگوریتمی و پیادهسازی به صورت صفر و یکی تصحیح میشوند و دیگر سوالات نمره خواهند گرفت. لطفا فرم زیر را پر کنید. https://quera.ir/general_form/QU9jHL/
فرض کنید برنامهای در یک سرور لینوکس log های خود را در یک فایل به نام app.log
مینویسد. برای این که حجم این فایل خیلی زیاد نشود، میخواهیم یک اسکریپت Bash برای rotate کردن فایلهای لاگ به نام rotate.sh
بنویسیم (تا log های هر روز در یک فایل جداگانه ذخیره شود) و سرور را طوری تنظیم کنیم که این اسکریپت هر نیمهشب یک بار اجرا شود.
یک وضعیت از فایلهای پوشه log ها را در زیر میبینید. در انتهای فایلهای rotate شده، یک عدد قرار میگیرد و هرچه این عدد بزرگتر باشد، فایل قدیمیتر است. app.log
لاگهای امروز را نشان میدهد، app.log.1
لاگهای دیروز را در خود دارد و به همین ترتیب.
در صورت اجرای اسکریپت rotate.sh
وضعیت پوشه باید به این صورت تغییر کند:
فایل app.log.2
به app.log.3
تغییر نام داده، فایل app.log.1
به app.log.2
تغییر نام داده، فایل app.log
به app.log.1
تغییر نام داده و یک فایل خالی به نام app.log
ایجاد شده تا لاگهای جدید در آن نوشته شود.
اسکریپت rotate.sh
را بنویسید که آدرس پوشهای که app.log
در آن قرار دارد را به عنوان آرگومان دریافت کند و عمل rotate را بر روی لاگها انجام دهد. مثلاً:
توجه کنید که علاوه بر فایلهای لاگ، ممکن است فایلها و پوشههای دیگری نیز در کنار app.log
وجود داشته باشد که اسکریپت نباید در آنها تغییری ایجاد کند.
اسکریپت rotate.sh
را Zip کنید و به عنوان پاسخ ارسال کنید. دقت کنید که اسکریپت باید مستقیماً در ریشه فایل Zip باشد (در هیچ پوشهای نباشد).