2012-07-06 39 views
5

EDIT (vì nó có vẻ quan trọng, điều này đi trên đầu, xem bên dưới để biết chi tiết): Tôi cần tập lệnh để thực thi lệnh, chứ không chỉ hiển thị những gì đã được ghi lại! tiện ích kịch bản không làm điều này theo như tôi biết. Vì vậy, một cái gì đó như tự động phím nóng, chỉ cho bash và linux, với thời gian thông tin ghi lại.phiên bash phát lại với thời gian trễ chính xác

Câu hỏi đặt ra là:

Tôi muốn ghi lại và phát lại một phiên bash, với thời gian trễ chính xác giữa phím bấm và vân vân.

Ví dụ, nếu tôi chạy một chương trình gọi là xxx và sau đó phá vỡ nó bằng cách bấm Ctrl + C sau 11.4s và sau đó chạy một chương trình gọi là yyy 3.4s sau khi tôi đã thoát xxx, tôi muốn phát lại làm như vậy (phá vỡ xxx bằng Ctrl + C sau 11,4 giây, đợi 3,4 giây rồi chạy yyy).

Tôi không cần ghi lại chuyển động của chuột, vì tất cả những gì tôi quan tâm đến việc ghi hình diễn ra trong một phiên bash duy nhất.

tôi đã nhìn vào các tiện ích như

  • kịch bản (Nó ghi lệnh phiên bash, nhưng không có thông tin thời gian trễ.)
  • xmacro (Nó ghi lại tất cả các phím bấm nhưng lại không có thông tin thời gian.)
  • một người đang tìm kiếm thứ gì đó tương tự cũng có thể muốn xem this lên (Tôi bao gồm liên kết này vì giá trị có thể cho người dùng khác; Cá nhân tôi không tìm thấy bất kỳ giải pháp nào được đề cập hữu ích cho những gì tôi muốn đạt được.)
+1

Tôi nhận thấy phiên bản Linux của 'script' có tùy chọn' -t' để ghi lại thời gian. (Phiên bản BSD dường như không có điều này, ít nhất là trên máy tính của tôi.) Với thời gian, bạn có thể chạy [scriptreplay] (http://linux.die.net/man/1/scriptreplay). – chrisaycock

+0

Để làm rõ, bạn có muốn thời gian trễ giữa các lần nhấn phím hoặc thời gian trễ giữa các lệnh không? –

Trả lời

1

Làm thế nào để viết một bash wrapper bằng ngôn ngữ bạn chọn có thể đăng nhập thông tin bạn cần trong khi cung cấp truy cập môi trường bash bình thường và cài đặt hệ thống trỏ tới trình bao bọc của bạn thay vì bash gốc? IO sẽ được nối giữa dịch vụ khách hàng/người dùng và bash thực trong khi trình bao bọc của bạn nằm giữa việc ghi nhật ký thông tin bạn yêu cầu. Phần phát lại là tầm thường một khi thông tin đã được ghi lại. Tôi có thể cung cấp các ví dụ theo yêu cầu nếu bạn quan tâm đến cách tiếp cận này.

+0

Bạn có thể cung cấp các ví dụ như vậy không? Tôi có thể viết bằng Python, C++, c, bash, vì vậy một cái gì đó quen thuộc với tôi sẽ rất tuyệt. – matjaz

+0

Chắc chắn.Tôi sẽ ném một cái gì đó lại với nhau và đăng lại ở đây với một liên kết đến nguồn. PM tôi nếu bạn không nhìn thấy một bản cập nhật ở đây trong một khoảng thời gian hợp lý. –

2

script -t là câu trả lời chuẩn.

Tôi cũng viết lại kịch bản trong Python, mà bạn có thể tìm thấy ở đây: http://stromberg.dnsalias.org/~strombrg/pypty/

Cả -t hỗ trợ. Lý do chính tôi đã viết pypty là tôi muốn để có thể nhận được một tập tin mỗi ngày để đăng nhập các phiên ssh dài, vì lợi ích của tài liệu tham khảo trong tương lai.

Tarball pypty bao gồm tập lệnh phát lại tập lệnh (lưu ý sự khác biệt nhỏ về tên từ kịch bản lệnh) có thể chuyển tiếp và quay lại trong tệp nhật ký tty, sử dụng gtk hoặc curses. Phương tiện của nó đi ngược lại là một chút của một hack (vì vt100 không phải là đơn giản), nhưng tôi đã tìm thấy nó khá hữu ích trong một số dịp.

+0

Cảm ơn bạn! Như tôi cảm thấy tôi đã tìm kiếm thông qua một nửa của internet trước khi tôi đăng này, tôi đoán tôi nên nghĩ lại chiến lược tìm kiếm của tôi (DFS không phải là câu trả lời https://xkcd.com/761) Và cũng cảm ơn bạn đã cho python tài liệu tham khảo. Tôi đã nghĩ về việc cố gắng viết loại chương trình đó nếu tôi không thể tìm thấy những gì tôi đang tìm kiếm. – matjaz

+0

Sory, tôi không nhận thấy rằng tập lệnh không thực hiện các lệnh. – matjaz

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