রিমোট মেশিনে শেল স্ক্রিপ্ট চালাতে কীভাবে এসএসএইচ ব্যবহার করবেন?


1220

আমাকে একটি রিমোট মেশিনে শেল স্ক্রিপ্ট (উইন্ডোজ / লিনাক্স) চালাতে হবে।

আমি এস এবং এইচ উভয় মেশিনে এসএসএইচ কনফিগার করেছি আমার স্ক্রিপ্টটি মেশিন এ রয়েছে যা আমার কোডের একটি রিমোট মেশিন, মেশিন বিতে চালাবে which

স্থানীয় এবং দূরবর্তী কম্পিউটারগুলি উইন্ডোজ বা ইউনিক্স ভিত্তিক সিস্টেম হতে পারে।

প্লিংক / এসএসএস ব্যবহার করে এটি চালানোর কোনও উপায় আছে কি?


6
একই প্রশ্নটি ইতিমধ্যে সার্ভারফল্টে রয়েছে: serverfault.com/questions/215756/… সুতরাং এই প্রশ্নটি স্থানান্তরিত করার সম্ভবত কোনও কারণ নেই।
সলেস্কে

9
সার্ভার ফল্ট-এ প্রশ্নের যদিও এত উত্তর নেই। হয়তো এই প্রশ্নটি যে এক প্রতিস্থাপন করা উচিত।
বিগ ম্যাকলার্জহিউজ

5
আমি ব্যক্তিগতভাবে এই উত্তরটি পছন্দ করি: unix.stackexchange.com/questions/87405/…
মাইক্রোভারম্যানস

27
এছাড়াও এটি স্পষ্টতই বিষয়টিতে থাকা উচিত কারণ সফ্টওয়্যার বিকাশের জন্য এসএসএইচ একটি প্রাথমিক সরঞ্জাম।
স্থির_আর্টি

4
কফি এবং ssh প্রশ্নগুলি একইভাবে ডি-অফ-টপিকনেসনে ডিও শেয়ার করে না। পুনরায় খোলার পক্ষে ভোট দিয়েছেন।
ভিনসেন্ট ক্যান্টিন

উত্তর:


1191

মেশিন একটি উইন্ডোজ বক্স হয়, তাহলে আপনি ঠং (অংশ ব্যবহার করতে পারেন পুটিং -m পরামিতি সহ), এবং এটি দূরবর্তী সার্ভারে স্থানীয় স্ক্রিপ্ট চালানো হবে।

plink root@MachineB -m local_script.sh

মেশিন এ যদি ইউনিক্স ভিত্তিক সিস্টেম হয় তবে আপনি ব্যবহার করতে পারেন:

ssh root@MachineB 'bash -s' < local_script.sh

স্ক্রিপ্টটি চালানোর জন্য আপনাকে রিমোট সার্ভারে অনুলিপি করা উচিত নয়।


11
-sবিকল্পটি ব্যবহার করার কোনও সুবিধা আছে ? এই ম্যান পেজটি আমাকে বিশ্বাস করতে পরিচালিত করে যে এটি প্রমিতকরণের বিকল্পগুলি -sব্যবহার করা হয়েছে কিনা তা শেষ হওয়ার পরে এটি স্ট্যান্ডার্ড ইনপুট প্রক্রিয়া করবে ।
aeroNotAuto

78
একটি স্ক্রিপ্টের জন্য প্রয়োজন যা sudoচালান ssh root@MachineB 'echo "rootpass" | sudo -Sv && bash -s' < local_script.sh
bradley.ayers

6
@ ব্র্যাডলি.ইয়ার্স ইতিহাসটি এড়াতে 'স্পেস' দিয়ে কমান্ডটি শুরু করার কথা মনে রেখেছেন (পিএস আপনার HISTCONTROL=ignoreboth or ignorespaceএটির কাজটি করতে হবে)
ডেরেনিও

8
@ ব্র্যাডলি.ইয়ার্স যদি আপনি ইতিমধ্যে রুট হিসাবে লগ ইন করছেন তবে আপনার কোন পরিস্থিতিতে সুডোর প্রয়োজন হবে?
ব্রায়ান শ্লেঙ্কার

21
@ অ্যাগোস্টিনো, আপনি এর মতো প্যারামিটার যুক্ত করতে পারেন: ssh root@MachineB ARG1="arg1" ARG2="arg2" 'bash -s' < local_script.sh ক্রেডিটগুলি সম্পূর্ণরূপে নীচে নীচে @ চুবসবন্ডবসের উত্তরটিতে যান।
ইয়েভেস ভ্যান ব্রুকভোভেন

632

এটি একটি পুরানো প্রশ্ন এবং জেসনের উত্তরটি ঠিক কাজ করে তবে আমি এটি যুক্ত করতে চাই:

ssh user@host <<'ENDSSH'
#commands to run on remote host
ENDSSH

এটি su এবং কমান্ডগুলির সাথেও ব্যবহার করা যেতে পারে যার জন্য ব্যবহারকারীর ইনপুট দরকার। ( 'পালানো বংশধর নোট করুন )

সম্পাদনা: যেহেতু এই উত্তরটি ট্র্যাফিকের বিট পেতে থাকে, তাই আমি হেরডোকের এই দুর্দান্ত ব্যবহারে আরও বেশি তথ্য যুক্ত করব:

আপনি এই সিনট্যাক্সের সাহায্যে বাসা কমান্ড করতে পারেন, এবং নীড় বাঁধাইয়ের একমাত্র উপায় কাজ করে বলে মনে হচ্ছে (বোকামি দিয়ে)

ssh user@host <<'ENDSSH'
#commands to run on remote host
ssh user@host2 <<'END2'
# Another bunch of commands on another host
wall <<'ENDWALL'
Error: Out of cheese
ENDWALL
ftp ftp.secureftp-test.com <<'ENDFTP'
test
test
ls
ENDFTP
END2
ENDSSH

আপনি আসলে কিছু পরিষেবা যেমন টেলনেট, এফটিপি ইত্যাদির সাথে কথোপকথন করতে পারেন তবে মনে রাখবেন যে হেরডোক কেবল স্ট্যান্ডিনকে পাঠ্য হিসাবে প্রেরণ করে, এটি লাইনের মধ্যে প্রতিক্রিয়া অপেক্ষা করে না

সম্পাদনা: আমি সবেমাত্র জানতে পেরেছি যে আপনি যদি ট্যাবগুলি ব্যবহার করেন তবে অভ্যন্তরীণ অভ্যন্তরগুলি ইনডেন্ট করতে পারবেন <<-END!

ssh user@host <<-'ENDSSH'
    #commands to run on remote host
    ssh user@host2 <<-'END2'
        # Another bunch of commands on another host
        wall <<-'ENDWALL'
            Error: Out of cheese
        ENDWALL
        ftp ftp.secureftp-test.com <<-'ENDFTP'
            test
            test
            ls
        ENDFTP
    END2
ENDSSH

(আমি এই কাজ করা উচিত)

এছাড়াও http://tldp.org/LDP/abs/html/here-docs.html দেখুন


4
আপনি কিছুটা লাইন যুক্ত করে কিছুটা টেম্পোরাইজ করতে পারেন যেমন: # $ (ঘুম 5)
অলিভিয়ার ডুলাক

50
নোট করুন যে টার্মিনেটর ( <<'ENDSSH') এর চারপাশে একক উদ্ধৃতি দিয়ে স্ট্রিংগুলি প্রসারিত হবে না, ভেরিয়েবলগুলি মূল্যায়ন করা হবে না। আপনি ব্যবহার করতে পারেন <<ENDSSHবা <<"ENDSSH"আপনি চাইলে প্রসারণও করতে পারেন।
ম্যাককাল

3
Expectআপনি যখন FTP এর মত ইন্টারেক্টিভ কমান্ড স্বয়ংক্রিয় করতে চান তখন ব্যবহার করা যেতে পারে।
প্রগ্রেমথগুলি

5
আমি একটি Pseudo-terminal will not be allocated because stdin is not a terminal.বার্তা ছিল নোট করুন। এটি -t -tএড়াতে কাউকে প্যারাম সহ এসএসএস ব্যবহার করতে হবে। এই থ্রেডটি এসও
বুজুত

8
যদি আপনি << - 'শেষ' সিনট্যাক্সটি ব্যবহার করার চেষ্টা করছেন, তবে নিশ্চিত হন যে আপনার বংশগত সমাপ্তি ডিলিমিটারটি স্পেস নয়, টিএবিএস ব্যবহার করে ইন্টেন্টেড রয়েছে। নোট করুন যে স্ট্যাকেক্সচেঞ্জ থেকে অনুলিপি / আটকানো আপনাকে স্থান দেবে। এগুলি ট্যাবে পরিবর্তন করুন এবং ইনডেন্ট বৈশিষ্ট্যটি কাজ করা উচিত।
fbicknel

249

এছাড়াও, আপনি যদি গন্তব্য হোস্ট থেকে বাছাই করতে চান তবে ভেরিয়েবলগুলি এড়িয়ে চলতে ভুলবেন না।

এটি অতীতে আমাকে ধরা দিয়েছে।

উদাহরণ স্বরূপ:

user@host> ssh user2@host2 "echo \$HOME"

/ হোম / ইউজার 2 প্রিন্ট করে

যখন

user@host> ssh user2@host2 "echo $HOME"

/ হোম / ব্যবহারকারী মুদ্রণ

আরেকটি উদাহরণ:

user@host> ssh user2@host2 "echo hello world | awk '{print \$1}'"

"হ্যালো" সঠিকভাবে মুদ্রণ করে।


2
তবে নিম্নলিখিত বিষয়ে সচেতন থাকুন: ssh user2@host 'bash -s' echo $HOME /home/user2 exit
errant.info

1
সেশনে forচলমান লুপগুলিতে কেবল যোগ করতে sshলুপ ভেরিয়েবলটি এড়ানোর দরকার নেই।
আলেক্সিডারিইন

1
অনেক পরিস্থিতিতে আপনার শেষ উদাহরণটি ঠিক করার বুদ্ধিমান উপায় ssh user2@host2 'echo hello world' | awk '{ print $1 }'হ'ল স্থানীয়ভাবে আওক স্ক্রিপ্টটি চালান। যদি রিমোট কমান্ড আউটপুট সম্পর্কে প্রচুর পরিমাণে উত্পাদন করে তবে অবশ্যই আপনি এগুলি স্থানীয় সার্ভারে অবশ্যই অনুলিপি করতে এড়াতে চান। ঘটনাক্রমে, রিমোট কমান্ডের চারপাশে একক উদ্ধৃতি কোনও প্রকার পালনের প্রয়োজন এড়ায়।
ট্রিপলি

151

স্থানীয় মেশিন থেকে দূরবর্তী হোস্টে এনএনভি ভেরিয়েবলগুলি পাস করার সাথে ইনলাইন রিমোট কমান্ডগুলি একত্রিত করার জন্য ইয়ারেকটি-র উত্তরের এটি একটি এক্সটেনশন যাতে আপনি দূরবর্তী পার্শ্বের স্ক্রিপ্টগুলিকে প্যারামিটারাইজ করতে পারেন:

ssh user@host ARG1=$ARG1 ARG2=$ARG2 'bash -s' <<'ENDSSH'
  # commands to run on remote host
  echo $ARG1 $ARG2
ENDSSH

আমি এটিকে সবগুলিকে একটি স্ক্রিপ্টে রেখে ব্যতিক্রমী সহায়ক বলেছি এটি খুব পঠনযোগ্য এবং রক্ষণাবেক্ষণযোগ্য।

কেন এই কাজ করে। ssh নিম্নলিখিত সিনট্যাক্স সমর্থন করে:

ssh ব্যবহারকারী @ হোস্ট রিমোট_কম্যান্ড

ব্যাশে আমরা যেমন একক লাইনে একটি কমান্ড চালানোর আগে সংজ্ঞা দিতে পরিবেশের ভেরিয়েবলগুলি নির্দিষ্ট করতে পারি:

ENV_VAR_1 = 'মান 1' ENV_VAR_2 = 'মান 2' বাশ-সি 'প্রতিধ্বনি $ ENV_VAR_1 $ ENV_VAR_2'

এটি কমান্ড চালানোর আগে ভেরিয়েবলগুলি সংজ্ঞায়িত করা সহজ করে তোলে। এক্ষেত্রে ইকো হ'ল আমাদের কমান্ড। প্রতিধ্বনি করার আগে সমস্ত কিছু পরিবেশের ভেরিয়েবলগুলি সংজ্ঞায়িত করে।

সুতরাং আমরা এই দুটি বৈশিষ্ট্য এবং YarekT এর উত্তর পেতে একত্রিত:

ssh ব্যবহারকারী @ হোস্ট এআরজি 1 = $ এআরজি 1 এআরজি 2 = $ এআরজি 2 'বাশ-এস' << 'এন্ডডিএসএইচ' ...

এই ক্ষেত্রে আমরা ARG1 এবং ARG2 স্থানীয় মানগুলিতে সেট করছি are ব্যবহারকারী @ হোস্টের পরে রিমোট_কম্যান্ড হিসাবে সমস্ত কিছু পাঠানো। রিমোট মেশিনটি ARG1 এবং ARG2 কমান্ডটি স্থানীয় মান নির্ধারণ করা হয়, স্থানীয় কমান্ড লাইন মূল্যায়নের জন্য ধন্যবাদ, যা রিমোট সার্ভারে পরিবেশের ভেরিয়েবলগুলি সংজ্ঞায়িত করে, তারপর সেই ভেরিয়েবলগুলি ব্যবহার করে bash -s কমান্ড কার্যকর করে। Voila।


1
মনে রাখবেন যে আপনি যদি -a এর মতো আরোগুলি পাস করতে চান তবে আপনি ব্যবহার করতে পারেন -। উদাহরণস্বরূপ 'ssh ব্যবহারকারীর @ হোস্ট - -ফ ফু বার' বাশ-এস '<স্ক্রিপ্ট.শ'। আরআর্গগুলি পুনঃনির্দেশের পরে যেতে পারে যেমন 'ssh ব্যবহারকারীর @ হোস্ট' বাশ-এস '<স্ক্রিপ্ট.শ - - একটি ফু বার'।
গেওথে

8
ssh user@host "ARG1=\"$ARG1\" ARG2=\"$ARG2\"" 'bash -s' <<'ENDSSH'...
এনভের

আমি অন্য মন্তব্যে যেমন লিখেছি, ব্যবহারের একেবারে পয়েন্টটি -sহ'ল স্টিডিনের মাধ্যমে প্রাপ্ত স্ক্রিপ্টগুলিতে যুক্তি প্রয়োগ করতে সক্ষম হওয়া। মানে আপনি যদি এটি ব্যবহার না করে থাকেন তবে আপনি এটিকে বাদও দিতে পারেন। যদি আপনি এটি ব্যবহার করেন, পরিবেশের ভেরিয়েবলগুলি ব্যবহার করার কোনও কারণ নেই:ssh user@host 'bash -s value1 value2' <<< 'echo "$@"'
জোল

104
<hostA_shell_prompt>$ ssh user@hostB "ls -la"

এটি আপনাকে পাসওয়ার্ডের জন্য অনুরোধ করবে, যদি না আপনি আপনার হোস্টএ ব্যবহারকারীর পাবলিক কীটি ব্যবহারকারীর .ssh ডিরেক্টরিতে বাড়ির অনুমোদিত_কিজ ফাইলটিতে অনুলিপি না করেন। এটি পাসওয়ার্ডহীন প্রমাণীকরণের জন্য অনুমতি দেবে (যদি এসএসএস সার্ভারের কনফিগারেশনে কোনও প্রমাণীকরণ পদ্ধতি হিসাবে গৃহীত হয়)


3
আপনাকে ভোট দিয়েছে এটি একটি বৈধ সমাধান। স্পষ্টতই, কীগুলি অবশ্যই সুরক্ষিত থাকতে হবে তবে সেগুলি সার্ভারের পাশ দিয়ে পাসওয়ার্ডের মতোই অবৈধও করা যেতে পারে।
উইলসায়হাট

8
আমি মনে করি না এটি প্রশ্নের উত্তর দেয়। উদাহরণটি দেখায় যে কীভাবে দূরবর্তী কমান্ডটি চালানো যায় তবে দূরবর্তী মেশিনে কীভাবে স্থানীয় স্ক্রিপ্ট চালানো যায় না।
জেসন আর। কুমস 21

নির্দিষ্ট নয় তবে এই পদ্ধতিটি ব্যবহার করে আপনি হোস্টএতে আপনার স্ক্রিপ্টটি পাইপ করতে পারবেন না?
nevets1219

27

আমি আরও পরিশীলিত অপারেশনের জন্য ফ্যাব্রিক ব্যবহার শুরু করেছি । ফ্যাব্রিকের জন্য পাইথন এবং অন্যান্য কয়েকটি নির্ভরতা প্রয়োজন তবে কেবল ক্লায়েন্ট মেশিনে। সার্ভারটি কেবল একটি ssh সার্ভারের প্রয়োজন। আমি এই সরঞ্জামটি শেল স্ক্রিপ্টগুলি এসএসএইচের কাছে হস্তান্তর করা থেকে অনেক বেশি শক্তিশালী বলে মনে করি এবং সেট আপ করার ঝামেলাটি ভাল (বিশেষত যদি আপনি পাইথনে প্রোগ্রামিং উপভোগ করেন)। ফ্যাব্রিক একাধিক হোস্টের (বা কিছু নির্দিষ্ট রোলের হোস্ট) চলমান স্ক্রিপ্টগুলি পরিচালনা করে, আইডেম্পোটেন্ট অপারেশনগুলিকে সহায়তা করতে সহায়তা করে (যেমন একটি কনফিগার স্ক্রিপ্টে একটি লাইন যুক্ত করা, তবে এটি ইতিমধ্যে সেখানে নেই) এবং আরও জটিল যুক্তি নির্মাণের অনুমতি দেয় (যেমন পাইথন হিসাবে ভাষা সরবরাহ করতে পারে)।


11

চালানোর চেষ্টা করুন ssh user@remote sh ./script.unx


8
এটি কেবল তখনই কাজ করে যদি স্ক্রিপ্টটি দূরবর্তী ডিফল্ট (হোম) ডিরেক্টরিতে থাকে। আমি মনে করি যে প্রশ্নটি কীভাবে স্থানীয়ভাবে সঞ্চিত স্ক্রিপ্টটি রিমোটে চালানো যায়।
মেটাসিম

1
ssh ব্যবহারকারীর নাম @ আইপি "chmod + এক্স স্ক্রিপ্ট.শ" <br/> ssh ব্যবহারকারীর নাম @ আইপি "দূরবর্তী হোস্টে sh ফাইলের পথ"
মণি গভীর


8

ধরে নেওয়া আপনার অর্থ, আপনি কোনও "স্থানীয়" মেশিন থেকে স্বয়ংক্রিয়ভাবে এটি করতে চান, "রিমোট" মেশিনে ম্যানুয়ালি লগইন না করে আপনার একটি টিসিএল এক্সটেনশনটি দেখা উচিত যা এক্সপেক্ট নামে পরিচিত, এটি এই ধরণের পরিস্থিতির জন্য সঠিকভাবে তৈরি করা হয়েছে। আমি এসএসএইচ-এর মাধ্যমে লগ-ইন / ইন্টারঅ্যাক্ট করার জন্য কোনও স্ক্রিপ্টের লিঙ্ক সরবরাহ করেছি।

https://www.nist.gov/services-resources/software/expect

http://bash.cyberciti.biz/security/expect-ssh-login-script/


5

আমি এটিকে একটি রিমোট মেশিনে শেল স্ক্রিপ্ট চালাতে ব্যবহার করি (/ বিন / বাশ পরীক্ষিত):

ssh deploy@host . /home/deploy/path/to/script.sh

3
ssh user@hostname ".~/.bashrc;/cd path-to-file/;.filename.sh"

এনভায়রনমেন্ট ফাইল (.bashrc / .Bashprofile / .profile) উত্স করার জন্য অত্যন্ত প্রস্তাবিত। রিমোট হোস্টে কিছু চালানোর আগে কারণ লক্ষ্য এবং উত্স হোস্ট এনভায়রনমেন্ট ভেরিয়েবলগুলি ডিফার হতে পারে।


এটি স্থানীয় স্ক্রিপ্টকে কীভাবে দূরবর্তী হোস্টে স্থানান্তরিত করবে তা ব্যাখ্যা করে না।
কিরেলেগিন

2

আপনি যদি command this-তে এই কমান্ডের মতো আদেশটি কার্যকর করতে চান তবে temp=`ls -a` echo $temp ত্রুটি ঘটবে।

কমান্ড নীচে এই সমস্যা সমাধান করবে ssh user@host ''' temp=`ls -a` echo $temp '''


1

উত্তর এখানে ( https://stackoverflow.com/a/2732991/4752883 ) কাজ করে মহান যদি আপনি ব্যবহার করে একটি দূরবর্তী লিনাক্স মেশিনে একটি স্ক্রিপ্ট চালানোর চেষ্টা করছেন plinkবা ssh। স্ক্রিপ্টে একাধিক লাইন থাকলে এটি কাজ করবে linux

** তবে, আপনি যদি কোনও স্থানীয় linux/windowsমেশিনে অবস্থিত একটি ব্যাচ স্ক্রিপ্ট চালানোর চেষ্টা করছেন এবং আপনার দূরবর্তী মেশিনটি রয়েছে Windowsএবং এটিতে একাধিক লাইন রয়েছে **

plink root@MachineB -m local_script.bat

অভ্যাস কাজ না।

স্ক্রিপ্টের প্রথম লাইনটিই কার্যকর করা হবে। এটি সম্ভবত একটি সীমাবদ্ধতা plink

সমাধান 1:

মাল্টলাইন ব্যাচের স্ক্রিপ্ট চালানোর জন্য (বিশেষত এটি তুলনামূলকভাবে সহজ হলে কয়েকটি লাইনে গঠিত):

যদি আপনার মূল ব্যাচের স্ক্রিপ্টটি নীচে থাকে

cd C:\Users\ipython_user\Desktop 
python filename.py

আপনি আপনার local_script.batফাইলে নীচে "&&" বিভাজক ব্যবহার করে লাইনগুলি একত্রিত করতে পারেন : https://stackoverflow.com/a/8055390/4752883 :

cd C:\Users\ipython_user\Desktop && python filename.py

এই পরিবর্তনের পরে, আপনি এখানে @ জেসনআর.কুমবস দ্বারা নির্দেশিত হিসাবে স্ক্রিপ্টটি চালাতে পারেন: https://stackoverflow.com/a/2732991/4752883 এর সাথে:

`plink root@MachineB -m local_script.bat`

সমাধান 2:

যদি আপনার ব্যাচের স্ক্রিপ্টটি তুলনামূলকভাবে জটিল হয় তবে প্লাচ কমান্ডকে আবৃত করে এমন একটি ব্যাচ স্ক্রিপ্ট ব্যবহার করা আরও ভাল হতে পারে যা এখানে @ মার্টিন https://stackoverflow.com/a/32196999/4752883 দ্বারা নির্দেশিত হিসাবে অনুসরণ করা হয়েছে :

rem Open tunnel in the background
start plink.exe -ssh [username]@[hostname] -L 3307:127.0.0.1:3306 -i "[SSH
key]" -N

rem Wait a second to let Plink establish the tunnel 
timeout /t 1

rem Run the task using the tunnel
"C:\Program Files\R\R-3.2.1\bin\x64\R.exe" CMD BATCH qidash.R

rem Kill the tunnel
taskkill /im plink.exe

1

এই বাশ স্ক্রিপ্টটি একটি টার্গেট রিমোট মেশিনে ssh করে এবং রিমোট মেশিনে কিছু কমান্ড চালায়, এটি চালানোর আগে প্রত্যাশা ইনস্টল করতে ভুলবেন না (ম্যাকের উপর brew install expect)

#!/usr/bin/expect
set username "enterusenamehere"
set password "enterpasswordhere"
set hosts "enteripaddressofhosthere"
spawn ssh  $username@$hosts
expect "$username@$hosts's password:"
send -- "$password\n"
expect "$"
send -- "somecommand on target remote machine here\n"
sleep 5
expect "$"
send -- "exit\n"

1
এটি দুর্দান্ত যদি আপনার অবশ্যই পাসওয়ার্ড ব্যবহার করা হয় ... তবে ঘরে বসে কারও উপকারের জন্য কোনও ssh কমান্ড পাসওয়ার্ড নয় এমন এক জোড়া পাবলিক + প্রাইভেট কী ব্যবহার করা উচিত ... একবারে আপনার পাসওয়ার্ড পুরোপুরি বন্ধ করতে আপনার এসএস সার্ভার আপডেট করুন
স্কট স্টেনসল্যান্ড

-1

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

sudo apt install runoverssh
runoverssh -s localscript.sh user host1 host2 host3...

-s দূরবর্তী অবস্থান থেকে স্থানীয় স্ক্রিপ্ট চালায়


দরকারী পতাকা:
-g সমস্ত হোস্টের জন্য একটি গ্লোবাল পাসওয়ার্ড ব্যবহার করুন (একক পাসওয়ার্ড প্রম্পট)
-nsshpass পরিবর্তে এসএসএইচ ব্যবহার করুন, পাবলিক-কী প্রমাণীকরণের জন্য দরকারী


-24

প্রথমে স্ক্রিপ্ট ব্যবহার করে স্ক্রিপ্টটি মেশিন বিতে অনুলিপি করুন

[ব্যবহারকারী @ মেশিনএ] $ স্ক্রিপ / পাথ / টু / স্ক্রিপ্ট ব্যবহারকারী @ মেশিনবি: / হোম / ইউজার / পাথ

তারপরে, কেবল স্ক্রিপ্টটি চালান

[ব্যবহারকারী @ মেশিনএ] sh এসএসএস ব্যবহারকারী @ মেশিনবি "" / হোম / ইউজার / পাথ / স্ক্রিপ্ট "

আপনি স্ক্রিপ্টে নির্বাহযোগ্য অনুমতি দিলে এটি কাজ করবে।


হাই আমি প্রস্তাবিত সুগারেসিওন প্রয়োগ করেছি তবে এটি আমাকে নিম্নলিখিত ত্রুটি দেয় [ওরাকল @ নোড 1 ~] sh এসএস ওરેકল @ নোড 2: ./ হোম / ওরাকল / আউ / এফএস / কান.এসএস এসএসএস: নোড 2:। / হোম / ওরাকল / আ / এফএস / সংযোগ: নাম বা পরিষেবা জানা যায়নি [ওরাকল @ নোড 1 ~] $

'ssh ওরাকল @ নোড 2:। / হোম / ওরাকল / আউ / এফএস / কান.শ'? ভুল কমান্ড লাইন, কমান্ডের নামটি ব্যবহারকারীর @ হোস্ট অংশ থেকে কোনও স্থানের সাথে পৃথক করা উচিত, কোলন নয়।
বোর্টজমিয়ার

5
আমি এটিকে নিম্নমানের করছি কারণ এটি প্রাথমিক দাবি যে এটি অনুলিপি করা ছাড়া এটি চালানো যায় না এটি ভুল।
জেসন আর। কুমস 21

জেসন যুক্ত হ'ল এটি সাহায্যকারী হতে পারে কারণ এটি সত্যরূপে উল্লেখ করার পরিবর্তে কেন ভুল। অকেজো।
ক্রিস

[ব্যবহারকারী @ মেশিনএ] sh এসএসএস রুট @ মেশিনবি 'বাশ-এস' </ মেশিনা / পাথ / টু / স্ক্রিপ্ট
ওলেকসি ক্যাস্লিটসিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.