කවචයේ සිට සහ මූල වරප්රසාද නොමැතිව, මා ක්රියාත්මක කරන්නේ කුමන Red Hat Enterprise Linux අනුවාදයද යන්න තීරණය කරන්නේ කෙසේද?
ඉතා මැනවින්, මම ප්රධාන හා සුළු නිකුතු අනුවාදය ලබා ගැනීමට කැමතියි, උදාහරණයක් ලෙස RHEL 4.0 හෝ RHEL 5.1, ආදිය.
කවචයේ සිට සහ මූල වරප්රසාද නොමැතිව, මා ක්රියාත්මක කරන්නේ කුමන Red Hat Enterprise Linux අනුවාදයද යන්න තීරණය කරන්නේ කෙසේද?
ඉතා මැනවින්, මම ප්රධාන හා සුළු නිකුතු අනුවාදය ලබා ගැනීමට කැමතියි, උදාහරණයක් ලෙස RHEL 4.0 හෝ RHEL 5.1, ආදිය.
Answers:
ඔබට lsb_release
විවිධ ලිනක්ස් බෙදාහැරීම් වල විධානය භාවිතා කළ හැකිය :
lsb_release -i -r
මෙය ඔබට බෙදාහැරීම සහ අනුවාදය කියනු ඇති අතර පරිපාලක හෝ මෘදුකාංග පැකේජයක් විසින් වෙනස් කරන ලද හෝ වෙනස් නොකළ ලිපිගොනු වෙත ප්රවේශ වීමට වඩා ටිකක් නිවැරදි වේ. බහු ඩිස්ට්රෝ හරහා වැඩ කිරීම මෙන්ම.
RHEL සඳහා, ඔබ භාවිතා කළ යුත්තේ:
cat /etc/redhat-release
lsb_release -i -r
-bash: lsb_release: විධානය හමු නොවීය. කෙසේ වෙතත්, cat /etc/redhat-release
Red Hat Enterprise Linux Server 5.6 (Tikanga)
ඔබට / etc / redhat-release හි අන්තර්ගතය දෙස බැලිය හැකිය, එය මේ වගේ දෙයක් වනු ඇත:
$ cat /etc/redhat-release
CentOS release 5.4 (Final)
සත්ය RHEL පද්ධතියක් සඳහා අන්තර්ගතය වෙනස් වේ. මෙම තාක්ෂණය CentOS, Fedora, සහ වෙනත් සියලුම RedHat ව්යුත්පන්නයන් මත ක්රියා කරයි.
lsb_release
උත්සාහ කළ යුතු පළමු දෙය නම්, නමුත් එය ස්ථාපනය නොකිරීම නිසා ලිපිගොනු බැලීම හොඳ සැලසුමකි.
මම / etc / issue ගොනුව භාවිතා කිරීමට කැමැත්තෙමි.
$ cat /etc/issue
මෘදුකාංග අනුකූලතා අවශ්යතා සපුරාලීම සඳහා / etc / redhat-release වෙනස් කර ඇති බොහෝ අවස්ථා මම දැක ඇත්තෙමි (නිදසුනක් ලෙස ඩෙල් හෝ HP හි කළමනාකරණ නියෝජිතයන්).
/etc/issue
ඩෙබියන් සහ උබුන්ටු වැනි වෙනත් මෙහෙයුම් පද්ධති වලද ක්රියා කරන අතර ලිනක්ස් ප්රමිති පදනමට අනුකූල නොවන ලිනක්ස් ඕඑස් සහ එල්එස්බී * උපයෝගිතා ස්ථාපනය කර නොමැති සැහැල්ලු මෙහෙයුම් පද්ධති සමඟද ක්රියා කරයි.
/etc/issue
අදහස් කරන්නේ agetty මගින් විග්රහ කිරීමට ය , එමඟින් ගැලවීමේ අනුපිළිවෙල නිසි තොරතුරු සමඟ ප්රතිස්ථාපනය කරයි. ඔබ cat
එය පමණක් නම්, ප්රති result ලය යටපත් විය හැකිය. ෆෙඩෝරා හි, කෙනෙකුට ලැබෙනු ඇත Fedora release 20 (Heisenbug) Kernel \r on an \m (\l)
, එය ඔබට යමක් පවසන නමුත් RHEL7 හි එක් අයෙකු ලබා ගනී \S Kernel \r on an \m
.
/etc/issue
ප්රාදේශීය පරිපාලක විසින් ප්රතිස්ථාපනය කළ හැකි බැවින් විශ්වාසදායක තොරතුරු ප්රභවයක් නොවන බව සලකන්න .
ස්ථාපනය කර නොමැති විට වඩාත්ම විශ්වාසදායක ක්රමය වන්නේ:lsb_release
# rpm -q --queryformat '%{VERSION}' redhat-release-server
6Server
# rpm -q --queryformat '%{RELEASE}' redhat-release-server
6.4.0.4.el6
අවම ස්ථාපනයන්හි, lsb_release
අස්ථානගත වී ඇත.
Red Hat ක්ලෝන සමඟද මෙය ක්රියාත්මක කිරීම සඳහා (ණය අදහස් දැක්වීම් වලට යයි):
# rpm -q --queryformat '%{VERSION}' $(rpm -qa '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)')
නැතහොත්, තනි විධානයක් ලෙස (ක්රියාත්මක වන "rpm" දෙකකට වඩා):
# rpm -qa --queryformat '%{VERSION}\n' '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)'
භාවිතය sed
/ cut
හා ඔබට අවශ්ය දේ ලබා ගැනීමට යුනික්ස් මෙවලම් හැසිරවීමේ පෙළ.
rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)'
sl යනු විද්යාත්මක ලිනක්ස් සඳහා ය; වෙනත් RHEL නැවත ගොඩනැඟීම් සඳහා නිවැරදි නම ඔබ දන්නේ නම් පහත අදහස් දක්වන්න. අවවාදයයි - පුළුල් ලෙස පරීක්ෂා කර නැත.
rpm -qa | grep release
ඊටත් වඩා පහසුය
එය සැබවින්ම Red Hat නිකුතුවක් යැයි සිතීම (සෙන්ටෝස් නොවේ):
rpm -q redhat-release
නැතහොත් ධාවනය කරන්න:
uname -r
ප්රතිදානය සිතියම් ගත කරන්න. 2.6.9 කර්නල් RHEL4, 2.6.18 කර්නල් RHEL5 වේ. අවශ්ය නම්, ඔබට සම්පූර්ණ අනුවාදය Red Hat වෙතින් නිශ්චිත යාවත්කාලීන නිකුතුවලට සිතියම් ගත කළ හැකිය (එනම් 2.6.9-89 යනු RHEL5 U4).
rpm -q redhat-release
package redhat-release is not installed
මා වෙනුවෙන් නැවත පැමිණ uname -r
කර්නල් මුදා හැරීම මට කියන්න.
මම කැමතියි hostnamectl
:
$ hostnamectl
Static hostname: xxxxxx.xxx.xxx
Icon name: computer-server
Chassis: server
Machine ID: 3e3038756eaf4c5c954ec3d24f35b13f
Boot ID: 958452e0088b4191a4ea676ebc90403b
Operating System: Red Hat Enterprise Linux Server 7.5 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.5:GA:server
Kernel: Linux 3.10.0-862.3.3.el7.x86_64
Architecture: x86-64
/etc/os-release
ආර්පීඑම් නිකුතුවේ ඇති ගොනුව භාවිතා කිරීමට මම කැමතියි :
# yum whatprovides /etc/os-release
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
* base: dl.za.jsdaav.net
* extras: dl.za.jsdaav.net
* updates: dl.za.jsdaav.net
centos-release-7-4.1708.el7.centos.x86_64 : CentOS Linux release file
Repo : base
Matched from:
Filename : /etc/os-release
centos-release-7-4.1708.el7.centos.x86_64 : CentOS Linux release file
Repo : @anaconda
Matched from:
Filename : /etc/os-release
මෙම ගොනුව ස්ක්රිප්ට් වලින් ලබා ගත හැකිය, වැනි:
$ source /etc/os-release
$ echo $NAME
CentOS Linux
$ echo $VERSION
7 (Core)
ඔබට අනුවාද අංක ලබා ගැනීමට අවශ්ය නම් පහත දැක්වෙන්නේ මට එය ලබා ගත හැකි තරම් කෙටි හා සරල ය.
Rhel 6.7, rhel 7.2, debian 8.3 සහ ubuntu 14.04 හි පරීක්ෂා කර ඇත:
lsb_release -s -r | cut -d '.' -f 1
ප්රායෝගික උදාහරණයක් සඳහා, බෙදාහැරීමේ ප්රධාන හා සුළු අනුවාදය සඳහා පරීක්ෂා කිරීමට අවශ්ය බව පවසන්න සහ ඒ මත පදනම්ව දේවල් කරන්න:
#!/bin/bash
major=$(lsb_release -s -r | cut -d '.' -f 1)
minor=$(lsb_release -s -r | cut -d '.' -f 2)
if (( "$major" >= 7 ))
then
echo "Do stuff, OS major version is $major"
echo "OS minor version is $minor"
else
echo "Do other things"
echo "Your version is $major.$minor"
fi
මේ සඳහා ප්රමාද වී පැමිණීම, නමුත් දුරස්ථ නෝඩ් කිහිපයක RHEL අනුවාදය සොයා ගැනීමට මම විනෝද විය. එබැවින්, ඔබට එකම මුරපදය භාවිතා කරන සේවාදායක කණ්ඩායමක් තිබේ නම් (මම දනිමි, මම දනිමි ...) මෙහි RedHat අනුවාදය පරීක්ෂා කිරීමට ඉක්මන් හා අපිරිසිදු ය:
අපේක්ෂිත පිටපතක් සාදන්න
vim server-version.sh
බහු දුරස්ථ ධාරක වල ප්රධාන RedHat අනුවාදය පරික්ෂා කිරීමට ස්ක්රිප්ට් බලාපොරොත්තු වන්න
#!/usr/bin/expect
log_user 0
spawn ssh -l root [lindex $argv 0]
expect "assword:"
send "sUp3rS3cr3tP4ssW0rd^\r"
expect "# "
log_user 1
send "cat /etc/redhat-release\r"
expect "*#"
log_user 0
send "exit\n"
ඔබගේ සියලුම නෝඩ් සඳහා ස්ක්රිප්ට් ධාවනය කරන්න
[root@home ~]#
for server in server1 server2 server3 server4 server5; do echo -e "$server: \c"; /root/server-version.sh $server; echo; echo; done;
ප්රතිදානය
server1: cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)
[root@server1 ~]#
server2: cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)
[root@server2 ~]#
...