یک اسکریپت Bash بنویسید که فایلی را از سرور محلی به مسیر /tmp روی چند میزبانِ فهرست‌شده در فایل hosts.txt با استفاده از scp منتقل کند و بلافاصله پس از هر انتقال با ssh وجود و اندازهٔ فایل را روی میزبان از راه دور بررسی کند.

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

0.0

برای حل این مسئله از یک حلقه در Bash استفاده کنید که خط‌به‌خط hosts.txt را می‌خواند؛ برای هر میزبان از scp برای کپی کردن فایل به /tmp و سپس از ssh برای اجرای دستورهایی مثل ls -l یا sha256sum جهت تأیید وجود و اندازه/درستی فایل استفاده کنید. برای احراز هویت ایمن بهتر است ابتدا کلید SSH بسازید (ssh-keygen) و آن را با ssh-copy-id روی میزبان‌ها نصب کنید؛ در صورت نیاز می‌توانید به‌صورت موقت از sshpass استفاده کنید اما توصیه‌شده کلید مبتنی بر رمز باشد.

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

برای امنیت و پایداری، از کلیدهای SSH با ssh-keygen و ssh-copy-id استفاده کنید تا احراز هویت با رمز به‌طور موقت یا مکرر لازم نباشد. پس از هر انتقال، خروجی scp را بررسی کنید و سپس با ssh وجود و اندازهٔ فایل را روی میزبان از راه دور تأیید کنید (مثلاً با ls -l یا sha256sum) تا صحت انتقال مشخص شود. برای خواندن فایل hosts.txt با ایمن بودن، از حلقهٔ while با IFS و read -r استفاده کنید تا خط‌ها بدون مشکل پردازش شوند. در صورت نیاز به احراز هویت با رمز به‌طور موقت، می‌توانید از sshpass استفاده کنید ولی پیشنهاد نهایی، کلیدهای SSH و روش ssh-copy-id است تا امنیت و اتوماسیون بهتر باشد.

گزارش

1 پاسخ

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

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