CRON job on Ubiquity Edge Router para modificar hosts file

0

Estou tentando configurar um cron job em meu Ubiquity Edge Router que modificará o arquivo de hosts uma vez pela manhã e uma vez durante a noite durante a semana, para bloquear vários sites das 8h às 19h M-F.

Eu criei dois scripts de shell:

/config/scripts/set-blocking-hosts.sh
/config/scripts/set-default-hosts.sh

Cada um deles tem 2 linhas:

cp /etc/hosts.blocking /etc/hosts
/etc/init.d/dnsmasq restart

Observe que a primeira linha com o comando cp é diferente em cada script, para copiar o arquivo apropriado (hosts.default ou hosts.blocking)

Se eu fizer ssh no roteador e executar esses scripts diretamente, eles farão exatamente o que eu quero e funcionarão perfeitamente.

Estou tendo problemas para conseguir que eles sejam executados conforme o cron.

Aqui estão as minhas entradas do cron:

0 8 * * 1-5 /config/scripts/set-blocking-hosts.sh
0 19 * * 1-5 /config/scripts/set-default-hosts.sh

Até agora, tentei adicionar essas entradas usando crontab -e e sudo crontab -e e nenhuma delas parece estar funcionando.

Procurei um arquivo de log em /var/log , mas não consegui encontrar nada relevante.

Se eu executar este comando, ps -ef | grep cron | grep -v grep obtenho o seguinte resultado, sugerindo que o cron está sendo executado.

root     490     1     0 Oct24 ?     00:00:09 /usr/sbin/cron

Não tenho certeza de onde devo colocar as entradas do cron para que as tarefas sejam executadas ou se eu precisar reinicializar o roteador ou se algo estiver desativado em algum lugar ou se esse tipo de coisa não for compatível com o roteador.

Disclaimer, eu não sou um cara de sistemas ou linux, então a maior parte disso eu descobri através de pesquisa e tentativa e erro.

Qualquer ajuda é muito apreciada!

    
por Matthew 12.11.2015 / 20:55

1 resposta

1

Resolvido

Primeiro, isso foi conseguido usando sudo crontab -e , embora também possa funcionar usando o crontab -e do usuário logado - eu só não sei se haveria um problema de permissão.

Em segundo lugar, as entradas do cron precisam ser modificadas para incluir um "sh" inicial, como mostrado abaixo:

0 8 * * 1-5 sh /config/scripts/set-blocking-hosts.sh
0 19 * * 1-5 sh /config/scripts/set-default-hosts.sh

Por último, e isso provavelmente está isolado para mim - eu tinha mudado o fuso horário no meu roteador de UTC para PST e não tinha reiniciado. Enquanto date mostraria o horário local como PST, acho que cron ainda estava sendo executado com base no UTC - talvez se eu tivesse reiniciado o cron , eu não precisaria de uma reinicialização do roteador.

    
por 12.11.2015 / 22:05