2012-02-15 44 views
30

Tôi muốn viết một số trình tải xuống hình ảnh và gán nó trên bash. Tôi cần những gì tôi có và những gì:Chạy lệnh mỗi giây

tôi có:

  1. lệnh, trong đó hoạt động tốt (giống như wget http://mywebcam.com/image.jpg -O /var/cam/Image.jpg)
  2. quyền root

  3. nhanh dòng Internet giữa máy chủ của tôi và tôi webcam

Điều tôi cần:

Tải xuống hình ảnh từ máy ảnh mỗi giây * (ngủ 1?) * Và viết lại vị trí (lệnh của tôi làm tốt) Chạy tập lệnh này cùng một lúc và đừng lo lắng về việc khởi động lại (Tôi nghĩ rằng tôi cần tạo tập tin với lệnh bash và chạy nó một lần + thiết lập crontab làm việc "trên khởi động lại" để tập tin này, phải không?)

Có thể có ai biết tôi nên làm gì?

+0

http://unix.stackexchange.com/questions/10646/repeat-a-unix-command-every-x-seconds-forever –

+1

Xem [chức năng lặp lại bash] của tôi (http://unix.stackexchange.com/a/111504/27653) với chi tiết và kiểm tra thời lượng tốt. –

Trả lời

68

Nếu bạn muốn chạy một lệnh tại một khoảng thời gian thứ hai (thứ hai từ khi kết thúc một lệnh và bắt đầu tiếp theo, đó là không giống như chạy mỗi giây), chỉ cần làm:

 
while sleep 1; do cmd; done 

Nếu bạn muốn bắt đầu khởi động lại, phương pháp này sẽ phụ thuộc vào hệ thống của bạn.

+0

Tôi có CentOS trên máy chủ của mình. Đây có phải là cách đúng để thêm nó vào crontab không? –

+0

Tôi không quen thuộc với CentOS, nhưng cron không phải là con đường để đi. Thay vào đó, hãy thử thêm một dòng vào /etc/rc.local –

+0

Tôi đã sử dụng điều này để sửa chữa lỗi hệ thống tập tin mà tôi có với VirtualBox Linux VM sử dụng Windows của tôi D: \ www \ vì nó là thư mục gốc Apache. –

50

Lệnh watch sẽ thực hiện việc này cho bạn ngay lập tức. Nó cũng hiển thị kết quả theo một cách tốt đẹp.

$ watch -n 1 date 

thay date cho lệnh của bạn. Tùy chọn -n chỉ định khoảng thời gian tính bằng giây.

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