Tự động chạy lệnh cứ sau 5 phút


10

Tôi rất mới sử dụng Linux và đặc biệt là với dòng lệnh. Tôi đã quản lý để khởi động Plex Media Server thành công nhưng tôi cần chạy lệnh sau mỗi 5 phút để đồng bộ hóa với Amazon Drive của mình.

đồng bộ hóa acd_cli

Tôi đã thử nhiều phương pháp khác nhau như tập lệnh bash và không thể làm cho nó hoạt động được. Tôi chỉ cần lệnh trên để chạy cứ sau 5 phút và cảm giác như có một cách dễ dàng mà tôi không biết.

Câu trả lời:


7

Phương pháp dễ dàng

Bạn có thể thiết lập một tập lệnh bash lặp đi lặp lại thực thi lệnh đó sau đó ngủ trong 5 phút.

Mở một thiết bị đầu cuối và thực hiện lệnh này:

sudo nano /usr/local/bin/amazon-sync

Sau đó, gõ như sau:

#!/bin/sh  
while true  
do  
  acd_cli sync  
  sleep 300  
done

Nhấn ctrl+ ođể lưu

Nhấn ctrl+ xđể thoát

Thực hiện lệnh này:

sudo chmod +x /usr/local/bin/amazon-sync  

Khi bạn khởi động máy tính, nhấn ctrl+ alt+ tvà gõ amazon-syncrồi thu nhỏ cửa sổ terminal. Lệnh sẽ chạy một lần cứ sau 5 phút (300 giây).


Có một cách để làm cho nó chạy khi khởi động nhưng lần trước tôi đã cố gắng làm điều đó tôi phải tiến hành khôi phục hệ thống để hoàn tác những gì tôi đã làm, nhưng tôi biết điều đó là có thể nếu bạn làm đúng.
cheesits456

Để làm cho nó hoạt động khi khởi động, bạn cần một cronjob. Xem câu trả lời của tôi dưới đây.
Michael Sandman

13

Bạn có thể dùng

crontab -e

để tạo một lịch trình cron người dùng.

Dòng bạn đặc biệt cần là

*/5 * * * * /home/YOU/backup.sh

Trong backup.shbất kỳ lệnh nào bạn muốn chạy, hãy đảm bảo tập lệnh có thể thực thi được, tức làchmod +x backup.sh

Có một cái nhìn

http://www.unixgeek.org/security/newbie/unix/cron-1.html


4

Cũng có watchlệnh, nếu bạn cần hiển thị đầu ra trên màn hình và tự động xóa.

watch -n 300 acd_cli sync

1

Khi bạn nói 5 phút, bạn có nghĩa là 5 phút hay bạn sẽ quên lệnh trong 5 phút và để nó chạy vô thời hạn

Có rất nhiều lựa chọn để lựa chọn, nhưng tôi sẽ chỉ cho bạn 4 cách thông minh để thực hiện điều này.


for (( i=0; i<=20; i++)); do 'acd_cli sync' $i ;sleep 300; done

Điều này nói rằng tôi là 0, sau đó 0 nhỏ hơn 20, vì vậy nó sẽ trừ đi 1 cho đến khi đạt 0. Vì vậy, nó sẽ chạy 20 lần. Cứ sau 5 phút

while true; do 'acd_cli sync'; sleep 300; done | at now +30 min

Điều này nói đúng, hãy thực hiện lệnh được đưa ra cứ sau 5 phút, Bắt đầu từ bây giờ trong 30 phút, Để chạy lệnh này, bạn sẽ cần Cài đặt bằng cách chạy apt install tại --assume-yes, Không chắc chắn rằng nó sẽ hoạt động trên một vòng lặp mặc dù

while true [ $i -lt 20 ]; do 'acd_cli sync' & i=$[$i+1];sleep 300; done

Lệnh này cho biết, Mặc dù $ i vẫn thấp hơn 20 so với Giao diện dòng lệnh Amazon Cloud Drive mà bạn đã liệt kê, nhưng tôi vẫn là tôi cộng với một lần trong mỗi lần xuất hiện của lệnh, cứ sau 5 phút

for i in $(seq 20); do 'acd_cli sync' $i; sleep 300; done

Điều này cho biết Chuỗi đầu vào 20 thực hiện đồng bộ hóa Amazon Cloud Drive, cứ sau 5 phút 20 lần

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.