เรียกใช้คำสั่งอัตโนมัติทุก 5 นาที


10

ฉันยังใหม่กับการใช้ Linux และโดยเฉพาะอย่างยิ่งกับบรรทัดคำสั่ง ฉันจัดการเพื่อให้ Plex Media Server ทำงานและทำงานได้สำเร็จ แต่ฉันต้องเรียกใช้คำสั่งต่อไปนี้ทุก ๆ 5 นาทีเพื่อซิงค์กับ Amazon Drive ของฉัน

การซิงค์ acd_cli

ฉันได้ลองวิธีการต่าง ๆ เช่นสคริปต์ทุบตีและไม่สามารถใช้งานได้ ฉันต้องการคำสั่งด้านบนเพื่อให้ทำงานทุก ๆ 5 นาทีและรู้สึกว่ามีวิธีที่ง่ายซึ่งฉันไม่รู้

คำตอบ:


7

วิธีการง่าย ๆ

คุณสามารถตั้งค่าสคริปต์ทุบตีที่วนซ้ำการดำเนินการคำสั่งนั้นจากนั้นหลับเป็นเวลา 5 นาที

เปิด terminal และดำเนินการคำสั่งนี้:

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

จากนั้นพิมพ์ดังต่อไปนี้:

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

กดctrl+ oเพื่อบันทึก

กดctrl+ xเพื่อออก

ดำเนินการคำสั่งนี้:

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

เมื่อคุณเปิดเครื่องคอมพิวเตอร์กดctrl+ alt+ tและพิมพ์amazon-syncจากนั้นย่อขนาดหน้าต่างเทอร์มินัล คำสั่งจะทำงานทุกๆ 5 นาที (300 วินาที)


มีวิธีที่จะทำให้มันทำงานเมื่อเริ่มต้น แต่ครั้งสุดท้ายที่ฉันพยายามที่จะทำฉันต้องเข้าไปในการกู้คืนระบบเพื่อยกเลิกสิ่งที่ฉันทำ แต่ฉันรู้ว่ามันเป็นไปได้ถ้าคุณทำถูกต้อง
cheesits456

เพื่อให้มันทำงานเมื่อเริ่มต้นคุณต้อง cronjob ดูคำตอบของฉันด้านล่าง
Michael Sandman

14

คุณสามารถใช้ได้

crontab -e

เพื่อสร้างกำหนดการ cron ผู้ใช้

บรรทัดที่คุณต้องการโดยเฉพาะคือ

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

ในการbackup.shเพิ่มคำสั่งใด ๆ ที่คุณต้องการเรียกใช้ตรวจสอบให้แน่ใจว่าสคริปต์นั้นทำงานได้เช่นchmod +x backup.sh

มองไปที่

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


4

นอกจากนี้ยังมีwatchคำสั่งถ้าคุณต้องการแสดงผลบนหน้าจอและล้างโดยอัตโนมัติ

watch -n 300 acd_cli sync

1

เมื่อคุณพูดว่า 5 นาทีคุณหมายถึง 5 นาทีหรือคุณจะลืมคำสั่งใน 5 นาทีและปล่อยให้มันทำงานไปเรื่อย ๆ

มีตัวเลือกมากมายให้เลือก แต่ฉันจะแสดงให้คุณเห็น 4 วิธีที่ฉลาดในการใช้สิ่งนี้


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

นี่บอกว่า i เป็น 0, จากนั้น 0 น้อยกว่า 20, มันจะลบ 1 จนกระทั่งมันถึง 0 ดังนั้นมันจะวิ่ง 20 ครั้ง ทุก 5 นาที

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

สิ่งนี้บอกว่าเป็นจริงให้ทำตามคำสั่งทุก ๆ 5 นาทีเริ่มตั้งแต่ตอนนี้เป็นเวลา 30 นาทีเพื่อเรียกใช้คำสั่งนี้คุณจะต้องติดตั้งที่โดยเรียกใช้ apt ติดตั้งที่ - สมมติว่าใช่ไม่แน่ใจว่าสิ่งนี้จะใช้ได้ ห่วงแม้ว่า

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

คำสั่งนี้บอกว่าในขณะที่ $ i ยังคงต่ำกว่า 20 ทำอินเตอร์เฟสบรรทัดคำสั่งของ Amazon Cloud Drive ที่คุณระบุไว้จากนั้นฉันยังคงเป็น i บวกหนึ่งในทุกคำสั่งที่เกิดขึ้นทุก ๆ 5 นาทีตลอดไป

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

สิ่งนี้บอกว่าสำหรับลำดับการป้อนข้อมูล 20 จะทำการซิงค์กับ Amazon Cloud Drive ทุกๆ 5 นาที 20 ครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.