Execute um script de shell em horários específicos
Para programar a execução de um script de shell em horários específicos, use o launchd
ou o cron
.
Programe tarefas com o launchd
Use o
launchd
em vez do
para programar tarefas. Com ocron
launchd
, se uma tarefa for omitida pelo fato do computador estar desligado ou em repouso, ela será adicionada à lista quando o computador estiver ligado novamente.Para usar o
launchd
para programar trabalhos baseados em timer, use as chavesStartCalendarInterval
ouStartInterval
.Para obter mais informações sobre o
launchd
, consulte a respectiva página “man”.
Use cron para programar uma tarefa
O deamon cron
executa comandos programados definidos em arquivos crontab. O deamon cron
busca na pasta /usr/lib/cron/tabs/ por arquivos crontab cujos nomes provenham das contas em /etc/passwd e os carrega na memória. O deamon cron
também busca na pasta /etc/crontab/ por arquivos crontab que estejam em outro formato. Depois, em ciclos de um minuto, o cron
examina os arquivos crontab armazenados, verificando cada comando para ver se o mesmo deve ser executado no minuto atual.
Quando os comandos são executados, a saída é enviada por e-mail para o proprietário do arquivo crontab ou para o usuário denominado na variável de ambiente opcional MAILTO do arquivo crontab.
Use a ferramenta crontab
para instalar, desinstalar ou listar as tabelas usadas para dirigir o deamon cron
. Os usuários podem ter seus próprios arquivos crontab.
Para configurar seu arquivo crontab, use o comando
crontab -e
. Esse comando abre um arquivo crontab vazio no modo de edição.A seguir, um exemplo de um arquivo crontab:
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#min hour mday month wday command
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
50 23 * * 0 diskutil repairVolume /Volumes/MacHD
Nesse exemplo, a primeira entrada repara as permissões do disco do volume MacHD às 18:30 todos os dias, de segunda-feira à sexta-feira:
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
A segunda entrada programa a execução de uma operação de reparo do volume às 23:50, todo domingo:
50 23 * * 0 diskutil repairVolume /Volumes/MacHD