একটি রিমোট মেশিনে একটি টিএমউक्स সেশনটি সংযুক্ত করুন


31

আমি আমার স্থানীয় মেশিনে tmux ব্যবহার করছি এবং সাধারণত একসাথে বেশ কয়েকটি সেশন হয়।

আমি সাধারণত যা করি তা হ'ল স্থানীয়ভাবে কাজ করার জন্য আমার বিভিন্ন উইন্ডো সহ একটি সেশন এবং অন্যান্য সেশনগুলি যেখানে আমি বেশ কয়েকটি উইন্ডো প্রতি সেশনে একটি হোস্টের সাথে সংযুক্ত করি।

আমি tmux তৈরির প্রতিদিনের ব্যবহারে একটি সেশন / উইন্ডো ট্রি দেখতে দেখতে এটির মত লাগবে:

(TMUX on my local machine)
 |
 +- session 1: local
 |  \_ window 1: local shell
 |  \_ window 2: local shell
 |  \_ ...
 |
 + session 2: somehost
 |  \_ window1: ssh user@somehost
 |  \_ window2: ssh user@somehost
 |  \_ ...
 |
 + session 3: someotherhost
    \_ window1: ssh user@someotherhost
    \_ window2: ssh user@someotherhost
    \_ ...

সেশন 2 এবং সেশন 3 করার কোনও উপায় কি কোনও কোনও টেমাক্স সেশনের সাথে সংযোগ স্থাপনকারী কোনও দূরবর্তী সেশন রয়েছে যা কোনও কোনও এবং কোনও জায়গায় তৈরি হয়েছে?

উপরের গাছটি দেখতে এমন হবে:

(TMUX on my local machine)
 |
 +- session 1: local
 |  \_ window 1: local shell
 |  \_ window 2: local shell
 |  \_ ...
 |
 + session 2 linked to an existing session on somehost
 |  \_ window1: shell on somehost
 |  \_ window2: shell on somehost
 |  \_ ...
 |
 + session 3 linked to an existing session on someotherhost
    \_ window1: shell on someotherhost
    \_ window2: shell on someotherhost
    \_ ...

আমি এই বিষয়টি পেয়েছি তবে আমি নিশ্চিত নই যে আমি এটিই করতে চাই: হোস্টগুলির মধ্যে কোনও টিএমক্স সকেট ভাগাভাগি করা কি সম্ভব?

আমি মনে করি আমি যা খুঁজছি তার জন্য আমার স্থানীয় মেশিনে, কোনওরকম এবং অন্য কোনও হোস্টে একই টিএমউক্স কনফিগারেশন থাকা প্রয়োজন তবে সমস্যা হবে না।


আপনি কি এটির জন্য কোনও পরিকল্পনা খুঁজে বের করেছেন? আমি মনে করি যে এটির মতো স্থানীয়ভাবে পরিচালনা করতে পারে এমন একটি দূরবর্তী অধিবেশন রাখা দুর্দান্ত ধারণা, তবে এটি দেখে মনে হচ্ছে সর্বোচ্চ ভোটের উত্তরটি আসলে আপনার প্রশ্ন নয়
এমবিগ্রাস

উত্তর:


18

রিমোট হোস্টের সাথে সংযোগ করার সময় আপনি ssh এ একটি আদেশ দিতে পারেন। দূরবর্তী tmux সেশনে সংযোগ করতে -tবিকল্পটি অন্তর্ভুক্ত করুন tmux attach-session:

ssh <remote host> -t tmux attach-session

এসএমএসের মাধ্যমে টিএমউक्स সেশনে সংযুক্ত হওয়ার বিষয়ে এই পোস্টটি আরও বিশদভাবে ব্যাখ্যা করেছে।


18
এটি কি আপনাকে নেস্টেড সেশন দেয় না? আমি বিশ্বাস করি যে ওপি কী চেষ্টা করছে তা তাদের স্থানীয় সেশনের পাশাপাশি রিমোট সেশনটি উপস্থিত হবে যাতে তারা একটি টিএমউক্সের পছন্দ-উইন্ডো / পছন্দ-গাছের মধ্যে নেভিগেট করতে পারে।
stsquad

যদি রিমোট হোস্টে একাধিক অধিবেশন সংযুক্ত থাকে তবে আপনি ব্যবহার করতে পারেন: ssh <দূরবর্তী হোস্ট> -ট tmux এ -t <session-name>
ব্যবহারকারী1757247

আমি যে সমস্যার মুখোমুখি হয়েছিলাম এবং ধাপে ধাপে ধাপে কিছু সম্পাদনা করেছি। আশা করি পিয়ার পর্যালোচনা শীঘ্রই শেষ হবে। এটি কাজ করেছে ssh <remote host> -t /path/to/tmux a -t <my-session-name>, একটি অতিরিক্ত প্রয়োজন-t
মার্লিন

আমার ওপি-র মতো একই প্রশ্ন রয়েছে। এটি আমার প্রশ্নের উত্তর দেয় না। এটি একটি নেস্টেড tmux সেশন তৈরি করে যেখানে আমাকে সেই সেশনে প্রেরণ করতে চাইলে সমস্ত tmux কমান্ড দ্বিগুণ করতে হবে। আমি এমন কিছু চাই যেখানে স্থানীয় সেশনের মতো দূরবর্তী সেশনটি আমার সেশন তালিকায় প্রদর্শিত হবে।
সর্বময়

2

যদি আপনার মূল সমস্যাটি হ'ল ssh remotehostপ্রতিবার আপনি নতুন উইন্ডো খোলার সময় টাইপ করতে হয় তবে default-commandসেশন বিকল্পটি একদম কার্যকর হতে পারে।

আপনি যে সেশনগুলিতে সেট করেছেন সেগুলিতে আপনি নতুন উইন্ডোগুলি খুললে এটি স্বয়ংক্রিয়ভাবে নির্ধারিত আদেশটি কার্যকর করে।

একটি সাধারণ সেটিং .tmux.conf:

bind-key C-r new-session ssh remotehost \; set-option default-command "ssh remotehost"

এই কী বাইন্ডিংটি Ctrl-rএকটি নতুন সেশন তৈরি করে যেখানে প্রতিটি নতুন খোলা উইন্ডো প্রথমে ssh remotehostআপনার পক্ষ থেকে চালিত হয়।

আপনি নীচের সেটিংসের সাথে সেশন তৈরির সময় সংযোগের জন্য হোস্টগুলি চয়ন করতে পারেন:

bind-key C-r command-prompt "new-session -s %1 ssh %1 \; set-option default-command \"ssh %1\""

এটি আপনাকে sshপ্রতিটি অধিবেশন তৈরির সময়ে (প্রতিটি উইন্ডো তৈরির সময় নয়) হোস্টকে জিজ্ঞাসা করে এবং সেই হোস্টকে উত্সর্গীকৃত অধিবেশন শুরু করে।

sshআপনি যদি আপনার এসএসএইচ কনফিগারেশনে এসএসএইচ মাল্টিপ্লেক্সিং সক্ষম করে থাকেন তবে এটি কার্যকর করতে অল্প সময় লাগে । .ssh/configউদাহরণস্বরূপ করুন:

Host remotehost
    ControlMaster auto
    ControlPath ~/.ssh/mux-%r@%h:%p
    ControlPersist 10

মনে রাখবেন যে এই tmux সেটিংটি দূরবর্তী হোস্টগুলিতে tmux সেশন তৈরি করে না। যদি ssh সংযোগটি হারিয়ে যায়, প্রভাবিত tmux উইন্ডোজ কখনই ফিরে না।


1

আপনার স্থানীয় মেশিনে tmux দ্বারা ব্যবহৃত ইউনিক্স ডোমেন সকেটটি সুড়ঙ্গ করতে আপনি সকেটের মতো একটি সরঞ্জাম ব্যবহার করতে পারেন। তবে আপনি সত্যিই কেবল অন্য একটি (সোকাটের) জন্য একটি টানেল (এসএসএস) অদলবদল করছেন সুতরাং এটি আরও ভাল নয় এবং সুরক্ষিতও নয়।


হয়তো টানেলিং socatমাধ্যমে ssh? 🙂
সর্বময়

এই মুহুর্তে tmateদূরবর্তী tmux হ্যান্ডলিংয়ের জন্য সেরা হাতিয়ার হতে পারে

0

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

আপনি সেখানে কিছু বলতে পারেন:

"আরে, তবে প্রতিটি প্রত্যন্ত সার্ভারের জন্য একাধিক উইন্ডো থাকার কোনও উপায় নেই!"

এবং এটি সত্য, এসএসএস নিষেধাজ্ঞার কারণে। তবে, আপনি প্রতিটি বা আপনার দূরবর্তী সার্ভারে tmux সেশন শুরু করতে পারেন। দ্রষ্টব্য: সেক্ষেত্রে Ctrl+bসংঘর্ষ রোধ করতে আপনাকে স্থানীয় মেশিনে ডিফল্টটিকে পুনরায় ফিরিয়ে আনতে হবে।

এছাড়াও আমি আপনাকে ব্যবহার করার জন্য tmuxinatorপুনঃসংশোধন করছি, যদি আপনি কমপক্ষে প্রতিদিন আপনার টিএমএক্স সেশনটি পুনঃনির্মাণ করেন তবে এটি খুব সহায়ক সরঞ্জাম।

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