![]() |
| |||
| Hola, como digo en el encabezado, tengo un problema con una tarea crontab. El problema es el siguiente, tengo un servidor linux (Fedora con Plesk para la administración) en el cual la cola de qmail se llena enseguida (marditos spamers), bien el caso es que le he instalado qmail-remove para borrarla periodicamente, y he creado un script para automatizar el proceso, el script, que es sencillísimo, pues solo lleva 3 líneas, funciona correctamente desde línea de comandos, pero no desde el crontab, os pongo el contenido del script y la línea del crontab para ver que hago mal: script borrarCola #! /bin/bash # /etc/init.d/qmail stop qmail-remove -r /etc/init.d/qmail start Como dije esto funciona perfectamente desde línea de comandos, para el qmail, borra la cola y vuelve a iniciar qmail, pero desde crontab no. La línea obtenida con crontab -l es la siguiente: 0 3 * * * /usr/sbin/borrarCola Tal como lo entiendo esto debería ejecutarse todos los días a las 3 de la mañana, pues ni caso. Si alguien me puede ayudar, pues eso, que gracias. -- salud ainvar de los carnutos |
| | ||||
| ||||
| |
| |||
| Hola ainvar! El 2008-04-18 ainvar va escriure en es.comp.os.linux.misc: > os pongo el contenido del script > script borrarCola > #! /bin/bash > # Aquí te falta PATH=/bin:/usr/...... > /etc/init.d/qmail stop > qmail-remove -r o bién cambiar qmail-remove por /camino/a/qmail-remove > Si > alguien me puede ayudar, pues eso, que gracias. Salut Pere -- sc***fornol.no-ip.org spc***fornol.no-ip.org cs***fornol.no-ip.org cannsp***fornol.no-ip.org spamc***fornol.no-ip.org spmc***fornol.no-ip.org cspam***fornol.no-ip.org cspm***fornol.no-ip.org |
| |||
| Hola ainvar! El 2008-04-18 ainvar va escriure en es.comp.os.linux.misc: > os pongo el contenido del script > script borrarCola > #! /bin/bash > # Aquí te falta PATH=/bin:/usr/...... > /etc/init.d/qmail stop > qmail-remove -r o bién cambiar qmail-remove por /camino/a/qmail-remove > Si > alguien me puede ayudar, pues eso, que gracias. Salut Pere -- sc***fornol.no-ip.org spc***fornol.no-ip.org cs***fornol.no-ip.org cannsp***fornol.no-ip.org spamc***fornol.no-ip.org spmc***fornol.no-ip.org cspam***fornol.no-ip.org cspm***fornol.no-ip.org |
| |||
| Hola Pere, gracias por contestar. Lo que no entiendo es que si yo escribo en la consola /usr/bin/borrarCola funciona perfectamente, entonces ¿porque el crontab no lo ejecuta? -- salud ainvar de los carnutos Pere Pujal i Carabantes escribió: > Hola ainvar! > > El 2008-04-18 > ainvar va escriure en > es.comp.os.linux.misc: > >> os pongo el contenido del script >> script borrarCola > >> #! /bin/bash >> # > Aquí te falta PATH=/bin:/usr/...... > >> /etc/init.d/qmail stop >> qmail-remove -r > > o bién cambiar qmail-remove por /camino/a/qmail-remove > >> Si >> alguien me puede ayudar, pues eso, que gracias. > > > Salut > Pere |
| |||
| Hola Pere, gracias por contestar. Lo que no entiendo es que si yo escribo en la consola /usr/bin/borrarCola funciona perfectamente, entonces ¿porque el crontab no lo ejecuta? -- salud ainvar de los carnutos Pere Pujal i Carabantes escribió: > Hola ainvar! > > El 2008-04-18 > ainvar va escriure en > es.comp.os.linux.misc: > >> os pongo el contenido del script >> script borrarCola > >> #! /bin/bash >> # > Aquí te falta PATH=/bin:/usr/...... > >> /etc/init.d/qmail stop >> qmail-remove -r > > o bién cambiar qmail-remove por /camino/a/qmail-remove > >> Si >> alguien me puede ayudar, pues eso, que gracias. > > > Salut > Pere |
| |||
| Hola ainvar! El 2008-04-18 ainvar va escriure en es.comp.os.linux.misc: > Hola Pere, gracias por contestar. Lo que no entiendo es que si yo escribo en la consola > /usr/bin/borrarCola funciona perfectamente, entonces ¿porque el crontab no lo ejecuta? Debería ejecutarlo, Siguiendo tu script deberia parar qmail /etc/init.d/qmail stop deberia buscar en el PATH una orden determinada y ejecutarla en caso de encontrarla debería rearrancar qmail /etc/init.d/qmail start Pero... cron reasigna PATH a /usr/bin:/bin con lo que si en tu script no establece la variable PATH y la orden que borra los mensajes no está en el PATH establecido por cron... Échale una ojeada al man de cron y de crontab man cron man 5 crontab Entre otras cosas te cuenta: Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd line of the crontab's owner. PATH is set to "/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by settings in the crontab; LOGNAME is the user that the job is running from, and may not be changed. Salut Pere -- sc***fornol.no-ip.org spc***fornol.no-ip.org cs***fornol.no-ip.org cannsp***fornol.no-ip.org spamc***fornol.no-ip.org spmc***fornol.no-ip.org cspam***fornol.no-ip.org cspm***fornol.no-ip.org |
| |||
| Hola ainvar! El 2008-04-18 ainvar va escriure en es.comp.os.linux.misc: > Hola Pere, gracias por contestar. Lo que no entiendo es que si yo escribo en la consola > /usr/bin/borrarCola funciona perfectamente, entonces ¿porque el crontab no lo ejecuta? Debería ejecutarlo, Siguiendo tu script deberia parar qmail /etc/init.d/qmail stop deberia buscar en el PATH una orden determinada y ejecutarla en caso de encontrarla debería rearrancar qmail /etc/init.d/qmail start Pero... cron reasigna PATH a /usr/bin:/bin con lo que si en tu script no establece la variable PATH y la orden que borra los mensajes no está en el PATH establecido por cron... Échale una ojeada al man de cron y de crontab man cron man 5 crontab Entre otras cosas te cuenta: Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd line of the crontab's owner. PATH is set to "/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by settings in the crontab; LOGNAME is the user that the job is running from, and may not be changed. Salut Pere -- sc***fornol.no-ip.org spc***fornol.no-ip.org cs***fornol.no-ip.org cannsp***fornol.no-ip.org spamc***fornol.no-ip.org spmc***fornol.no-ip.org cspam***fornol.no-ip.org cspm***fornol.no-ip.org |
| |||
| Pere Pujal i Carabantes escribió: > Hola ainvar! > > El 2008-04-18 > ainvar va escriure en > es.comp.os.linux.misc: > >> Hola Pere, gracias por contestar. Lo que no entiendo es que si yo escribo en la consola >> /usr/bin/borrarCola funciona perfectamente, entonces ¿porque el crontab no lo ejecuta? > > Debería ejecutarlo, > > Siguiendo tu script > deberia parar qmail /etc/init.d/qmail stop > deberia buscar en el PATH una orden determinada y ejecutarla en caso de > encontrarla > debería rearrancar qmail /etc/init.d/qmail start > > Pero... cron reasigna PATH a /usr/bin:/bin con lo que si en tu script no > establece la variable PATH y la orden que borra los mensajes no está > en el PATH establecido por cron... > > Échale una ojeada al man de cron y de crontab > man cron > man 5 crontab > > Entre otras cosas te cuenta: > > Several environment variables are set up automatically by the cron(8) daemon. > SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd > line of the crontab's owner. > PATH is set to "/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by > settings in the crontab; LOGNAME is the user that the job is running from, > and may not be changed. > > > Salut > Pere Muchas gracias Pere, voy a probar cambiando el path. -- salud ainvar de los carnutos |
| |||
| Pere Pujal i Carabantes escribió: > Hola ainvar! > > El 2008-04-18 > ainvar va escriure en > es.comp.os.linux.misc: > >> Hola Pere, gracias por contestar. Lo que no entiendo es que si yo escribo en la consola >> /usr/bin/borrarCola funciona perfectamente, entonces ¿porque el crontab no lo ejecuta? > > Debería ejecutarlo, > > Siguiendo tu script > deberia parar qmail /etc/init.d/qmail stop > deberia buscar en el PATH una orden determinada y ejecutarla en caso de > encontrarla > debería rearrancar qmail /etc/init.d/qmail start > > Pero... cron reasigna PATH a /usr/bin:/bin con lo que si en tu script no > establece la variable PATH y la orden que borra los mensajes no está > en el PATH establecido por cron... > > Échale una ojeada al man de cron y de crontab > man cron > man 5 crontab > > Entre otras cosas te cuenta: > > Several environment variables are set up automatically by the cron(8) daemon. > SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd > line of the crontab's owner. > PATH is set to "/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by > settings in the crontab; LOGNAME is the user that the job is running from, > and may not be changed. > > > Salut > Pere Muchas gracias Pere, voy a probar cambiando el path. -- salud ainvar de los carnutos |
| |||
| On 2008-04-18, ainvar <ainvar***carnutos.com> wrote: > Hola, como digo en el encabezado, tengo un problema con una tarea crontab. El problema es el > siguiente, tengo un servidor linux (Fedora con Plesk para la administración) en el cual la cola de > qmail se llena enseguida (marditos spamers), bien el caso es que le he instalado qmail-remove para > borrarla periodicamente, y he creado un script para automatizar el proceso, el script, que es > sencillísimo, pues solo lleva 3 líneas, funciona correctamente desde línea de comandos, pero no > desde el crontab, os pongo el contenido del script y la línea del crontab para ver que hago mal: > > script borrarCola > > #! /bin/bash Quita ese espacio. El cron se edita con "crontab -e". Si no lo haces así es como si no editases. Un saludo. |
| |
| |
![]() |
| Herramientas | |
| Desplegado | |
| |