ฉันจะติดตั้ง getent บน Snow Leopard ได้อย่างไร


9

ฉันมีสคริปต์หลายตัวที่ต้องใช้โปรแกรมอรรถประโยชน์getentนี้ นอกจากนี้ผมได้อ่านเคล็ดลับที่มีประโยชน์หลายที่ใช้ getent

getentเป็นยูทิลิตี้ระบบเครือข่ายที่มีอยู่ในระบบปฏิบัติการ Unix, * BSD และ Linux เครื่องมือนี้ใช้กันทั่วไปโดย Sysadmins และผู้ใช้ที่มีอำนาจในการค้นหาข้อมูลเครือข่าย (ที่อยู่ IP ฯลฯ ) ตราบใดที่ชื่อโฮสต์getentเป็นเครื่องมือหนึ่งในไม่กี่เครื่องมือที่ใช้ทั้ง/etc/hostsDNS และ

ตามที่Wikipedia พูดว่า :

getent เป็นคำสั่ง unix ที่ช่วยให้ผู้ใช้รับรายการต่างๆในไฟล์ข้อความที่สำคัญที่เรียกว่าฐานข้อมูล

สิ่งสำคัญที่นี่คือการgetentค้นหาบริการชื่อเดียวกันในลำดับเดียวกันกับแอปพลิเคชั่นส่วนใหญ่บนระบบยูนิกซ์ สิ่งนี้ทำให้มีค่าเมื่อตรวจแก้จุดบกพร่องระบบหรือปัญหาของแอปพลิเคชัน เครื่องมือที่ชอบdigและnslookupดูเฉพาะ DNS เท่านั้นในขณะที่dsclคาดหวังให้คุณสะกดชื่อบริการที่คุณต้องการค้นหา

ฉันต้องการใช้getentสำหรับสอง testcase:

  1. แยก/etc/hostsก่อนที่จะสอบถาม DNS ตัวอย่างเช่นถ้าฉันเพิ่มtesthost.example.orgไป/etc/hostsแล้วgetent hosts testhost.example.orgควรใช้รายการ/etc/hostsก่อนสอบถาม DNS

  2. ค้นหา LDAP โดยใช้ getent

MacPorts getentดูเหมือนจะไม่ให้แพคเกจการให้บริการ

ไม่getentอยู่บนเสือดาวหิมะ?


คือgetentอะไร มันทำอะไร? โดยทั่วไปจะใช้ระบบอะไรใน
Cajunluke

3
ไม่มีการแมป 1: 1 สำหรับgetentบน OS X เนื่องจาก OS X ใช้DirectoryServiceเพื่อแก้ปัญหาสิ่งต่าง ๆ เช่นชื่อโฮสต์ คุณสามารถให้getentตัวอย่างการใช้งานที่เฉพาะเจาะจงได้ไหม? มันจะแสดงให้คุณเห็นวิธีที่สอดคล้องกันเพื่อให้ได้ข้อมูลบน OS X ง่ายขึ้น
Ian C.

@CajunLuke: getentโดยทั่วไปแล้วจะมีอยู่ในระบบ Unix, * BSD และ Linux ฉันอัพเดตคำถามของฉัน
Stefan Lasiewski

แล้วคุณพยายามทำgetentอะไร แก้ไขชื่อโฮสต์/etc/hostsก่อนใช้ DNS หรือไม่
Ian C.

กรณีการใช้งานบ่อยที่สุดของฉันคือการแก้ไขชื่อโฮสต์/etc/hostsก่อน DNS ซึ่งมีประโยชน์สำหรับเว็บเซิร์ฟเวอร์และการทดสอบเครือข่ายอื่น ๆ แต่ฉัน (และ sysadmins อื่น ๆ ) ใช้ getent สำหรับสิ่งอื่นเช่นกันเช่นการแก้ไขปัญหา LDAP
Stefan Lasiewski

คำตอบ:


9

dscacheutilอาจเป็นวิธีที่ดีที่สุดในการทำเช่นนี้ ไม่เลียนแบบกระบวนการค้นหาปกติใช้ดังนั้นคุณจะได้รับผลลัพธ์เช่นเดียวกับการค้นหามาตรฐาน (รวมถึงการแคช / / etc / hosts ระเบียนคอมพิวเตอร์ในบริการไดเรกทอรี DNS, mDNS สำหรับ. local ชื่อ ฯลฯ )

$ dscacheutil -q host -a name www.apple.com
name: e3191.c.akamaiedge.net
alias: www.apple.com www.isg-apple.com.akadns.net www.apple.com.edgekey.net 
ip_address: 69.192.45.15

$ dscacheutil -q host -a name gordons-mbp.local
name: gordons-mbp.local
ipv6_address: fe80:5::e6ce:8fff:fe50:136

name: gordons-mbp.local
ip_address: 192.168.10.249

$ dscacheutil -q host -a ip_address 127.0.0.1
name: localhost
alias: 1.0.0.127.in-addr.arpa 
ip_address: 127.0.0.1

$ dscacheutil -q user -a name gordon
name: gordon
password: ********
uid: 501
gid: 20
dir: /Users/gordon
shell: /bin/bash
gecos: Gordon Davisson


2

มันไม่ใช่วิทยาศาสตร์จรวดในการสกัดแหล่งที่มาจาก OpenSolaris (หรือระบบปฏิบัติการอื่น ๆ ฉันจะลองใช้ BSDs หนึ่งแทนที่จะเป็น Linux) แล้วทำการพอร์ต ฉันได้รับการทำงานเป็นหลักโดยเพียงแค่ปิดการใช้งานสิ่งที่ macOS ไม่ได้เทียบเท่าใด ๆ (netmasks และโครงการ - เฉพาะ Solaris) หรือสามารถเขียนเป็นภาษา Perl ได้อย่างง่ายดาย มีคน จำกัด เวลานานแล้วและฉันก็ทำได้มากกว่านี้ ไม่สนับสนุนอีเธอร์เพราะไม่มีการค้นหามาตรฐานจาก Perl แต่ส่วนที่เหลือดูเหมือนว่าจะใช้ได้

getent.pl

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.