crontab não automatiza o comando [RESOLVIDO]

1. crontab não automatiza o comando [RESOLVIDO]

Gustavo Henrique Nascimento de Chiato
nixtavo

(usa Ubuntu)

Enviado em 28/02/2022 - 16:48h

Olá galera, estou aqui hoje para tentar resolver um problema num programa que estou fazendo. Hoje eu estava um pouco entediado e resolvi procurar na internet coisas para fazer no linux, até que eu encontrei esse site de alguns comandos "legaiszinhos" https://canaltech.com.br/linux/11-comandos-divertidos-e-inuteis-para-usar-no-linux/
tive a ideia de testar alguns desses comandos e percebi (o site mostra) que dava pra juntar 2 desses comandos, o cowsay e o furtune. Baixei os pacotes dos dois, testei e a junção deu certo como podem ver em uma das imagens. Vi que deu certo e resolvi tentar criar um script que faz esse comando ao clicar no arquivo, fiz o arquivo no vi, salvei como .sh, dei permissão de executável e funcionou do mesmo jeito (vou anexar a execução do script). Com tudo isso feito resolvi fazer um cronjob para automatizar a tarefa a cada dia em alguns horários que eu coloquei e fazer com que a vaca me de conselhos todos os dias em certos horários. Porém quando deu o horário da cronjob ativar não apareceu nada, por favor deem uma olhada na crontab e falem se possível oquê eu fiz de errado.


  


2. adição

Gustavo Henrique Nascimento de Chiato
nixtavo

(usa Ubuntu)

Enviado em 28/02/2022 - 17:00h


Eu gostaria de ver no terminal o programa executando


3. Re: crontab não automatiza o comando

Buckminster
Buckminster

(usa Debian)

Enviado em 01/03/2022 - 20:11h

Os cinco primeiros campos são os parâmetros.
No /etc/crontab diz que o primeiro campo são os minutos, o segundo são as horas, o terceiro são os dias do mês, o quarto são os meses e o quinto campo é o dia da semana (domingo, segunda, etc).
E dá para colocar um intervalo como, por exemplo, 22-28 (que faz parte da última semana de um mês e engloba a segunda feira não importando o mês).

Sunday (domingo)=0 ou 7, então segunda (monday) é 1, terça é 2, quarta é 3, quinta é 4, sexta é 5, sábado é 6.
Por exemplo:
27 2 8 12 0-7 root root /home/gustavo/comandos_inuteis_divertidos/vaca_dos_conselho.sh

O comando acima será executado às 2 horas e 27 minutos do dia 8 do mês 12 em qualquer dia da semana que cair o dia 8 do mês.

Intervalos de números são permitidos. Os intervalos são dois números separados por um hífen. O intervalo especificado é inclusivo. Por exemplo, 8-11 para uma entrada "horas" especifica a execução nas horas 8, 9, 10 e 11.
Listas são permitidas. Uma lista é um conjunto de números (ou intervalos) separados por vírgulas. Exemplos: "1,2,5,9", "0-4,8-12".
O asterisco (*) significa primeiro-último, é a mesma coisa que 0-7 ou 1-31.

Do jeito que tu colocaste ficou para executar as 2 horas e 27 min, 8 hrs, 12, 16 e 20 horas e 27 minutos de todos os dias, provavelmente o cron se perdeu. Além disso faltou um ou dois root root (ou o usuário e o grupo do arquivo onde está o .sh) ali no meio.

Veja a man crontab:
# man crontab

Exemplo:
* 9,12,16 * * 0-7 root root /home/gustavo/comandos_inuteis_divertidos/vaca_dos_conselho.sh

O arquivo acima será executado todos os dias às 9 horas, ao meio-dia e às 16 horas. No lugar de 0-7 poderia ter colocado *.
Agora tu adapta para o que tu quer.


________________________________________________
Always listen the Buck!
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.



4. continuação

Gustavo Henrique Nascimento de Chiato
nixtavo

(usa Ubuntu)

Enviado em 14/03/2022 - 20:47h


Bem, esse não foi o problema em questão, mas consegui resolver depois de algumas pesquisar em fóruns gringos, minha interpretação do problema é que era necessário colocar na crontab do comando
gnome-terminal -- 
antes do comando. Pois o crontab irá criar um novo terminal.Também alterei o comando porque quando o executava, o mesmo fechava rapidamente, a resolução disso foi não deixar ele terminar colocando um "read a" no final do arquivo .sh, eu não fiquei muito esclarecido no porque de colocar DISPLAY=:0 mas coloquei mesmo assim. Agradeço sua atenção. As fontes são essas: https://askubuntu.com/questions/1277495/cron-job-that-outputs-hello-world-every-minute-to-the-termin...
https://askubuntu.com/questions/178334/avoid-the-yellow-message-at-the-top-of-the-gnome-terminal-win...

A foto do crontab e do sh depois:


5. Re: crontab não automatiza o comando [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 23/03/2022 - 19:43h

Entendi. Tu queria a execução em uma janela nova do terminal.
Resolveu com gnome-ternimal --

No caso de DISPLAY o número identifica a tela (tela, no caso, é uma coleção de monitores que compartilham um teclado e mouse).
:0 geralmente é a tela local (ou seja, a tela principal do computador quando você se senta na frente dele).
:1 é frequentemente usado por serviços como SSH quando você habilita o encaminhamento de exibição e faz login em um computador remoto,etc.

Com DISPLAY=0: está dizendo que é para excecutar o comando na tela principal do terminal do Gnome, grosso modo é isso.


________________________________________________
Always listen the Buck!
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts