5分ごとに自動的にコマンドを実行する


10

私はLinuxを使用するのが初めてで、特にコマンドラインを使用します。Plex Media Serverを正常に起動して実行できましたが、Amazonドライブと同期するには、5分ごとに次のコマンドを実行する必要があります。

acd_cli同期

私はbashスクリプトなどのさまざまな方法を試しましたが、機能しません。上記のコマンドを5分ごとに実行する必要があるだけで、簡単な方法がわからないような気がします。

回答:


7

簡単な方法

永久にループしてそのコマンドを実行し、5分間スリープするbashスクリプトを設定できます。

端末を開き、次のコマンドを実行します。

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 2016年

起動時に機能させるには、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未満であることを示しているため、0に達するまで1をマイナスします。したがって、20回実行されます。5分ごと

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

これはtrueであるにもかかわらず、5分ごとに与えられたコマンドを実行します。今から30分間、このコマンドを実行するには、apt install at --assume-yesを実行してでインストールする必要があります。でもループ

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

このコマンドによると、$ iは20未満のままですが、リストしたAmazon Cloud Driveコマンドラインインターフェイスを実行します。それでも、コマンドが発生するたびにiが1になり、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.