Почему не работает Запуск задания с помощью Cron?

Здесь следует учесть несколько моментов:

  • Что дает команда route ? В списке должен быть пункт назначения по умолчанию.
  • cat /etc/resolv.conf должен содержать хотя бы один адрес . у меня 127.0.0.1, но это может быть адрес вашего маршрутизатора или другой.
  • Вы действительно подключены к маршрутизатору? попробуйте iwgetid Я считаю, что показывает подключенный BSSID или ничего, если не подключен.

В качестве альтернативы вы можете настроить зарезервированный DHCP-адрес на своем маршрутизаторе, чтобы он использовал DHCP, но ваш адрес был фиксированным.

0
12.05.2018, 12:34
3 ответа

Por lo general, para depurar estos problemas, puede ser útil agregar algo de registro, posible para cada línea. Así:

source activate python36 >> /tmp/1.log 2>&1

python opt/project1/Table_Control.py opt/project1/connection.yaml >> /tmp/2.log 2>&1

También puede configurar la tarea cron para que se inicie cada minuto para que no tenga que esperar. Debería ayudar.

0
28.01.2020, 02:43

Un error común al escribir secuencias de comandos que cron ejecutará más tarde es asumir que la secuencia de comandos tendrá exactamente el mismo entorno que tiene cuando inicia sesión y lo está desarrollando. ¡No lo ha hecho!

Esta respuesta explica más a fondo para verificar la diferencia en el entorno del proceso y la depuración.

Sin embargo, su línea source activate python36asume que activar está en el directorio actual, también se supone que pythonestá en la ruta de la tarea cron.

Coloque su comando en su propio subshell y redirija todo a un archivo de registro para ver qué está pasando.

por ejemplo.

1 19 * * * (cd /opt/project1/ &&./start.sh) >/tmp/pr1.log 2>&1
1
28.01.2020, 02:43

Después del cambio

python opt/project1/Table_Control.py opt/project1/connection.yaml >> /tmp/2.log 2>&1

En el registro, encontré un error. Python no encontró el módulo de Python de solicitudes.

Cambié

python opt/project1/Table_Control.py opt/project1/connection.yaml >> /tmp/2.log 2>&1

a

/data/Anaconda2-4.4.0/envs/python36/bin/python opt/project1/Table_Control.py opt/project1/connection.yaml >> Table_Control.log >&1

p.d.

Ahora funcionó bien, PERO no entendí por qué si ejecuto desde el script de shell -sin errores,PERO si la ejecución desde el trabajo cron devolvió el error, no se encontraron solicitudes del módulo python...

0
28.01.2020, 02:43

Теги

Похожие вопросы