Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

387
Visualizações
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

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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.

over 4 years ago · Santiago Trujillo Relatório

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
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda