scp
খুব স্মার্ট নয়: যখন একই দূরবর্তী হোস্টের ফাইলগুলি একাধিক কমান্ড লাইন আর্গুমেন্ট দেওয়া হয়, তখন এটি প্রতিটি আর্গুমেন্টের জন্য একটি নতুন সংযোগ খোলে।
আপনি এর rsync
পরিবর্তে ব্যবহার করতে পারেন scp
, এটি এইভাবে স্মার্ট (এবং অন্যান্য উপায়ে)।
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
আরেকটি পন্থা হয় একটি একক আর্গুমেন্ট পাস scp
যে একাধিক ফাইল বর্ণনা ।
আপনার সিস্টেম সেট আপ করার জন্য একটি পৃথক পদ্ধতির হ'ল যাতে আপনাকে সর্বদা প্রমাণীকরণ করতে না হয়। সাধারণত, কী প্রমাণীকরণ সেট আপ করুন , যা বেশিরভাগ পরিস্থিতিতে আরও সুবিধাজনক এবং আরও সুরক্ষিত। বিকল্পভাবে বা অতিরিক্ত হিসাবে সংযোগ ভাগ করে নেওয়া সেট আপ করুন , যাতে আপনার প্রতি সেশনে একবারে প্রমাণীকরণের প্রয়োজন হয়। যাই হোক না কেন, একটি উপনাম সেট আপ করুন যাতে আপনাকে প্রতিবার ব্যবহারকারীর নাম এবং পোর্ট নির্দিষ্ট করতে হবে না। আপনার ~/.ssh/config
:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
ssh -Nf nick
কোনও সংযোগ খোলার জন্য চালান , এবং তারপরে সমস্ত সংযোগগুলি nick
বিদ্যমান সংযোগটিতে পিগিগ্যাক করবে। এখন আপনি চালাতে পারেন
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/