Existem duas maneiras de usar o cron, criando um arquivo em /etc/cron.d/repo-sync
com o formato:
<minute> <hour> <day_of_month> <month> <day_of_week> <user> <command>
Por exemplo, para executar o rsync de src para dest as 19:00 todos os dias, você pode usar:
0 19 * * * root rsync -a src dest
Ou você pode criar um crontab executando crontab -e
(como o usuário para o qual deseja executar o comando) com uma linha como acima, menos o usuário, como:
0 19 * * * rsync -a src dest
Pessoalmente, prefiro criar arquivos cron.d para tarefas de sistema / raiz, mas ambas as abordagens terão um resultado idêntico.
Agora, isso executará o comando uma vez no momento determinado - ele será interrompido assim que o comando terminar, portanto, não é necessário especificar um comando para interrompê-lo às 7:00, como o rsync deve ter esperado até então. Se você realmente precisar interromper o comando às 7:00, poderá emitir outro trabalho cron que simplesmente elimina os processos existentes no momento determinado.
0 7 * * * root killall rsync
Infelizmente isso irá matar todos os comandos rsync - que podem ter efeitos colaterais se tentar rodar o rsync ao mesmo tempo, então eu não aconselho este método.
Você pode ir mais longe colocando o comando rsync dentro de um script que escreve seu pid em um arquivo, e use esse pid no comando kill para atenuar isso, mas isso pode ser mais complicado do que você realmente precisa.
Você pode ler mais sobre como configurar tarefas do cron aqui ou aqui .