আমি যে সার্ভারে কাজ করছি তা শনাক্ত করুন


9

টার্মিনাল থেকে ssh ব্যবহার করার সময় আপনি কোন সার্ভারে আছেন তা কীভাবে চিহ্নিত করবেন?

আমাকে প্রতিদিন 30 টি সার্ভারে প্রবেশ করতে হবে এবং ক্রমাগত তাদের মধ্যে স্যুইচ করতে হবে।
বর্তমানে আমি ট্যাবটির নাম সম্পাদনা করছি এবং আইপি আইড্রেসটি লিখছি একে অপর থেকে অন্য লাফাতে।

এটি করার কোনও স্বয়ংক্রিয় পদ্ধতি আছে (সার্ভারের আইপি ঠিকানাটিকে ট্যাব নাম হিসাবে নির্ধারণ করে)? অন্য সার্ভারে কোনও ফাইল সম্পাদনা জড়িত না এমন অন্য কোনও বিকল্প?


1
আপনার সার্ভারটি সনাক্ত করতে আপনার কী দরকার? সার্ভারের নাম দেখতে আমি কেবল "হোস্টনাম" টাইপ করি। যথেষ্ট হয়েছে আমাকে জানতে কারণ আমরা একটি ভাল নামকরণ কনভেনশন ব্যবহার করার জন্য ব্যবহৃত
ব্যক্তিগত

বর্তমানে আমি user@hostnameসংযুক্ত প্রথম হোস্টে রয়েছি। আমি আইপি ঠিকানা দেখতে চাই। এছাড়াও, যদি আমি থেকে লাফ server1করতে server2, ট্যাব নাম পরিবর্তন করে না।
আরএসজি

হ্যাঁ এটি আপনার নাম, তবে আমি সার্ভারনেম বলতে চাইছি। সেই মেশিনটির একটি হোস্ট-নেম অবশ্যই আছে। আপনার জন্য যথেষ্ট তথ্য না?
ব্যক্তিগত

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

1
যদি আপনি ক্রমাগত 30 সার্ভারের মধ্যে স্যুইচ করে থাকেন তবে আপনাকে স্ক্রিপ্টিং এবং পরিচালনার জন্য পুতুলের মতো সরঞ্জামগুলি দেখতে হবে। এছাড়াও যদি আইপি হোস্টনামের চেয়ে বেশি স্বীকৃত হয় তবে এগুলি ভাল হোস্টনামের মতো শোনাবে না!
জেমসআরয়ান

উত্তর:


11

আমি সাধারণত হোস্টনাম মাধ্যমে সেট ব্যবহার $PS1। তবে, আপনি যদি সমস্যাটি গ্রহণ করতে চান screenতবে আপনি GNU ব্যবহার শুরু করতে পারেন এবং তারপরে আপনি কোনও ফাংশন সংজ্ঞায়িত করতে পারেন:

function ssh-title () {
    host="${@: -1}"  # You could customize it to make it identify the hostname better
    IP=$(host "$host" | awk '/has address/ { print $4 }')
    echo -ne '\033]0;'"$host"' - '"$IP"'\007'
    screen ssh "$@"
}

ব্যাখ্যা:

  1. এমনকি যদি আপনি নিজের স্থানীয় শেল থেকে কোনও শিরোনাম সেট করেন তবে এটি দূরবর্তী শেল সেটিংস দ্বারা ওভাররাইট হয়ে যেতে পারে। screenরিমোট শেলটি সরাসরি এটি করতে দেয় না এবং এটির অনুমতি দেওয়ার জন্য আপনাকে এটিকে কাস্টমাইজ করতে হবে, যাতে আপনার স্থানীয়ভাবে একটি শিরোনাম সেট করা এবং এটির সাথে লেগে থাকা সহজ হয়।
  2. হোস্টনাম হিসাবে সর্বশেষ পরামিতি বিবেচনা করার সময় হোস্টনাম থেকে আইপি সন্ধান করুন এবং এটি শিরোনাম হিসাবে সেট করুন। আমি সঠিক স্ট্রিং পাওয়ার আগে আমাকে কিছুটা ট্রায়াল এবং ত্রুটি করতে হয়েছিল echo। আপনারও এটি করতে হতে পারে।
  3. অবশেষে, কমান্ডটি screenদিয়ে একটি সেশন শুরু করতে ব্যবহার করুন ssh। কমান্ডটি প্রস্থান করলে সেশনটি শেষ হয়।

আপনি এটি বিভিন্ন উপায়ে কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ, আপনি কোনও ফাইলে হোস্টনাম এবং আইপি সংরক্ষণ করতে পারেন এবং এটি থেকে পড়তে পারেন (এর মতো কিন্ডা ssh_config) (এবং সম্ভবত শিরোনামের জন্য অন্যান্য জিনিস যেমন ব্যবহারকারীর নাম সংরক্ষণ করতে পারেন)।

এখন ssh-title some.hostসংযোগ করতে ব্যবহার করুন। আমি মনে করি এটি কোনও উপায় যা আপনি কোনও সার্ভার সাইড সম্পাদনা না করেই এটি করতে পারেন।


5

সার্ভার শনাক্ত করার কয়েকটি উপায়:

  • এসএসএইচ ফিঙ্গারপ্রিন্ট - নিরাপদ তবে যখনই আপনি পুনরায় চালনা করবেন।
  • শেল প্রম্পট ( PS1) এবং টার্মিনাল শিরোনাম - অনিরাপদ (যে কেউ এটির সদৃশ করতে পারে) তবে সহজ এবং বাস্তব।
  • ip address - একটি এসএসএইচ ফিঙ্গারপ্রিন্ট সহ সুরক্ষিত এবং আরও সহজে পঠনযোগ্য।
  • hostname - নিরাপত্তাহীন তবে খুব পঠনযোগ্য।

ধন্যবাদ। এবং কীভাবে আপনি স্বয়ংক্রিয়ভাবে এটিকে আপনার টার্মিনাল ট্যাব শিরোনাম হিসাবে যুক্ত করবেন?
আরএসজি

2

অন্য বিকল্পটি হ'ল লিকুইডপ্রম্পট --- উভয়ের জন্যই কাজ করে bashএবং zshসহজেই টার্মিনাল শিরোনাম সেট করতে এবং এমনকি প্রম্পটে হোস্টনামটি বিভিন্ন রঙে রঙিন করতে কনফিগার করা যায়:

এখানে চিত্র বর্ণনা লিখুন


2

এই সমাধানটি একটু হ্যাকিশ, তবে আমি মনে করি এটি আপনি যা খুঁজছেন তা করবে will এটি কাজ করার জন্য আপনার প্রয়োজন হবে xdotoolএবং wmctrlইনস্টল করা হবে ।

প্রথমে আপনাকে নিজের ~/.bashrcফাইলটি সম্পাদনা করতে হবে কারণ ডিফল্টরূপে টার্মিনালটি প্রতিটি লাইনের পরে তার শিরোনামটি পুনরায় সেট করে, কমান্ড লাইন শিরোনাম উপস্থাপন করে।

ঠিক পরে: xterm*|rxvt*)

প্রতিস্থাপন করুন: PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

সঙ্গে: PS1="${debian_chroot:+($debian_chroot)}\u@\h \w\a$ "

এরপরে আমরা একটি কাস্টম sshস্ক্রিপ্ট তৈরি করতে যাচ্ছি যা আপনি যা খুশি বলছেন তবে এই উত্তরের জন্য আমি আমার কল করব tab-ssh। একটি পাঠ্য সম্পাদক খুলুন এবং নিম্নলিখিতগুলি সংরক্ষণ করুন tab-ssh:

#!/usr/bin/env bash

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID

sleep 1
title=$(echo "$*" | sed s/.*@//g)
xdotool type --delay 1 --clearmodifiers 'echo -en "\033]0;"'"${title}"'"\a"'
xdotool key Return

sleep 1
xdotool type --delay 1 --clearmodifiers "ssh $*"
xdotool key Return

তারপরে এটিকে সম্পাদনযোগ্য করে তুলুন:

chmod +x tab-ssh

এখন, ধরে নিচ্ছেন যে আপনি ব্যবহার করছেন bashএবং gnome-terminal, স্ক্রিপ্টটি চালানো উচিত একটি নতুন ট্যাব খুলবে, নাম পরিবর্তন করবে এবং sshসেশনটি শুরু করবে । অসাধারণ জন্য:

tab-ssh username@0.0.0.0

একটি নতুন ট্যাব খুলবে, এটির পুনর্নবীকরণ করুন 0.0.0.0(অর্থাত্ "@" চিহ্ন অনুসরণ করে সমস্ত কিছু), তারপরে সম্পাদন করুন username@0.0.0.0

নিম্নলিখিত ব্যবহার করে তৈরি করা হয়েছে:

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