
Hice un script llamado hello.sh
y contiene lo siguiente:
#!/bin/bash
printf "$( arp-scan --interface=eth0 --localnet )\n"
printf "test\n"
después de hacerlo ejecutable ( chmod o+x
) y ejecutarlo ( ./hello.sh >> file.txt
), obtengo el resultado correcto file.txt
(que es el resultado del escaneo arp y la cadena "prueba"). Pero después de agregar la siguiente línea a crontab -e
:
*/1 * * * * /path/to/hello.sh >> /path/to/file.txt
Obtengo el siguiente resultado:
prueba prueba prueba
Como puede ver, la arp-scan
pieza devuelve una cadena vacía. ¿Cómo puedo hacer que arpscan funcione con cron?
Información adicional:Todo se hace después de iniciar sesión como sudo ( sudo -i
). arp-scan
necesita sudo. Estoy ejecutando esto en Fedora 20.
Respuesta1
cron
se ejecuta con un entorno mínimo y un camino reducido.
Siempre es más seguro utilizar scripts diseñados para ser ejecutados cron
para garantizar que todos los comandos tengan la ruta completa proporcionada, o que el script establezca su propia variable PATH.
Intente agregar la ruta completa al arp-scan
comando.