Cách tốt nhất để chạy các lệnh trên VM mà không cần SSH


0

Tôi muốn chạy các lệnh trên VM và nhận đầu ra mà không cần SSH, vì VM sẽ chạy một số kiểm tra mạng có thể làm giảm giao diện và IP có thể không luôn khả dụng. Điều gì sẽ là cách tốt nhất để đạt được điều này thông qua / dev / pts / X?

Tôi có thể chạy bất kỳ lệnh nào thông qua

echo "some command" > /dev/pts/2   (or /dev/pts/4 with virtio)

và thấy nó trên VM (sử dụng virt-manager) nhưng tôi không biết cách nắm bắt đầu ra, phải đợi bao lâu cho đến khi lệnh thực hiện xong và mã trả về của nó ... Có gợi ý nào không?

Đây là một trích xuất XML của VM của tôi:

<serial type='pty'>
  <source path='/dev/pts/2'/>
  <target type='isa-serial' port='0'>
    <model name='isa-serial'/>
  </target>
  <alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/2'>
  <source path='/dev/pts/2'/>
  <target type='serial' port='0'/>
  <alias name='serial0'/>
</console>
<console type='pty'>
  <source path='/dev/pts/4'/>
  <target type='virtio' port='1'/>
  <alias name='console1'/>
</console>
<channel type='pty'>
  <source path='/dev/pts/3'/>
  <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
  <alias name='channel0'/>
  <address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>

Làm thế nào về một giao diện riêng cho SSH?
Kamil Maciorowski

Đôi khi tôi cần phải khởi động lại và định cấu hình lại toàn bộ mạng và khi tắt, tôi cần tương tác để thực hiện một số cấu hình. Vì vậy, không có lựa chọn nào :)
hosselausso

Bạn có muốn sử dụng /dev/ttythay vì /dev/pts?
Biswapriyo

Có một lợi thế cho việc sử dụng / dev / tty?
hosselausso

Câu trả lời:


0

Phương pháp sau đây có nhiều nhược điểm, có thể không hoạt động chính xác, KHÔNG an toàn :( Lấy cảm hứng từ bài viết này Cách sử dụng Cổng nối tiếp máy chủ từ khách trong VirtualBox .

Yêu cầu:

  • Putty hoặc bất kỳ chương trình nào có thể gửi byte thô trong ổ cắm TCP
  • VirtualBox hoặc bất kỳ trình ảo hóa nào
  • mật khẩu người dùng root

Thủ tục:

  • Cài đặt các bổ sung khách VirtualBox trong Linux VM. Tắt nó.
  • Chuyển đến cài đặt VM đó trong VirtualBox → mở phần "Cổng nối tiếp" → Kiểm tra "Bật cổng nối tiếp" trong Cổng 1 → Số cổng COM1 → Chế độ cổng TCP → Bỏ chọn "Kết nối với hiện tại" → đặt Đường dẫn / Địa chỉ bất kỳ cổng TCP / IP nào chưa được phân bổ số ví dụ 1234.

VirtualBox_Serial_Port_Sinstall

  • Bắt đầu VM đó. Chạy lệnh này sudo cat /dev/ttyS0 | shtrong VM. Lệnh này mở thiết bị nối tiếp trong VM, chuyển đầu ra sang shell để chạy nó.
  • Trong hệ điều hành máy chủ, mở Putty → chọn chế độ RAW trong loại kết nối → nhập localhosttên máy chủ và số cổng trước đó trong cài đặt VM, ví dụ 1234. Hoặc chạy lệnh này putty -raw localhost -P 1234.
  • Bây giờ gõ bất cứ thứ gì trong cửa sổ putty, nó sẽ được thực thi trong shell của VM.

Cổng COM và các thiết bị nối tiếp có thể được thay đổi và được ánh xạ theo hướng dẫn VirtualBox này .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.