Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

380
Vistas
El trabajo cron no funciona hasta que vuelva a guardar el archivo cron en el contenedor docker

Estoy usando el contenedor docker Mongo y estoy intentando hacer una copia de seguridad a través de un script bash. El script, ejecutado por sí solo, funciona bien. También puedo ver en syslog que cron se está ejecutando pero el comando no aparece. Si abro mi archivo con crontab -e, guardo y salgo (:wq), luego reinicio cron, el trabajo funciona bien.

Aquí está la sección relevante de mi dockerfile:

 ADD mongocron /etc/cron.d/ RUN tr -d '\015' < /etc/cron.d/mongocron > /etc/cron.d/mongocron #RUN touch /etc/cron.d/mongocron #RUN echo "* * * * * /db_scripts/MongoDBBackup.sh >> /db_scripts/logs/backup.log\n" > /etc/cron.d/mongocron RUN crontab /etc/cron.d/mongocron RUN chmod 0644 /etc/cron.d/mongocron

Esto es lo que hay en el archivo mongocron:

 * * * * * /db_scripts/MongoDBBackup.sh >> /db_scripts/logs/backup.log

Esta es la salida de syslog antes de volver a guardar: ingrese la descripción de la imagen aquí

Y aquí hay una foto después: Después de volver a guardar

Reiniciar cron por sí solo no lo soluciona. Tengo la sensación de que tiene algo que ver con los finales de línea, por eso ves la estrategia de "eco" comentada en el archivo acoplable con una nueva línea. También verifiqué (antes de guardar) que mi comando se muestra cuando crontab -l

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

También me he enfrentado a este problema y el motivo fue una nueva línea faltante al final del archivo. La respuesta de @opHASnoNAME es correcta, pero cuando comienza a funcionar solo después de editar, la razón es la nueva línea. Su editor simplemente lo agrega por defecto.

about 4 years ago · Santiago Trujillo Denunciar

0

Estaba luchando con el mismo problema en el pasado.

Aquí hay un ejemplo de trabajo, probado en la naturaleza, tomado de nuestro DevBlog .

 FROM ubuntu:latest ADD start.sh /bin/start.sh RUN chmod +x /bin/start.sh # Add crontab file in the cron directory ADD crontab /etc/cron.d/thecron # Give execution rights on the cron job RUN chmod 0644 /etc/cron.d/thecron # Create the log file to be able to run tail RUN touch /var/log/cron.log # start script CMD /bin/bash /bin/start.sh

El start.sh, creo que no necesita la parte con exportación de variables env.

 # export all environment variables to use in cron env | sed 's/^\(.*\)$/export \1/g' > /root/envs.sh chmod +x /root/envs.sh # Run the command on container startup cron && tail -f /var/log/cron.log

El archivo Cron, copiado mientras se construía la imagen.

 0 1 * * * root . /root/envs.sh;/bin/backup.sh >> /var/log/cron.log 2>&1
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda