Git busca fallar en cron. Funciona bien manualmente

Todo el script funciona bien También notaré que si copio y pego el trabajo cron en el shell y lo ejecuto manualmente, funciona sin problemas.

Base = '/home/user/git/' GIT_out = Base + ("git_file.txt") FILE_NAME = Base + 'rules/file.xml' CD_file = open(Base + "rules/reports/CD.txt", 'r') os.chdir(Base + 'rules') gitFetchPull = "git fetch --all ;sleep 3 ; git pull --all" git1 = subprocess.Popen(gitFetchPull, shell=True, stdout=subprocess.PIPE) gitOut = git1.stdout.read() print(gitOut) 

Cuando leo el resultado de cron, parece que no se puede autenticar

 Received disconnect from 172.17.3.18: 2: Too many authentication failures for tyoffe4 fatal: The remote end hung up unexpectedly error: Could not fetch origin 

trabajo cron

  * * * /usr/bin/python /home/tyoffe4/git/rules/reports/cd_release.py >/home/tyoffe4/git/rules/reports/cd_release.out 2>&1 

Es probable que esto se deba a que el entorno cron no tiene las variables de entorno configuradas por su agente ssh. Por lo tanto, cuando git realiza una connection ssh, no puede autenticarse, ya que no puede contactar a su agente ssh y get keys.

Esta respuesta probablemente tiene lo que estás buscando: ssh-agent y crontab: ¿hay una buena manera de que se cumplan?

Si por alguna razón no está relacionado con ssh-agent, intente print os.environ en la parte superior de su script para volcar el valor de todas las variables de entorno.

Compare la salida de cron y ejecutando env en su shell bash. Es probable que haya algunas diferencias, y una de ellas es la fuente de su error.

Si configura las mismas variables de entorno en su shell que en cron, el comportamiento debería reproducirse.