Executar automaticamente um comando a cada 5 minutos

10

Eu sou muito novo para usar Linux e especialmente com linha de comando. Consegui instalar com êxito um Plex Media Server, mas preciso executar o seguinte comando a cada 5 minutos para sincronizar com meu Amazon Drive.

sincronização acd_cli

Eu tentei vários métodos diferentes, como scripts bash, e não consigo fazê-lo funcionar. Eu só preciso do comando acima para executar a cada 5 minutos e parece que há uma maneira fácil que eu não conheço.

SneakierDAG
fonte

Respostas:

7

Método Fácil

Você pode configurar um script bash que executa um loop para sempre executando esse comando e, em seguida, dorme por 5 minutos.

Abra um terminal e execute este comando:

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

Em seguida, digite o seguinte:

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

Pressione ctrl+ opara salvar

Pressione ctrl+ xpara sair

Execute este comando:

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

Ao iniciar o computador, pressione ctrl+ alt+ te digite amazon-synce minimize a janela do terminal. O comando será executado uma vez a cada 5 minutos (300 segundos).

cheesits456
fonte
Existe uma maneira de executá-lo na inicialização, mas da última vez que tentei, tive que entrar na recuperação do sistema para desfazer o que fiz, mas sei que é possível se você fizer o que é certo.
precisa saber é o seguinte
Para fazê-lo funcionar na inicialização, você precisa de um cronjob. Veja minha resposta abaixo.
Michael Sandman
13

Você pode usar

crontab -e

para criar uma programação cron do usuário.

A linha que você precisa especificamente é

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

Em backup.shadicionar quaisquer comandos que você deseja executar, certifique-se o script é executável, ou seja,chmod +x backup.sh

Dê uma olhada em

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

Michael Sandman
fonte
4

Também há watchcomando, se você precisar mostrar a saída na tela e limpar automaticamente.

watch -n 300 acd_cli sync
Sergiy Kolodyazhnyy
fonte
1

Quando você diz 5 minutos, você quer dizer 5 minutos ou vai esquecer o comando Em 5 minutos e deixá-lo em execução indefinidamente

Existem muitas opções para você escolher, mas mostrarei 4 maneiras inteligentes de implementar isso.


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

Isso diz que i é 0, então 0 é menor que 20, então será menos 1 até chegar a 0. Portanto, será executado 20 vezes. A cada 5 minutos

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

Isso diz que, embora verdadeiro, execute o comando fornecido a cada 5 minutos. A partir de agora, por 30 minutos. Para executar este comando, você precisará instalar em executando apt install em --assume-yes. Não é exatamente certo que isso funcionará. um loop embora

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

Este comando diz que, enquanto $ i permanece abaixo de 20 na interface de linha de comando do Amazon Cloud Drive que você listou, então i ainda é mais um em cada ocorrência do comando, a cada 5 minutos para sempre

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

É o que diz Para a sequência de entrada 20, faça a sincronização do Amazon Cloud Drive, a cada 5 minutos 20 vezes


fonte