Script Shell não está executando no cron, mas manualmente executa

1. Script Shell não está executando no cron, mas manualmente executa

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 29/12/2020 - 15:53h

Um simples script em Shell foi agendado no cron para testar uma rotina.

No cron está assim
30 15 * * * /bin/bash /opt/teste.sh

Coloquei para executar 15:30, mas não executou, porém manualmente executa.


#!/bin/bash

echo "SHELL executou via cron" > /opt/teste.txt



Distro: CentOS 8





http://mundodacomputacaointegral.blogspot.com.br/
Twitter: https://twitter.com/@blogcomputacao
Facebook: https://www.facebook.com/BlogComputacao
Grupo Linux no Telegram: https://goo.gl/KQYqhN
Grupo Linguagens de Programação no Telegram: https://goo.gl/7sJF95
Grupo FreeBSD no Telegram: https://goo.gl/mzp7XT
Grupo Infra TI Corporate no Telegram: https://t.me/InfraTICorporate
Grupo CodeIgniter no Telegram: https://t.me/CodeIgniterBrasil
Grupo Phinx Brasil no Telegram: https://t.me/PhinxBrasil
Blog: http://goo.gl/Cuixk
Coleção de Howtos Linux e FreeBSD https://goo.gl/UHDVtK
Canal do Blog: https://t.me/blogcomputacao




  


2. Re: Script Shell não está executando no cron, mas manualmente executa

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/12/2020 - 16:17h


saitam escreveu:

Um simples script em Shell foi agendado no cron para testar uma rotina.

No cron está assim
30 15 * * * /bin/bash /opt/teste.sh

Coloquei para executar 15:30, mas não executou, porém manualmente executa.


#!/bin/bash

echo "SHELL executou via cron" > /opt/teste.txt


Distro: CentOS 8

Boa tarde.
Segue exemplo,
Executa o script a cada 15 minutos:
*/15 * * * * /home/marcelo/Pega_IP.sh 

Me parece que esse "/bin/bash" está errado:
30 15 * * * /bin/bash /opt/teste.sh

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
______________________________________________________________________




3. Re: Script Shell não está executando no cron, mas manualmente executa

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 29/12/2020 - 17:51h

Tem q ver primeiro onde q vc tá registrando essa regra no cron. É via crontab -e? Ou via /etc/cron.d? Há uma diferença entre eles. Se for via comando, seu exemplo está correto, mas se for via /etc/cron.d, vc precisa mencionar o usuário que vai executar o comando. Ex.:


30 15 * * * usuario /bin/bash /tmp/teste.sh


Tem mais outro porém: o PATH do cron é separado. Se vc menciona o comando "echo", mas não tem o PATH configurado no seu cron, vc precisa mencionar o caminho absoluto do comando, ficando /bin/echo.

Veja como está registrado a sua regra e faça a adaptação.

--
http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


4. Re: Script Shell não está executando no cron, mas manualmente executa

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 29/12/2020 - 21:50h


renato_pacheco escreveu:

Tem q ver primeiro onde q vc tá registrando essa regra no cron. É via crontab -e? Ou via /etc/cron.d? Há uma diferença entre eles. Se for via comando, seu exemplo está correto, mas se for via /etc/cron.d, vc precisa mencionar o usuário que vai executar o comando. Ex.:


30 15 * * * usuario /bin/bash /tmp/teste.sh


Tem mais outro porém: o PATH do cron é separado. Se vc menciona o comando "echo", mas não tem o PATH configurado no seu cron, vc precisa mencionar o caminho absoluto do comando, ficando /bin/echo.

Veja como está registrado a sua regra e faça a adaptação.

--
http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


Então, criei o cron via crontab -e . Esse é apenas um script de exemplo que fiz para testar. O script shell da rotina real executa a conversão do stream de vídeo para uma imagem JPEG com ffmpeg.

Antes no script shell estava apenas ffmpeg, alterei para /usr/bin/ffmpeg (verificado com whereis ffmpeg) e mesmo assim não está executando automático, mas manual executa.

Esse script shell eu gero por meio do script PHP que cria o arquivo .sh e escreve as linhas desde a primeira
#!/bin/bash 
e monta as linhas do ffmpeg (são várias conforme a lista que foi cadastrado no banco de dados, o script é gerado com os dados corretamente, mas não executa automaticamente, porém manual executa normal.

Resumindo, no cron tem o script PHP que cria o script Shell para converter o stream de vídeo para imagem JPEG. Conferi e o script PHP executa automaticamente, cria o script Shell com os dados corretos, só não executa automaticamente o script Shell, que também está no cron.

No cron foi agendado no mesmo horário os scripts PHP e Shell, talvez pode ser isso, pois o script Shell que é gerado por meio do script PHP.

No crontab -e

A cada 2hrs gera um snapshot do stream das câmeras IP

00 0,2,4,6,8,10,12,14,16,18,20,22 * * * php /opt/cron_snapshot_camerasip.php > /dev/null 2>&1

00 0,2,4,6,8,10,12,14,16,18,20,22 * * * /bin/bash /opt/cron_snapshot_camerasip.sh > /dev/null 2>&1


O script PHP executa automaticamente, o script Shell é criado por meio do script PHP, mas não executa automaticamente, apenas manual. Será que pode ser isso de ambos scripts executarem simultaneamente ?

Fazer um teste no agendamento do script Shell com delay de 5 minutos após a execução do script PHP.

http://mundodacomputacaointegral.blogspot.com.br/
Twitter: https://twitter.com/@blogcomputacao
Facebook: https://www.facebook.com/BlogComputacao
Grupo Linux no Telegram: https://goo.gl/KQYqhN
Grupo Linguagens de Programação no Telegram: https://goo.gl/7sJF95
Grupo FreeBSD no Telegram: https://goo.gl/mzp7XT
Grupo Infra TI Corporate no Telegram: https://t.me/InfraTICorporate
Grupo CodeIgniter no Telegram: https://t.me/CodeIgniterBrasil
Grupo Phinx Brasil no Telegram: https://t.me/PhinxBrasil
Blog: http://goo.gl/Cuixk
Coleção de Howtos Linux e FreeBSD https://goo.gl/UHDVtK
Canal do Blog: https://t.me/blogcomputacao




5. Re: Script Shell não está executando no cron, mas manualmente executa

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 29/12/2020 - 21:54h

msoliver escreveu:


saitam escreveu:

Um simples script em Shell foi agendado no cron para testar uma rotina.

No cron está assim
30 15 * * * /bin/bash /opt/teste.sh

Coloquei para executar 15:30, mas não executou, porém manualmente executa.


#!/bin/bash

echo "SHELL executou via cron" > /opt/teste.txt


Distro: CentOS 8

Boa tarde.
Segue exemplo,
Executa o script a cada 15 minutos:
*/15 * * * * /home/marcelo/Pega_IP.sh 

Me parece que esse "/bin/bash" está errado:
30 15 * * * /bin/bash /opt/teste.sh

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
______________________________________________________________________



O script teste.sh executou automaticamente no cron. Era o caminho absoluto do comando bash que precisa adicionar.
Descrevi o cenário real da rotina em outro comentário.

http://mundodacomputacaointegral.blogspot.com.br/
Twitter: https://twitter.com/@blogcomputacao
Facebook: https://www.facebook.com/BlogComputacao
Grupo Linux no Telegram: https://goo.gl/KQYqhN
Grupo Linguagens de Programação no Telegram: https://goo.gl/7sJF95
Grupo FreeBSD no Telegram: https://goo.gl/mzp7XT
Grupo Infra TI Corporate no Telegram: https://t.me/InfraTICorporate
Grupo CodeIgniter no Telegram: https://t.me/CodeIgniterBrasil
Grupo Phinx Brasil no Telegram: https://t.me/PhinxBrasil
Blog: http://goo.gl/Cuixk
Coleção de Howtos Linux e FreeBSD https://goo.gl/UHDVtK
Canal do Blog: https://t.me/blogcomputacao




6. Re: Script Shell não está executando no cron, mas manualmente executa

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 29/12/2020 - 22:31h

saitam escreveu:

Então, criei o cron via crontab -e . Esse é apenas um script de exemplo que fiz para testar. O script shell da rotina real executa a conversão do stream de vídeo para uma imagem JPEG com ffmpeg.

Antes no script shell estava apenas ffmpeg, alterei para /usr/bin/ffmpeg (verificado com whereis ffmpeg) e mesmo assim não está executando automático, mas manual executa.

Esse script shell eu gero por meio do script PHP que cria o arquivo .sh e escreve as linhas desde a primeira
#!/bin/bash 
e monta as linhas do ffmpeg (são várias conforme a lista que foi cadastrado no banco de dados, o script é gerado com os dados corretamente, mas não executa automaticamente, porém manual executa normal.

Resumindo, no cron tem o script PHP que cria o script Shell para converter o stream de vídeo para imagem JPEG. Conferi e o script PHP executa automaticamente, cria o script Shell com os dados corretos, só não executa automaticamente o script Shell, que também está no cron.

No cron foi agendado no mesmo horário os scripts PHP e Shell, talvez pode ser isso, pois o script Shell que é gerado por meio do script PHP.

No crontab -e

A cada 2hrs gera um snapshot do stream das câmeras IP

00 0,2,4,6,8,10,12,14,16,18,20,22 * * * php /opt/cron_snapshot_camerasip.php > /dev/null 2>&1

00 0,2,4,6,8,10,12,14,16,18,20,22 * * * /bin/bash /opt/cron_snapshot_camerasip.sh > /dev/null 2>&1


O script PHP executa automaticamente, o script Shell é criado por meio do script PHP, mas não executa automaticamente, apenas manual. Será que pode ser isso de ambos scripts executarem simultaneamente ?

Fazer um teste no agendamento do script Shell com delay de 5 minutos após a execução do script PHP.

http://mundodacomputacaointegral.blogspot.com.br/
Twitter: https://twitter.com/@blogcomputacao
Facebook: https://www.facebook.com/BlogComputacao
Grupo Linux no Telegram: https://goo.gl/KQYqhN
Grupo Linguagens de Programação no Telegram: https://goo.gl/7sJF95
Grupo FreeBSD no Telegram: https://goo.gl/mzp7XT
Grupo Infra TI Corporate no Telegram: https://t.me/InfraTICorporate
Grupo CodeIgniter no Telegram: https://t.me/CodeIgniterBrasil
Grupo Phinx Brasil no Telegram: https://t.me/PhinxBrasil
Blog: http://goo.gl/Cuixk
Coleção de Howtos Linux e FreeBSD https://goo.gl/UHDVtK
Canal do Blog: https://t.me/blogcomputacao



Sobre o lance de executar ao mesmo tempo, pode ser, hein? Talvez não deu tempo de criar o script. Em vez de vc colocar em duas linhas, coloque assim:


00 0,2,4,6,8,10,12,14,16,18,20,22 * * * php /opt/cron_snapshot_camerasip.php && /bin/bash /opt/cron_snapshot_camerasip.sh > /dev/null 2>&1


Se for isso, vai funcionar.

--
http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


7. Re: Script Shell não está executando no cron, mas manualmente executa

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 30/12/2020 - 17:37h


renato_pacheco escreveu:

saitam escreveu:

Então, criei o cron via crontab -e . Esse é apenas um script de exemplo que fiz para testar. O script shell da rotina real executa a conversão do stream de vídeo para uma imagem JPEG com ffmpeg.

Antes no script shell estava apenas ffmpeg, alterei para /usr/bin/ffmpeg (verificado com whereis ffmpeg) e mesmo assim não está executando automático, mas manual executa.

Esse script shell eu gero por meio do script PHP que cria o arquivo .sh e escreve as linhas desde a primeira
#!/bin/bash 
e monta as linhas do ffmpeg (são várias conforme a lista que foi cadastrado no banco de dados, o script é gerado com os dados corretamente, mas não executa automaticamente, porém manual executa normal.

Resumindo, no cron tem o script PHP que cria o script Shell para converter o stream de vídeo para imagem JPEG. Conferi e o script PHP executa automaticamente, cria o script Shell com os dados corretos, só não executa automaticamente o script Shell, que também está no cron.

No cron foi agendado no mesmo horário os scripts PHP e Shell, talvez pode ser isso, pois o script Shell que é gerado por meio do script PHP.

No crontab -e

A cada 2hrs gera um snapshot do stream das câmeras IP

00 0,2,4,6,8,10,12,14,16,18,20,22 * * * php /opt/cron_snapshot_camerasip.php > /dev/null 2>&1

00 0,2,4,6,8,10,12,14,16,18,20,22 * * * /bin/bash /opt/cron_snapshot_camerasip.sh > /dev/null 2>&1


O script PHP executa automaticamente, o script Shell é criado por meio do script PHP, mas não executa automaticamente, apenas manual. Será que pode ser isso de ambos scripts executarem simultaneamente ?

Fazer um teste no agendamento do script Shell com delay de 5 minutos após a execução do script PHP.

http://mundodacomputacaointegral.blogspot.com.br/
Twitter: https://twitter.com/@blogcomputacao
Facebook: https://www.facebook.com/BlogComputacao
Grupo Linux no Telegram: https://goo.gl/KQYqhN
Grupo Linguagens de Programação no Telegram: https://goo.gl/7sJF95
Grupo FreeBSD no Telegram: https://goo.gl/mzp7XT
Grupo Infra TI Corporate no Telegram: https://t.me/InfraTICorporate
Grupo CodeIgniter no Telegram: https://t.me/CodeIgniterBrasil
Grupo Phinx Brasil no Telegram: https://t.me/PhinxBrasil
Blog: http://goo.gl/Cuixk
Coleção de Howtos Linux e FreeBSD https://goo.gl/UHDVtK
Canal do Blog: https://t.me/blogcomputacao



Sobre o lance de executar ao mesmo tempo, pode ser, hein? Talvez não deu tempo de criar o script. Em vez de vc colocar em duas linhas, coloque assim:


00 0,2,4,6,8,10,12,14,16,18,20,22 * * * php /opt/cron_snapshot_camerasip.php && /bin/bash /opt/cron_snapshot_camerasip.sh > /dev/null 2>&1


Se for isso, vai funcionar.

--
http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


Bingo. Fiz o teste com delay de 5 minutos para executar o script Shell, funcionou. Depois testei conforme comentou na mesma linha do cron com &&, também funcionou. Melhor dessa forma.

Valeu.



http://mundodacomputacaointegral.blogspot.com.br/
Twitter: https://twitter.com/@blogcomputacao
Facebook: https://www.facebook.com/BlogComputacao
Grupo Linux no Telegram: https://goo.gl/KQYqhN
Grupo Linguagens de Programação no Telegram: https://goo.gl/7sJF95
Grupo FreeBSD no Telegram: https://goo.gl/mzp7XT
Grupo Infra TI Corporate no Telegram: https://t.me/InfraTICorporate
Grupo CodeIgniter no Telegram: https://t.me/CodeIgniterBrasil
Grupo Phinx Brasil no Telegram: https://t.me/PhinxBrasil
Blog: http://goo.gl/Cuixk
Coleção de Howtos Linux e FreeBSD https://goo.gl/UHDVtK
Canal do Blog: https://t.me/blogcomputacao




8. Re: Script Shell não está executando no cron, mas manualmente executa

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 31/12/2020 - 11:29h

Mais um adendo. Se vc quiser, vc pode reduzir essa regra do cron sua, colocando assim:


0 */2 * * * seus_comandos


Assim ele vai executar de 2 em 2 horas, como vc quer.

--
http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


9. Re: Script Shell não está executando no cron, mas manualmente executa

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 31/12/2020 - 13:57h


renato_pacheco escreveu:

Mais um adendo. Se vc quiser, vc pode reduzir essa regra do cron sua, colocando assim:


0 */2 * * * seus_comandos


Assim ele vai executar de 2 em 2 horas, como vc quer.

--
http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


Show. Valeu pelo adendo.


http://mundodacomputacaointegral.blogspot.com.br/
Twitter: https://twitter.com/@blogcomputacao
Facebook: https://www.facebook.com/BlogComputacao
Grupo Linux no Telegram: https://goo.gl/KQYqhN
Grupo Linguagens de Programação no Telegram: https://goo.gl/7sJF95
Grupo FreeBSD no Telegram: https://goo.gl/mzp7XT
Grupo Infra TI Corporate no Telegram: https://t.me/InfraTICorporate
Grupo CodeIgniter no Telegram: https://t.me/CodeIgniterBrasil
Grupo Phinx Brasil no Telegram: https://t.me/PhinxBrasil
Blog: http://goo.gl/Cuixk
Coleção de Howtos Linux e FreeBSD https://goo.gl/UHDVtK
Canal do Blog: https://t.me/blogcomputacao








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts