আমি মনে করি কীভাবে শেল দ্বারা বিকল্পগুলি পার্স করা হচ্ছে তার সাথে এর আরও করার আছে। উদাহরণস্বরূপ, এটি কাজ করে:
$ ssh root@server /bin/sh -c '"cd /boot && ls -l"'
এটি আপনার আদেশ হিসাবে একই সমস্যা আছে:
$ ssh root@server /bin/sh -c 'cd /boot && ls -l'
আপনি যদি -v
স্যুইচ সক্ষম করে থাকেন তবে আপনি ssh
কী দেখতে পাচ্ছেন তা দেখতে পাবেন:
প্রথম আদেশ:
ডিবাগ 1: পাঠানো কমান্ড: / বিন / শ-সি "সিডি / বুট && ls -l"
২ য় আদেশ:
ডিবাগ 1: পাঠানো কমান্ড: / বিন / শ-সিসি / বুট && ls -l
সাধারণত ssh
আপনার মাধ্যমে কমান্ডগুলি প্রেরণ করার সময় বিভিন্ন স্তরগুলি সরিয়ে ফেলার কারণে আপনার উদ্ধৃতিগুলিতে উদ্ধৃতি এবং মোড়কের মুদ্রায় বিশেষ মনোযোগ দিতে হবে। প্রেরণেও বিরক্ত করবেন না /bin/sh
।
ssh
নিম্নলিখিতগুলির মতো উদ্ধৃতিগুলি বুঝতে পারলে আপনি খুব দরকারী জিনিসটি করতে পারেন । এটি রিমোট সার্ভারে কমান্ডটি চালাবে তবে আপনি যে কমান্ডটি চালিয়ে গেছেন সেই সিস্টেমে স্থানীয়ভাবে একটি ফাইলের ফলাফল সংগ্রহ করুন ssh
:
$ ssh root@server 'free -m' > /tmp/memory.status
বা এটি, যেখানে আপনি একটি দূরবর্তী সার্ভারে একটি ডিরেক্টরি ট্যারি করেন এবং এটি স্থানীয় সিস্টেমে তৈরি করেন:
$ ssh remotehost 'tar zcvf - SOURCEDIR' | cat > DESTFILE.tar.gz
তথ্যসূত্র
ssh root@server /bin/sh -c "ls -l /boot"
?