Acesso baseado em tempo ao servidor samba

2

Eu tenho um servidor 14.04 executando samba. Eu gostaria de instituir algum acesso baseado em tempo para o servidor. Eu hospedo mídia para toda a casa, e o objetivo é que as televisões das crianças se tornem inúteis em um determinado momento. Eu coloquei o seguinte em crontab :

da raiz
  0 22 *    *   0-4   /etc/init.d/samba stop 
  0 22 *    *   0-4   /etc/init.d/smbd stop 
  0 22 *    *   0-4   /etc/init.d/nmbd stop 

As ações continuam ativas no passado. O que estou fazendo errado?

    
por user2882212 12.04.2015 / 17:58

1 resposta

1

Seus comandos não estão funcionando porque /etc/init.d/smbd e /etc/init.d/nmbd têm o seguinte no início:

if init_is_upstart; then
                        exit 1
                fi

Portanto, como o init no Ubuntu agora é Upstart ( /etc/init.d/ é do SysV), você precisa executar os scripts start-stop a partir do diretório /etc/init/ . O /etc/init.d/ ainda existe para compatibilidade com versões anteriores porque muitos programas ainda usam esse diretório.

Para facilitar as coisas para você, o Ubuntu tem o comando service :

sudo service smbd stop
sudo service nmbd stop

Durante a execução como root :

service smbd stop
service nmbd stop

service pesquisará primeiro no diretório /etc/init/ e, em seguida, /etc/init.d/ . service é eficiente em outro sentido: se houver dois scripts com o mesmo nome nesses dois diretórios (como no caso de smbd e nmbd ), o script Upstart (em /etc/init/ ) terá precedência sobre o script SysV (em código%).

Além disso, sua entrada /etc/init.d/ pode ser simplificada:

0 22 * * 0-4  service samba stop && service smbd stop && service nmbd stop

cron garante que o próximo comando seja executado somente se o anterior for bem-sucedido (por exemplo, código de saída && ).

    
por heemayl 12.04.2015 / 18:20