Configurar Crontab [RESOLVIDO]

1. Configurar Crontab [RESOLVIDO]

Ednei Tadeu Goncalves
edneigoncalves

(usa Outra)

Enviado em 17/05/2024 - 09:41h

Bom dia a todos...
Sou estudante de shell script e desenvolvi um script para rodar meus backups do dir home/user do meu servidor e montei um link pra chama-lo de dentro do meu diretório ~/bin bkp_home, porém o Crontab não executa. se eu digitar este link em qualquer local de meu terminal ele é executado com sucesso.Onde estou errando?
crontab:(configurado para rodar o backup todos os dias aos 44 minutos da primeira hora)
44 00 0 0 0 bkp_home

Obrigado pela ajuda 0:


  


2. Re: Configurar Crontab [RESOLVIDO]

Amarildo Sertorio dos Santos
amarildosertorio

(usa Fedora)

Enviado em 17/05/2024 - 09:53h

Seu script utiliza o sudo. Você configurou o sudoers com a flag "NOPASSWD"?


3. Re: Configurar Crontab [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 17/05/2024 - 09:54h


1 - kd o crontab ?
2 - Vc tem que ter em mente que esse script vai rodar em 2º plano então ele dessa maneira aí no cron não roda mesmo
EX: o comando clear ... vai limpar o que se está em 2º plano ?
EX1: o comando sudo ... como vc vai digitar a senha se está em 2º plano ?

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




4. Re: Configurar Crontab [RESOLVIDO]

Amarildo Sertorio dos Santos
amarildosertorio

(usa Fedora)

Enviado em 17/05/2024 - 09:56h

Você pode remover o sudo do script e configurá-lo para ser executado como root no "/etc/crontab".


5. Re: Configurar Crontab

Amarildo Sertorio dos Santos
amarildosertorio

(usa Fedora)

Enviado em 17/05/2024 - 10:04h

O crontab do Linux pode capturar a saída padrão (stdout) e a saída de erro padrão (stderr) dos comandos que executa. Por padrão, o cron envia qualquer saída gerada por um comando agendado para o e-mail do usuário que executou o comando. No entanto, você pode redirecionar a saída para um arquivo ou outro destino específico se preferir. Dessa maneira, tudo fica mais compreensível.

Redirecionar a saída padrão para um arquivo:
* * * * * /caminho/para/seu/script.sh > /caminho/para/seu/log.txt 


Redirecionar a saída padrão e a saída de erro para um arquivo:
* * * * * /caminho/para/seu/script.sh > /caminho/para/seu/log.txt 2>&1 


Redirecionar a saída padrão e a saída de erro para arquivos separados:
* * * * * /caminho/para/seu/script.sh > /caminho/para/seu/stdout.txt 2> /caminho/para/seu/stderr.txt 





6. Re: Configurar Crontab

aguamole
aguamole

(usa KUbuntu)

Enviado em 17/05/2024 - 11:02h

remove estes sudos e coloca o crontab para executar script como root. E por fim, bloqueie o acesso ao script para todos os usuários de menos o root, lembre-se que scripts de root devem ficar em /sbin/ portanto na pasta de usuário pode vem um ednei não autorizado e deletar o script.

Agora coisas que não é um erro, mas que não faz o menor sentido estar no seu script, uma coisa sem pé nem cabeça.
Para que esses echo sendo que o crontab executa tudo em background(2ª plano)? eles não vão aparecer em lugar nenhum.
Outra coisa, vc escreve no echo sucesso, mas como o programa vai saber se foi um sucesso sendo que não foi verificado o status da ultima execução, vc tem que fazer algo como "
if [[ $? == 0 ]]; then echo "sucesso"; else echo "erro"; fi 
"


7. Configurar Crontab

Ednei Tadeu Goncalves
edneigoncalves

(usa Outra)

Enviado em 17/05/2024 - 11:22h


amarildosertorio escreveu:

Seu script utiliza o sudo. Você configurou o sudoers com a flag "NOPASSWD"?


Ok, bem lembrado.

Inclui o meu usuario com root e inclui na configuração do crontab -u #user -e e retirei o sudo do script e funfou !!!

Valeu pessoal pela força.

Obrigado


8. Re: Configurar Crontab [RESOLVIDO]

Amarildo Sertorio dos Santos
amarildosertorio

(usa Fedora)

Enviado em 17/05/2024 - 17:18h

aguamole escreveu:

remove estes sudos e coloca o crontab para executar script como root. E por fim, bloqueie o acesso ao script para todos os usuários de menos o root, lembre-se que scripts de root devem ficar em /sbin/ portanto na pasta de usuário pode vem um ednei não autorizado e deletar o script.

Agora coisas que não é um erro, mas que não faz o menor sentido estar no seu script, uma coisa sem pé nem cabeça.
Para que esses echo sendo que o crontab executa tudo em background(2ª plano)? eles não vão aparecer em lugar nenhum.
Outra coisa, vc escreve no echo sucesso, mas como o programa vai saber se foi um sucesso sendo que não foi verificado o status da ultima execução, vc tem que fazer algo como "
if [[ $? == 0 ]]; then echo "sucesso"; else echo "erro" 
"


Conforme mencionado acima.

O crontab do Linux pode capturar a saída padrão (stdout) e a saída de erro padrão (stderr) dos comandos que executa. Por padrão, o cron envia qualquer saída gerada por um comando agendado para o e-mail do usuário que executou o comando. No entanto, você pode redirecionar a saída para um arquivo ou outro destino específico se preferir. Dessa maneira, tudo fica mais compreensível.


9. Re: Configurar Crontab [RESOLVIDO]

aguamole
aguamole

(usa KUbuntu)

Enviado em 17/05/2024 - 17:47h


amarildosertorio escreveu:

aguamole escreveu:

remove estes sudos e coloca o crontab para executar script como root. E por fim, bloqueie o acesso ao script para todos os usuários de menos o root, lembre-se que scripts de root devem ficar em /sbin/ portanto na pasta de usuário pode vem um ednei não autorizado e deletar o script.

Agora coisas que não é um erro, mas que não faz o menor sentido estar no seu script, uma coisa sem pé nem cabeça.
Para que esses echo sendo que o crontab executa tudo em background(2ª plano)? eles não vão aparecer em lugar nenhum.
Outra coisa, vc escreve no echo sucesso, mas como o programa vai saber se foi um sucesso sendo que não foi verificado o status da ultima execução, vc tem que fazer algo como "
if [[ $? == 0 ]]; then echo "sucesso"; else echo "erro" 
"


Conforme mencionado acima.

O crontab do Linux pode capturar a saída padrão (stdout) e a saída de erro padrão (stderr) dos comandos que executa. Por padrão, o cron envia qualquer saída gerada por um comando agendado para o e-mail do usuário que executou o comando. No entanto, você pode redirecionar a saída para um arquivo ou outro destino específico se preferir. Dessa maneira, tudo fica mais compreensível.

Estava escrevendo para ele sobre o shell, o crontab vcs já responderam, mas o garoto disse que esta estudando o shell e ai dei estas ideias sobre o shell, saca.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts