یک اسکریپت Bash بنویسید که یک فایل مشخص را با SCP به لیستی از سرورهای از پیش تعیینشده منتقل کند و وضعیت موفق یا شکست هر انتقال را در یک فایل لاگ ثبت کند
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:46 0.0
برای حل این سؤال، اسکریپت باید نام فایل منبع و فایل لیست سرورها (یا آرایهای از آدرسها) را بگیرد، با یک حلقه روی سرورها اجرا شود و برای هر سرور از scp برای کپی استفاده کند؛ سپس با بررسی کد خروج (exit status) عملیات را با یک زمانبندی (timestamp) در فایل لاگ بنویسد. توصیه میشود از احراز هویت کلید عمومی (ssh-copy-id) استفاده کنید تا نیازی به وارد کردن رمز نباشد، و برای خواندن لیست سرورها میتوانید از یک فایل متنی یا آرایه درون اسکریپت استفاده کنید؛ نکات مفید: بررسی وجود فایل قبل از ارسال، استفاده از set -e یا بررسی صریح exit code، و فرمت لاگ شامل تاریخ، نام سرور و نتیجه باشد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای قابل اعتماد بودن، قبل از اجرای اسکریپت وجود فایل منبع و لیست سرورها را چک کن و هر خط را به عنوان یک نام میزبان فرض کن. از احراز هویت کلید عمومی استفاده کن و مطمئن شو که کلید عمومی روی تمام سرورهای هدف نصب شده است تا بدون نیاز به وارد کردن رمز به کار بیفتد. در اجرای حلقه، exit status هر SCP را بررسی کن و با یک تاریخزمان استاندارد در فایل لاگ بنویس؛ ترجیحاً از set -e برای توقف در خطاها و date برای تولید زمان استفاده کن. در نهایت، برای کارایی بیشتر، میتوانی کنترلهای خطا برای عدم وجود فایل منبع یا عدم وجود سرور را اضافه کنی و در صورت نیاز از گزینههای محدودسازی پهنای باند یا فشردهسازی SCP استفاده کنی.
گزارش