2013-06-10 33 views
6

Để cung cấp cho nền tảng về môi trường của tôi:Execute lệnh trên máy tính từ xa thông qua PHP

Tôi có 3 máy A, B & C

A = Webserver, chạy một trang web php mà về cơ bản đóng vai trò như một giao diện cho B & C

B = máy Linux Ubuntu, tôi có quyền truy cập root, SSH và tất cả sự tốt lành cần thiết để làm việc trên máy tính thông qua một SSH client (tôi có một .ppk tin tập tin quan trọng cho máy chủ này)

C = MyS ql Máy chủ cơ sở dữ liệu chạy trên Linux

Tôi có thể thực hiện thành công các truy vấn từ A (php) trên C (Mysql) và trả về kết quả. Nhưng bây giờ tôi đang cố thực hiện các lệnh linux trên B từ A.

Ví dụ:

Tôi có tập lệnh chạy trên B và muốn thực hiện lệnh từ A (php) để hiển thị trạng thái của tập lệnh.

Trong dòng lệnh để làm điều này là dễ dàng - Tình trạng ./SomeScript

Nhưng tôi muốn hiển thị trạng thái của kịch bản này trong im trang web lưu trữ trên máy chủ A.

Thậm chí chỉ cần kiểm tra thời gian hoạt động của Máy chủ B trên Máy chủ A.

Điều này có khả thi hay không. Tôi đã googled mãi mãi như nó có vẻ nhưng im không nhận được bất cứ nơi nào, Im không quá giai đoạn nếu kết nối được an toàn hay không vì đây là một mạng kín mà không có bên ngoài truy cập vào mạng này.

Mọi lời khuyên sẽ được đánh giá cao.

Cảm ơn

+0

Tại sao không đặt tập lệnh trên 'B' cung cấp thông tin cụ thể như thời gian hoạt động và có thể cho phép chạy các chương trình cụ thể? Bạn sẽ muốn có kịch bản kiểm tra IP thực sự là từ máy chủ 'A' mặc dù. –

+0

Cảm ơn, thấy rằng tôi có thể làm, vấn đề im có là để hiển thị các kết quả từ một kịch bản cụ thể trên B trên một trang php trên A – Stroes

+0

Các kết quả có khả năng bán phá giá như một số loại văn bản hoặc tập tin html. Sau khi tập tin đầu ra được tạo ra trên B, hãy gõ nó vào A. – kainaw

Trả lời

9

Run SSH lệnh thông qua PHP trên máy chủ A đến máy chủ B.

Sau đây là cách để chạy các lệnh ssh với dòng lệnh trong linux: http://www.youtube.com/watch?NR=1&feature=fvwp&v=YLqqdQZHzsU

Để chạy lệnh trên linux với PHP sử dụng lệnh exec().

Tôi hy vọng điều này sẽ giúp bạn bắt đầu tìm kiếm đúng hướng.

Nhìn vào hai bài viết này để tự động mật khẩu nhắc

Dưới đây là một ví dụ nhanh với không làm việc mã để giúp bạn suy nghĩ:

<?php 

    $server = "serverB.example.org"; 
    //ip address will work too i.e. 192.168.254.254 just make sure this is your public ip address not private as is the example 

    //specify your username 
    $username = "root"; 

    //select port to use for SSH 
    $port = "22"; 

    //command that will be run on server B 
    $command = "uptime"; 

    //form full command with ssh and command, you will need to use links above for auto authentication help 
    $cmd_string = "ssh -p ".$port." ".$username."@".$server." ".$command; 

    //this will run the above command on server A (localhost of the php file) 
    exec($cmd_string, $output); 

    //return the output to the browser 
    //This will output the uptime for server B on page on server A 
    echo '<pre>'; 
    print_r($output); 
    echo '</pre>'; 
?> 

Luồng đề xuất là chạy lệnh trên máy chủ A đến SSH tới máy chủ B

+0

cảm ơn cho liên kết, tuy nhiên tôi muốn gửi lệnh ssh trực tiếp từ php đến một máy linux từ xa? – Stroes

+0

@Stroes vui lòng xem câu trả lời đã chỉnh sửa bằng ví dụ để giúp bạn suy nghĩ đúng hướng. Điều này sẽ chạy các lệnh ssh trực tiếp từ php đến một máy từ xa và trả về phản hồi. – amaster

+0

Cảm ơn câu trả lời, điều này có ý nghĩa hợp lý hơn !! – Stroes

Các vấn đề liên quan