আমি squid.conf
একটি সার্ভার থেকে অন্য সার্ভারে অনুলিপি করতে চাই ।
- সার্ভারগুলি একে অপরের সাথে কথা বলে না। আমি আমার ওয়ার্কস্টেশনটি দিয়ে যেতে চাই।
- উভয় সার্ভারেরই ফাইল রয়েছে তাই এটি লক্ষ্যবস্তুতে ওভাররাইট করা হবে।
- ফাইলগুলির
600
অনুমতি রয়েছে এবং এটি রুটের মালিকানাধীন। - ssh এর মাধ্যমে রুট লগইন অক্ষম করা আছে (
PermitRootLogin no
)। - আমি যদি এটি সম্ভব হয় তবে এক লাইনে এটি করতে চাই, কারণ এটি কোনও সেটআপ গাইডের অংশ হবে।
আমি করতে জানি
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
সার্ভারের মধ্যে ফাইল অনুলিপি এবং অনুমতি সংরক্ষণ করতে। তবে এই ক্ষেত্রে আমি "অনুমতি অস্বীকার" পাব।
আমি এটিও করতে পারি জানি:
ssh -t source 'sudo cat /etc/squid/squid.conf'
এই উপায়ে -t
sudo ফাইলের বিষয়বস্তু আউটপুট দেওয়ার আগে অ্যাডমিন পাসওয়ার্ড জিজ্ঞাসা করতে দেয়।
সমস্যাটি হল, আমি জানি না যে কীভাবে এই কৌশলগুলিকে এমন কোনও কিছুর সাথে সংযুক্ত করতে হবে যা প্রতিটি সার্ভারে সুডো পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে, এবং ফাইলটিকে তার গন্তব্যে স্থানান্তর করবে। এটা কি সম্ভব?
আপডেট : আমি এখানে সেরা আসতে পারেন:
ssh -t source 'sudo tar czf /tmp/squid.tgz -C /etc/squid squid.conf' && \
ssh source 'cat /tmp/squid.tgz' | \
ssh target 'cat >/tmp/squid.tgz' && \
ssh -t source 'sudo rm /tmp/squid.tgz' && \
ssh -t target \
'sudo tar xzf /tmp/squid.tgz -C /etc/squid && sudo rm /tmp/squid.tgz'
এটিকে ওয়ান-লাইনার বলা একটি প্রসারিতের মতো মনে হয়। আমি মনে করি সেটআপ গাইডের আলাদা পদক্ষেপ নেওয়ার জন্য আমি এটি ভেঙে ফেলব।