Câu hỏi Script để lấy mac và ghi vào một tập tin


Công việc của tôi cần sao chép một số Thin Clients và họ sử dụng Ubuntu làm nền tảng cho VMware Client, nhưng vấn đề là chúng ta phải chỉnh sửa thủ công dòng trong / etc / vmware / view-required-config bằng MAC của Hardware.

view.sslVerificationMode = "3"
view.defaultUser = "CM-d4_85_64_71_58_44"
view.autoConnectDesktop = "TRUE"
view.autoConnectBroker = "TRUE"
view.kioskLogin = "TRUE"
view.nonInteractive = "TRUE"
view.fullScreen = "TRUE"
view.nomenubar = "TRUE"
view.defaultBroker = "viewcs"

Chúng ta cần tạo một script chạy tự động lúc khởi động (1 lần và xóa nó) và lấy MAC của eth0 và quá khứ như trong tệp cấu hình ở trên.

view.defaultUser = "CM-d4_85_64_71_58_44"

Chúng tôi cần điều này để chúng tôi có thể tiết kiệm rất nhiều thời gian.

---CHỈNH SỬA--- Với những gì đã được trả lời tôi đã làm kịch bản sau đây, vẫn còn chưa đầy đủ nhưng Đang làm việc.

MAC=$(ifconfig eth0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
echo "
view.sslVerificationMode = *3*
view.autoConnectDesktop = *TRUE*
view.autoConnectBroker = *TRUE*
view.kioskLogin = *TRUE*
view.nonInteractive = *TRUE*
view.fullScreen = *TRUE*
view.nomenubar = *TRUE*
view.defaultBroker = *viewcs*
view.defaultUser = *CM-${MAC//:/_}*
" > /etc/vmware/view-mandatory-config;
sed -i 's/*/"/g' /etc/vmware/view-mandatory-config

Là không đầy đủ bởi vì, tôi không biết làm thế nào để in (") trong tập tin vì vậy tôi đã sử dụng * và sau khi tôi sử dụng" sed "để thay đổi * để ("), nó hoạt động như một say mê.

Tôi không biết tại sao nhưng tôi đã không thể làm cho kịch bản này chạy trong khởi động.

Đầu tiên, tôi đặt nó vào /etc/rc.local và nó không chạy. Thứ hai, tôi đã cố gắng đặt nó vào crontab như @reboot /etc/vmware/MAC.sh, và nó không hoạt động.

Cảm ơn bạn đã giúp đỡ.


2
2018-04-29 20:34


gốc


ifconfig eth0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' sẽ nhận được địa chỉ MAC. (Từ stackoverflow.com/questions/245916/…) Tôi không giỏi viết kịch bản shell, vẫn đang học, nhưng có thể ai đó có thể giúp đưa tập tin này vào tệp văn bản - No Time


Các câu trả lời:


Điều này sẽ cung cấp cho bạn chuỗi bạn muốn.

MAC=$(ifconfig eth0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'); echo "CM-${MAC//:/_}";

Thay thế eth0 với bất cứ giao diện nào. Đầu ra:

CM-d4_85_64_71_58_44

Các grep mã đến từ đây:

https://stackoverflow.com/questions/245916/best-way-to-extract-mac-address-from-ifconfig-output


2
2018-04-29 21:41



Khi tôi chạy kịch bản tôi nhận được một lỗi: ./MAC.sh: 2: ./MAC.sh: Bad thay thế, nếu tôi sử dụng một phần sau trực tiếp trên thiết bị đầu cuối tôi có mac trong màn hình của tôi. $ (ifconfig eth0 | grep -o -E '([[: xdigit:]] {1,2}:) {5} [[: xdigit:]] {1,2}') - André M. Faria
Bạn có thể đăng cách bạn đặt nó trong tập lệnh MAC.sh không? - Nattgew
Tôi bắt đầu nó với #! / Bin / sh, nhưng tôi đọc trong một câu hỏi khác mà tôi phải sử dụng #! / Bin / bash, và nó hoạt động, tôi sẽ chỉnh sửa bài viết hàng đầu của mình với nhiều thông tin hơn. - André M. Faria