每5分钟自动运行一个命令


10

我对使用Linux特别是命令行非常陌生。我已成功成功启动并运行了Plex Media Server,但我需要每5分钟运行以下命令以与我的Amazon Drive同步。

acd_cli同步

我尝试了各种不同的方法,例如bash脚本,但无法使其正常工作。我只需要上面的命令每5分钟运行一次,就好像有一种我不知道的简单方法。

Answers:


7

简单方法

您可以设置一个bash脚本,该脚本将永远循环执行该命令,然后休眠5分钟。

打开终端并执行以下命令:

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 '16

要使其在启动时起作用,您需要进行cronjob。请参阅下面的答案。
Michael Sandman



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分钟,要运行此命令,您需要通过在--assume-yes上运行apt install来在Install上安装,不确定是否可以在虽然循环

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

此命令说,虽然$ i仍低于20,但执行您列出的Amazon Cloud Drive命令行界面,然后我仍然是我在每次命令出现时加一个,永远是每5分钟

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

这表示对于输入序列20,执行Amazon Cloud Drive同步,每5分钟20次

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.