1 votos

¿Cómo renovar el contrato de arrendamiento DHCP a través de una tarea cron?

Tengo una máquina que se reinicia cada noche, pero cuando lo hace acaba conectándose al router equivocado de alguna manera, y siempre obtiene la IP equivocada. No quiero que utilice una IP estática, tengo mi router emitir una dirección reservada.

De todos modos, se arregla fácilmente renovando el contrato de arrendamiento DHCP (Ethernet, no wifi), pero quiero que esto se automatice después del reinicio. Por alguna razón no consigo que esto funcione desde cron... He probado las dos cosas:

* * * * * echo "add State:/Network/Interface/en0/RefreshConfiguration temporary" | sudo scutil
* * * * * sudo ipconfig set en0 DHCP

Tampoco hace nada desde Cron, pero funciona bien desde el CLI manualmente.

¿Cómo puedo conseguir que esto funcione a través de cron?

EDIT: He intentado usar el usuario Root como se sugiere en la primera respuesta, pero esto tampoco hace nada. Ningún cambio, nada de salida a un registro, simplemente nada.

1voto

Tomas Tintera Puntos 196

Primer paso importante

Asegúrese de que cron está funcionando. Es necesario conceder /usr/sbin/cron acceso total al disco. Aquí hay una buena guía . Debería poder hacer que la fecha y la hora actuales aparezcan en un archivo

* * * * * /bin/date > /Users/yourusername/cronout.txt

Crontab root

Añadiendo sudo a un crontab no funcionará porque sudo es requiere que introduzcas tu contraseña cuando se ejecuta el comando y cron no es interactivo, por lo que no puede introducir su contraseña.

Hay varias maneras de hacer que esto funcione. La más fácil, y razonable para este caso de uso, es hacer que este trabajo se ejecute como Root. Inicie la sesión como Root y cree el archivo crontab allí.

% sudo -i # Opens an interactive shell as root 
root# EDITOR=nano crontab -e # EDITOR is probably not configured for root  

Eso abrirá el nano editor. Siéntase libre de usar vi . En el editor añada uno de sus comandos, sin el sudo

* * * * * ipconfig set en0 DHCP

Ahorra. Me gusta probar mi cron entradas con crontab -l . Una vez hecho esto, salga del shell iniciando sesión como Root con exit o ^D .

Si necesita solucionar este problema, añada información de registro a cron . Cambia la línea por

* * * * * ipconfig set en0 DHCP &>> /Users/JVC/cron.log

Esto añadirá la salida de cron a un archivo de registro que puede leer y descubrir por qué el comando no funcionó.

Un medio alternativo para este fin sería modificar su sudoers archivo a través de visudo para permitir que este comando se ejecute sin requerir una contraseña 1 .

Esto deja abiertas las preguntas de por qué 1) necesitas reiniciar cada noche y 2) por qué esta máquina se conecta al router equivocado, pero esto debería resolver tu problema inmediato.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X