Ssh লগইনে স্ক্রিপ্ট লোড করুন (অ-ইন্টারেক্টিভ)


0

আমি একটি ইন্টারেক্টিভ রিমোট সেশন থেকে পরিবেশের মডিউলগুলি লোড করার চেষ্টা করছি এবং সেই অনুযায়ী পরিবেশের ভেরিয়েবলগুলি সেট করব।

উদাহরণস্বরূপ, আমার বাশার্কে আমি সাধারণত কল করি

module load /path/to/cmake/3.x.x

এবং আমি যখন লগইন শেল থেকে "cmake --version" চালাব তখন আমি দেখতে পাব

cmake v3.x.x

যাইহোক, আমি যখন এটি একটি ইন্টারেক্টিভ রিমোট সেশন দিয়ে চালাচ্ছি, আমি cmake v2.xxx কে বধির হিসাবে দেখতে পাচ্ছি।

ssh me@machine 'cmake --version'

এটি ঘুরে দেখার জন্য, আমি আমার / ইত্যাদি / এসএসএস / এসএসডি_কনফিগটিকে "পারমিট ইউজার-পরিবেশে হ্যাঁ" এ আপডেট করার চেষ্টা করেছি

আমার ~ / .ssh / এনভায়রনমেন্ট ফাইলের অভ্যন্তরে আমি সেই অনুযায়ী পরিবেশের ভেরিয়েবল সেট করতে এবং আমার $ PATH আপডেট করতে সক্ষম। এই কাজ করে, এবং যখন SSH- র মাধ্যমে দূরবর্তী অবস্থান থেকে কমান্ড চলমান দেখতে পাচ্ছি আমার পথ হয় আপডেট করা হয়েছে। অর্থাত

ssh me@machine 'echo $PATH'

আমি একটি ~ / .ssh / আরসি ফাইলও তৈরি করেছি যা আমি নিশ্চিত হয়েছি যে ফোন করা হয়েছে। তবে, যদিও আমি একই "মডিউল লোড /path/to/cmake/3.xx" রেখেছি এখনও আমি এটি ভি 2 লোড করে দেখছি। আমি যদি আমার .ssh / আরসির ভিতরে আমার প্যাথটিকে আপডেট এবং রফতানি করি তবে একই কাজ হয়। এটি আপডেট হয়, তবে মনে হয় এটি দূরবর্তীভাবে ব্যবহৃত হবার চেয়ে আলাদা শেলের সাথে এটি প্রয়োগ করছে।

আমি বুঝতে পারি না কেন shell / .ssh / পরিবেশ বর্তমান শেলের জন্য জিনিসগুলিকে সংশোধন করে তবে ~ / .ssh / rc আপাতদৃষ্টিতে আলাদা শেলটির জন্য জিনিসগুলিকে পরিবর্তন করে।

আমি কীভাবে দূরবর্তী অবস্থানের পরিবেশ মডিউলগুলি ব্যবহার করতে পারি তার কোনও ধারণাগুলি ?

কৃতজ্ঞতা

উত্তর:


0

আমার অভিজ্ঞতায়, অবশ্যই আরএইচইল এবং ফেডোরার সাথে, to / .bashrc আপনি উল্লেখ করছেন এমন "অ-ইন্টারেক্টিভ" এসএসএইচ সংযোগের ধরণে চালিত হবে। আমি মডিউল সিস্টেমটিও (আরএইচইইএল) ব্যবহার করি এবং যখন আমি এসএসএইচ দিয়ে কোনও কমান্ড চালিত করি তখন আমার ~ / .Bashrc থেকে মডিউলগুলি লোড করা নিয়ে কোনও সমস্যা হয় না।

ইউএনআইএক্স / লিনাক্স স্ট্যাকএক্সচেঞ্জ সাইটের নিম্নলিখিত প্রশ্নোত্তর অনুসারে, কিছু ডিস্ট্রো-র মধ্যে তাদের ডিফল্ট .bashrc (/ etc / skel থেকে) কোড থাকে না যদি ইন্টারঅ্যাক্টিভ হয় - তবে এটির কাছাকাছি জায়গায় আপনার মতো কিছু থাকতে পারে কি? তোমার শীর্ষে? সেখানে আলোচনাও হয়েছে যা দেখে নিশ্চিত হয় যে ব্যাশ, যখন এসএসএইচডি থেকে চালানো হবে তখন ~ / .bashrc চালাবে।

https://unix.stackexchange.com/questions/257571/why-does-bashrc-check-whether-the-current-shell-is-interactive


আপনি একটি প্রশ্ন জিজ্ঞাসা বা উত্তর লিখছেন? যদি আপনার উদ্দেশ্য তদন্ত সম্পর্কিত কোনও মন্তব্য করার ছিল, আপনি কীভাবে মন্তব্য করা শুরু করতে পারবেন তা বোঝার সুযোগ পেলে "মন্তব্য করার জন্য আমার কেন 50 টি খ্যাতি দরকার" পড়ুন
পিম্প জুস আইটি

@ স্টেটিংরে: হ্যাঁ, এটি অবশ্যই আমার ~ / .bashrc বা / ইত্যাদি / বাশার্ককে কল করছে না, এজন্য আমি পরিবর্তে এই রুটে যাওয়ার চেষ্টা করছিলাম। আমি RHEL 6.9 ব্যবহার করছি।
জর্দান

এখানেও RHEL6.9, এবং যদি আমি "ssh x @ y cmd" চালনা করি তবে আমার ~ / .bashrc অবশ্যই রিমোট সিস্টেমে চালিত হবে। আমার কাছে এটিও RHEL4 / 5/7 এ একই। আজব, আমি ভাবছি আপনার পরিবেশে কি আলাদা।
স্টিংরে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.