পোর্ট নম্বর নির্দিষ্ট সঙ্গে scp


793

আমি একটি দূরবর্তী সার্ভার থেকে আমার স্থানীয় মেশিনে কোনও ফাইল স্কিপ করার চেষ্টা করছি। শুধুমাত্র 80 পোর্ট অ্যাক্সেসযোগ্য।

আমি চেষ্টা করেছিলাম:

scp -p 80 username@www.myserver.com:/root/file.txt .

তবে এই ত্রুটিটি পেয়েছে: cp: 80: No such file or directory

আমি কীভাবে একটি scp কমান্ডে পোর্ট নম্বর নির্দিষ্ট করব?


33
বন্দরটি মূলধন হতে হবে -P 80
এলিথেসায়ান

উত্তর:


1406

Ssh এর বিপরীতে, scp ছোট হাতের পি এর পরিবর্তে পোর্টটি সেট করতে বড় হাতের পি সুইচ ব্যবহার করে:

scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp default

লোয়ারকেস পি সুইচটি সময় এবং মোডগুলি সংরক্ষণের জন্য স্ক্যাপের সাহায্যে ব্যবহৃত হয়।

দুটি স্যুইচ সম্পর্কিত সমস্ত বিবরণ সহ scp এর ম্যান পৃষ্ঠা থেকে একটি অংশ এখানে দেওয়া হয়েছে, পাশাপাশি স্ক্র্যাপের জন্য বড় হাতের পি কেন বেছে নেওয়া হয়েছে তার একটি ব্যাখ্যাও রয়েছে:

-পি পোর্ট দূরবর্তী হোস্টের সাথে সংযোগ স্থাপনের জন্য পোর্টটি নির্দিষ্ট করে। নোট করুন যে এই বিকল্পটি মূলধন 'পি' দিয়ে লেখা হয়েছে, কারণ -p ইতিমধ্যে আরসিপি (1) এ ফাইলের সময় এবং মোডগুলি সংরক্ষণের জন্য সংরক্ষিত রয়েছে।

-p আসল ফাইল থেকে পরিবর্তনের সময়, অ্যাক্সেসের সময় এবং মোডগুলি সংরক্ষণ করে।

আপডেটগুলির ওপরে এবং একপাশে (ভারীভাবে আপভোট করা) মন্তব্যগুলি :

scpবিকল্প আদেশ সম্পর্কে আবদুলের মন্তব্য সম্পর্কে , তিনি কী পরামর্শ দেন:

scp -P80 -r some_directory -P 80 ...

..., ছেদকগুলি বিকল্প এবং পরামিতি। getopt(1)পরিষ্কারভাবে সংজ্ঞায়িত করা হয়েছে যে প্যারামিটারগুলি অবশ্যই বিকল্পগুলির পরে আসবে এবং তাদের সাথে ছেদ করা উচিত নয়:

প্যারামিটারগুলির সাথে গোটোপটিকে দুটি অংশে বিভক্ত করা যেতে পারে: বিকল্পগুলি যা গিওপ্টকে পার্সিং করবে (বিকল্পগুলি এবং সিএনওপিএসিসে অপটস্ট্রিং) করবে এবং যে পরামিতিগুলি পার্স করা হবে (সিওয়ানোপিসিসের পরামিতি)। দ্বিতীয় অংশটি প্রথম অ-বিকল্প প্যারামিটারে শুরু হবে যা কোনও বিকল্প যুক্তি নয়, বা '-' এর প্রথম ঘটনার পরে। প্রথম অংশে '-o' বা '--options' বিকল্পটি পাওয়া না গেলে দ্বিতীয় অংশের প্রথম প্যারামিটারটি সংক্ষিপ্ত বিকল্পগুলির স্ট্রিং হিসাবে ব্যবহৃত হয়।

যেহেতু -rকমান্ড লাইন বিকল্পটি আর কোনও আর্গুমেন্ট নেয় না, some_directory"প্রথম অ-বিকল্প পরামিতি যা কোনও বিকল্প যুক্তি নয়" " সুতরাং, getopt(1)ম্যান পৃষ্ঠাতে স্পষ্টভাবে বানান হিসাবে , অনুসরণকারী সমস্ত কমান্ড লাইন আর্গুমেন্টগুলি (অর্থাত্ -P 80 ...) এটি অ-বিকল্প (এবং অ-বিকল্প যুক্তি) হিসাবে ধরে নেওয়া হয় to

সুতরাং, বাস্তবে, getopt(1)বিকল্পগুলির শেষের সাথে এবং পরামিতিগুলির সূচনার সাথে ধূসর বর্ণের পাঠ্য বিংয়ের উত্তরসূত্রের দ্বারা নির্ধারিত পরামিতিগুলির সূচনার সাথে এটি উদাহরণটি দেখেছে:

scp -P80 -r some_directory -P 80 ...

scpআচরণের সাথে এর কোনও সম্পর্ক নেই এবং getopt(3)সি ফাংশনগুলির সেট ব্যবহার করে কীভাবে POSIX মানক অ্যাপ্লিকেশনগুলি পার্স কমান্ড লাইন অপশনগুলিকে পার্স করে ।

কমান্ড লাইন ক্রম এবং প্রক্রিয়াকরণ সম্পর্কিত আরও তথ্যের জন্য, দয়া করে getopt(1)ম্যানপেজটি পড়ুন:

man 1 getopt

88
বিটিডব্লিউ, scpসঠিক বিকল্পের আদেশ দাবি scp -r some_directory -P 80 ...করে : কাজ করে না ----- তবে scp -P 80 -r some_directory ...কাজ করে।
আব্দুল

9
সাধারণত লিনাক্সে কমান্ডের পরে বিকল্পগুলি এবং তারপরে নির্দেশাবলী / মানগুলি অনুসরণ করা হয়
গ্যারি

2
@ আবদল নোট করুন যে scp -r -p 50193 / পাথ / টু / ডিরেক্টরিটিও কাজ করে। ফাইল পাথের প্যারামিটারটি -r পুনরাবৃত্তি বিকল্পের সাথে আবদ্ধ নয়।
বেনিয়ামিন

6
@ বেনজামিন আপনি যদি পোর্ট 50193 ব্যবহার না করতে চান তবে আপনার 'পি' কে মূলধন করা উচিত।
নয়

1
@Abdull আছে: একটি উত্তর askubuntu.com/a/307078/37574 যে ব্যাখ্যা -Pপ্যারামিটার ক্রম। মূলত, বন্দরটি হোস্টের আগে যেতে হবে। এটি উভয়ই অস্পষ্টতা রোধ করে এবং -Pযদি উভয় হোস্ট দূরবর্তী হয় তবে দুটি পরামিতিগুলির অনুমতি দেয় ।
mwfearnley

70

একটি অতিরিক্ত ইঙ্গিত। Scp কমান্ডের পরে '-P' বিকল্পটি রাখুন, আপনি যে মেশিনে এসএসএন-ইন করছেন সেটি দ্বিতীয়টি (ওরফে গন্তব্য) হোক না কেন। উদাহরণ:

scp -P 2222 /absolute_path/source-folder/some-file user@example.com:/absolute_path/destination-folder

46

আপনি কি জানেন এর চেয়ে শীতল কি -P? কিছু না

আপনি যদি এই সার্ভারটি কয়েকবারের বেশি ব্যবহার করেন তবে ~/.ssh/configএন্ট্রি সহ একটি ফাইল সেটআপ করুন / তৈরি করুন:

Host www.myserver.com
    Port 80

অথবা

Host myserver myserver80 short any.name.u.want yes_anything well-within-reason
    HostName www.myserver.com
    Port 80
    User username

তারপরে আপনি ব্যবহার করতে পারেন:

scp username@www.myserver.com:/root/file.txt .

অথবা

scp short:/root/file.txt .

আপনি "হোস্ট" লাইনে ssh, scp, rsync, git এবং আরও অনেক কিছু ব্যবহার করতে পারেন

আপনি কনফিগারেশন ফাইলগুলিতে ব্যবহার করতে পারেন এমন অনেকগুলি কনফিগারেশন বিকল্প রয়েছে, দেখুন:

man ssh_config


3
কেবলমাত্র সমাধান যা scp -3বিভিন্ন পোর্টে এসএসএস শ্রোতাদের সাথে সার্ভারগুলি ব্যবহার এবং এর জন্য মঞ্জুরি দেয় । scp -3 -P 123 server1:/file -P 456 server2:/fileবা অনুরূপ বিকল্পগুলি কাজ করবে না, scp উভয় সার্ভার জুড়ে একই বন্দর ধরে নিয়েছে
user88595

28

আমি বিভিন্ন পোর্ট তখন ব্যবহার করছি এবং স্ট্যান্ডার্ড এবং এই জাতীয় ফাইলগুলির মধ্যে অনুলিপি করুন:

scp -P 1234 user@[ip address or host name]:/var/www/mywebsite/dumps/* /var/www/myNewPathOnCurrentLocalMachine

এটি কেবলমাত্র মাঝে মধ্যে ব্যবহারের জন্য, যদি তা সময়সূচির উপর ভিত্তি করে নিজেকে পুনরাবৃত্তি করে তবে এটি করার জন্য আপনার আরএসসিএন এবং ক্রোন জব ব্যবহার করা উচিত।


7

scp কমান্ডের উপর অন্য একটি পোর্ট ব্যবহারের জন্য মূলধন পি ব্যবহার করুন

scp -P port-number source-file/directory user@domain:/destination

ইয়া আলি


6

scp সহায়তা আমাদের জানায় যে পোর্ট বড় হাতের পি দ্বারা নির্দিষ্ট করা হয়েছে।

~$ scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2

আশাকরি এটা সাহায্য করবে.


2

হোস্টে ফাইল অনুলিপি করা হচ্ছে: scp SourceFile remoteuser@remotehost:/directory/TargetFile

হোস্ট থেকে ফাইল অনুলিপি করা হচ্ছে: scp user@host:/directory/SourceFile TargetFile

হোস্ট থেকে পুনরাবৃত্তভাবে ডিরেক্টরি অনুলিপি করা: scp -r user@host:/directory/SourceFolder TargetFolder

দ্রষ্টব্য : হোস্ট যদি পোর্ট 22 ব্যতীত অন্য কোনও পোর্ট ব্যবহার করে থাকে তবে আপনি এটি -P বিকল্পের সাহায্যে নির্দিষ্ট করতে পারেন: scp -P 2222 user@host:/directory/SourceFile TargetFile



2

এটি -Pস্যুইচের মাধ্যমে পোর্ট নির্দিষ্ট করে অর্জন করা যেতে পারে:

scp -i ~/keys/yourkey -P2222 file ubuntu@host:/directory/

2

আপনার যদি সার্ভারে স্থানীয় ফাইলের অনুলিপি প্রয়োজন হয় (পোর্ট নির্দিষ্ট করুন)

scp -P 3838 /the/source/file username@server.com:/destination/file

0

আশা করি এটি কাউকে নিখুঁত উত্তর খুঁজতে সহায়তা করবে

অন্য সার্ভার বা স্থানীয় মেশিনে সংজ্ঞায়িত একটি পোর্ট সহ একটি সার্ভার থেকে ফোল্ডার বা ফাইল অনুলিপি করা হচ্ছে

  1. যে ডিরেক্টরিতে আপনি ফাইল অনুলিপি করতে চান সেই মেশিনে আপনার প্রশাসনিক অধিকারগুলি যেখানে আপনার বাড়ির ডিরেক্টরিটি পছন্দ করে সেখানে যান directory
  2. নীচে কমান্ড লিখুন

scp -r -P পোর্ট ব্যবহারকারী @ আইপি_ড্রেস: / হোম / ফাইল / পাথ ডিরেক্টরি।

**Note:** The last . on the command directs it to copy everything in that folder to your directory of preference

0

অনেক উত্তর আছে, তবে আপনার কেবল এটি সহজ রাখতে সক্ষম হওয়া উচিত। নিশ্চিত হোন যে আপনি কী বন্দরে এসএসএইচ শুনছেন, এবং এটি সংজ্ঞায়িত করুন। আমি এখানে আপনার সমস্যার প্রতিলিপি তৈরি করতে ব্যবহার করেছি।

scp -P 12222 file.7z user@193.168.XX: / home / ব্যবহারকারী / ডাউনলোডগুলি এটি ভালভাবে কাজ করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.