Trong hướng dẫn này, các tác vụ sẽ được tự động hóa bằng Expect.


Mong đợi là một ngôn ngữ kịch bản tự động hóa. Nó cho phép bạn mô phỏng từng tổ hợp phím trong một phiên. Bạn nhập các lệnh sẽ được gửi và trả lời để dự đoán (hoặc mong đợi). Khi nhận được phản hồi dự đoán, bạn nhập một lệnh khác. Quá trình này được lặp lại cho đến khi chấm dứt kịch bản.

Kịch bản Expect là toàn bộ cuộc hội thoại hai chiều tự động. Trong tập lệnh Ngoại trừ, hộp thoại từ cả máy tính gửi và nhận được viết theo kịch bản. Việc sử dụng phổ biến các tập lệnh Expects là tự động hóa các phiên SSH giữa máy tính cục bộ và máy chủ từ xa.

Thiết lập mong đợi

Ngoại trừ có sẵn như là một gói phần mềm có thể cài đặt cho hầu hết các bản phân phối Linux. Sử dụng trình quản lý gói để tải xuống và cài đặt Expect cùng với mọi gói và / hoặc phụ thuộc liên quan.

Nếu bạn sử dụng Ubuntu, hãy nhập chuỗi sau vào dấu nhắc dòng lệnh để cài đặt Expect:

$ apt-get cài đặt mong đợi

Nếu bạn sử dụng CentOS, hãy nhập thông tin sau:

# yum cài đặt kỳ vọng

Điều này có thể mất một chút thời gian nhưng một khi nó cài đặt, Expect có thể được chạy từ thiết bị đầu cuối.

Viết một kịch bản SSH trong mong đợi

Bạn sẽ cần phải viết cả hai đầu của hộp thoại TRÒN. Điều này có nghĩa là bạn phải viết các lệnh mà bạn muốn gửi trong phiên và các phản hồi dự đoán từ máy chủ từ xa. Để được chạy, kịch bản phải được thực thi. Để làm cho tập lệnh Expect một chương trình thực thi độc lập phải thực hiện ba bước. Vị trí của Expect phải được bao gồm trong script.

Giả sử rằng vị trí của Mong đợi trên hệ thống của bạn là / usr / bin / mong đợi nhập dòng sau đây là dòng đầu tiên trong tập lệnh Expect của bạn:

#! / usr / bin / mong đợi -f

  • Shebang (#!) Được yêu cầu để chỉ định Mong là chương trình được sử dụng để giải thích tập lệnh.
  • Các Cẩuf chuyển đổi được sử dụng để nói với mong rằng nó sẽ đọc lệnh từ tệp.

Tập lệnh phải được lưu dưới dạng tệp shell (.sh). Trong ví dụ này, chúng tôi sẽ lưu nó dưới dạng expscript.sh.

Làm cho tập lệnh thực thi.

Điều này đòi hỏi phải thay đổi quyền trên tệp tập lệnh, cho phép nó có thể được thực thi.

Nhập thông tin sau vào thiết bị đầu cuối để sửa đổi quyền trên tệp, làm cho nó có thể thực thi được.

$ chmod 755 expscript.sh

Kịch bản

Dòng thứ hai trong tập lệnh của bạn sử dụng sinh sản lệnh, khởi chạy một lệnh bên ngoài. Trong ví dụ này, vì chúng tôi đang xử lý SSH, ssh lệnh được sử dụng để bắt đầu phiên SSH với máy chủ từ xa,remote.server.comGiáo dục.

sinh sản ssh remote.server.com

Khi cố gắng kết nối với máy chủ từ xa thông qua SSH, bạn sẽ được nhắc nhập mật khẩu. Như chúng ta đã nói trước đó, các tập lệnh Expect bao gồm hộp thoại từ cả hai máy, do đó các phản hồi dự đoán cũng phải được bao gồm trong tập lệnh.

Các phản ứng dự đoán phải được ngăn chặn bởi chờ đợi lệnh và chứa trong dấu ngoặc kép:

chờ đợi "mật khẩu: "

Lưu ý: Một số máy chủ sẽ trả lại mật khẩu mật khẩu với số vốn ’Pv. Nếu các tập lệnh mong đợi một điểm chung thì điều này có thể khiến tập lệnh bị lỗi. Như một cách giải quyết, một ký tự đại diện có thể được sử dụng. Dòng này sẽ được chỉnh sửa như sau:

chờ đợi "* ssword: "

Hoặc thậm chí đơn giản hơn:

chờ đợi "*: "

Phương pháp này có thể được sử dụng cho nhiều phản hồi dự đoán từ máy từ xa. Sau đó bạn sẽ phải nhập mật khẩu của bạn. Các lệnh được gửi từ máy tính cục bộ bị loại trừ bởi gửi lệnh và, giống như các câu trả lời dự đoán, phải được đặt trong dấu ngoặc kép. Ngoài ra, các lệnh đã gửi phải bao gồm trả lại cứng (\ r) ở cuối, trong dấu ngoặc kép.

Giả sử mật khẩu của P @ $$, dòng tiếp theo sẽ là.

gửi "P @ $$ w0rd \ r

Tại thời điểm này, bạn sẽ được đáp ứng với lời nhắc của người dùng để được nêu là thông tin dự kiến:

chờ đợi "$ "

Tại thời điểm này, bạn có thể viết ra bất kỳ danh sách các lệnh mà bạn muốn thực hiện, cùng với các phản hồi dự đoán từ máy chủ từ xa. Ở cuối danh sách các lệnh tự động của bạn, hãy đoán trước lời nhắc của người dùng và kích hoạt một lối thoát để đóng phiên.

chờ đợi "$ "
gửi "thoát \ r"

Do đó, toàn bộ tập lệnh phải là:

#! / usr / bin / mong đợi -f
sinh sản ssh remote.server.com
chờ đợi "mật khẩu: "
gửi "P @ $$ w0rd \ r"
chờ đợi "$ "
…… ## Các lệnh tự động khác nhau ##
chờ đợi "$ "
gửi "thoát \ r"

Khi tệp được lưu, hãy nhớ làm theo các hướng dẫn được cung cấp ở trên để sửa đổi các quyền để hiển thị tệp thực thi.

Lưu ý: Nếu bạn gặp sự cố với tập lệnh của mình, hãy thử tự theo dõi và chạy thủ công, lưu ý các phản hồi của máy chủ để đảm bảo rằng các phản hồi dự đoán bạn có trong tập lệnh là chính xác và các lệnh đã gửi không có lỗi.

Cách dễ dàng tạo một tập lệnh mong đợi

Một cách tuyệt vời để xây dựng tập lệnh Expect là sử dụng chương trình ghi shell được gọi là Tự động khai thác. Tự động khai thác hoạt động bằng cách ghi lại một phiên shell. Mỗi phản hồi gõ phím và vỏ được ghi lại và ghi vào tập lệnh Expect, script.Ex.

Do tính chất động của máy tính, không có hai phiên nào có thể hoàn toàn giống nhau vì vậy việc chạy tập lệnh thô được tạo từ một phiên duy nhất có thể không hoạt động như mong đợi khi chạy lại. Do đó, hầu hết các tập lệnh được tạo thông qua Tự động khai thác phải được xem xét, chỉnh sửa và cắt xén để có hiệu quả mong muốn nhất quán.

Nếu bạn sử dụng Ubuntu, hãy chạy phần sau để cài đặt Tự động khai thác:

$ sudo apt-get install kỳ vọng-dev

  • Điều này sẽ tải về tiện ích và tất cả các phụ thuộc cần thiết.

Nếu bạn sử dụng CentOS, hãy chạy phần sau để cài đặt Tự động khai thác:

# yum cài đặt kỳ vọng

Để sử dụng Tự động khai thác, hãy nhập như sau:

$ Tự động khai thác

Khi Tự động khai thác được kích hoạt, thông báo sau sẽ xuất hiện trong thiết bị đầu cuối của bạn:

Tự động khai thác bắt đầu, tập tin là script.Ex

Mỗi tổ hợp phím bạn gõ và mọi phản hồi tiếp theo được hiển thị trên màn hình, sẽ được ghi vào tệp script.Ex và được định dạng trong tập lệnh Expect.

Để dừng Tự động khai thác và dừng ghi vào tệp script.bao, nhấn Ctrl-D.

Đã tạo script.Ex tập tin sẽ rất dài, hoàn chỉnh với tổng số bảng điểm của phiên và bình luận bổ sung. NHƯ đã nêu trước, xem xét và chỉnh sửa tệp được tạo, kiểm tra xem có lỗi nào không. Mặc dù điều này có thể mất một chút thời gian để làm cho đúng nhưng nó vẫn dễ dàng hơn là cố gắng tạo các tập lệnh phức tạp bằng tay.

Bây giờ bạn có một tập lệnh đầy đủ chức năng để chạy liên tục, khi cần, một cách dễ dàng và phương tiện để dễ dàng tạo ra nhiều tập lệnh hơn.

Kiểm tra 3 dịch vụ lưu trữ web tốt nhất

FastComet

Giá khởi điểm:
$ 2,95


độ tin cậy
9,7


Giá cả
9,5


Thân thiện với người dùng
9,7


Ủng hộ
9,7


Đặc trưng
9,6

Đọc đánh giá

Ghé thăm FastComet

Lưu trữ A2

Giá khởi điểm:
$ 3,92


độ tin cậy
9,3


Giá cả
9.0


Thân thiện với người dùng
9,3


Ủng hộ
9,3


Đặc trưng
9,3

Đọc đánh giá

Ghé thăm Hosting A2

ChemiCloud

Giá khởi điểm:
$ 2,76


độ tin cậy
10


Giá cả
9,9


Thân thiện với người dùng
9,9


Ủng hộ
10


Đặc trưng
9,9

Đọc đánh giá

Truy cập ChemiCloud

Bài viết hướng dẫn liên quan

  • Cách thiết lập SSH trên VPS Ubuntu 16.04 hoặc Máy chủ chuyên dụng
    Trung gian
  • Cách sử dụng và quản lý khóa SSH với cPanel
    Trung gian
  • Cách thiết lập SSH cho VPS Ubuntu 18.04 hoặc Máy chủ chuyên dụng của bạn
    Trung gian
  • Cách thiết lập máy chủ Linux VPN từ máy khách Windows
    Trung gian
  • Cách kết nối với máy chủ bằng cách sử dụng SSH trên Linux và Mac
    Trung gian
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me