Logo Hardware.com.br
neodarkman
neodarkman Veterano Registrado
921 Mensagens 35 Curtidas

[Resolvido] Agendamento de tarefas com Cron

#1 Por neodarkman 15/02/2014 - 20:06
Olá..

Tenho o script snapshot.sh

#!/bin/sh

DATA=`date +%Y-%m-%d-%H.%M`
/usr/bin/import -window root /home/neodarkman/KeyLOG/temp/screen-$DATA.jpg


Fiz um gendamento no crontab -e

1 * * * * /home/neodarkman/KeyLOG/temp/./snapshot.sh

Para que ele fosse executado uma vez por minuto.
Ele até é executado, mas não é gravado o screenshot da tela....

Se executo o script diretamente num terminal, funciona e tenho o screenshot.
No log do sistema temos apenas:

Feb 15 07:45:01 corei7iG3-Aspire-V3-571 CRON[16807]: (neodarkman) CMD (/home/neodarkman/KeyLOG/temp/snapshot.sh)

Mas não há o screenshot em /home/neodarkman/KeyLOG/temp/
O que pode estar errado?
Kubuntu 13.04
neodarkman
neodarkman Veterano Registrado
921 Mensagens 35 Curtidas
#3 Por neodarkman
15/02/2014 - 22:28
fiz uma alteração no crontab... mas não adiantou.

esse é o meu crontab:
[code=rich]
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

# TESTE DE SCREENSHOT
#M -mês;ds-dia da semana 1-7 seg-dom
#m h d M ds user comando
* * * * * neodarkman /home/neodarkman/KeyLOG/temp/./snapshot.sh


[/code]em vez de:
1 * * * * /home/neodarkman/KeyLOG/temp/./snapshot.sh

coloquei:
* * * * * neodarkman /home/neodarkman/KeyLOG/temp/./snapshot.sh

mas fiquei na mesma, não gera o screenshot.
Lembre-se só Deus salva... o homem faz backup.isso_ai.png

Corei5-10th - 16Gb DDR4 - Kubuntu 20.04/win10Pro
Acer Aspire Corei5-10th - 12Gb DDR4 Kubuntu 20.04 -Main
Linux User # 156897
jqueiroz
jqueiroz Cyber Highlander Registrado
104K Mensagens 5.7K Curtidas
#4 Por jqueiroz
16/02/2014 - 05:11
Não mexa no crontab central.

Seu problema é que vc está tentando mexer no ambiente gráfico, a partir de um ambiente não-interativo.

Pra começar, vc precisa passar pro teu script em qual DISPLAY ele vai trabalhar --- ou seja, precisa passar pra ele o valor dessa variável de ambiente. Depois, vc precisa se certificar de que esse programa terá acesso a esse display, e isso normalmente só acontece com processos do mesmo usuário. Significa que vc vai precisar mexer alguma coisa com xauthority, dependendo do que pretenda fazer.
"chmod 777 nunca ajudou ninguém" (c) 2002-2021 JQueiroz/FGdH
Conheça o Blog do Zekke
neodarkman
neodarkman Veterano Registrado
921 Mensagens 35 Curtidas
#5 Por neodarkman
16/02/2014 - 20:30
agendei usando o crontab -e e fiz as modificações:


#! /bin/sh

DATA=`date +%Y-%m-%d-%H.%M`

DISPLAY=:0 /usr/bin/import -window root /home/neodarkman/KeyLOG/temp/screen-$DATA.jpg
#sleep 60

mas ainda assim não produz o screenshot...
Lembre-se só Deus salva... o homem faz backup.isso_ai.png

Corei5-10th - 16Gb DDR4 - Kubuntu 20.04/win10Pro
Acer Aspire Corei5-10th - 12Gb DDR4 Kubuntu 20.04 -Main
Linux User # 156897
neodarkman
neodarkman Veterano Registrado
921 Mensagens 35 Curtidas
#7 Por neodarkman
17/02/2014 - 08:17
jqueiroz disse:
Veja na sua caixa postal, com o comando mutt, se houve alguma saída de erro do script.

É isso que eu não entendo...
Se executo o script diretamente ele funciona numa boa.
Mas executado via cron, já não funciona.
Lembre-se só Deus salva... o homem faz backup.isso_ai.png

Corei5-10th - 16Gb DDR4 - Kubuntu 20.04/win10Pro
Acer Aspire Corei5-10th - 12Gb DDR4 Kubuntu 20.04 -Main
Linux User # 156897
jqueiroz
jqueiroz Cyber Highlander Registrado
104K Mensagens 5.7K Curtidas
#8 Por jqueiroz
17/02/2014 - 08:54
Pois é, isso é um problema muito comum. As pessoas pensam que rodar um script no crontab é igual a rodá-lo via comando, não é. As variáveis de ambiente são outras, o acesso aos gráficos é mais difícil --- principalmente se o usuário que estiver em sessão no console no momento não for o mesmo que executa o agendamento do cron (mesmo que este seja o root).
"chmod 777 nunca ajudou ninguém" (c) 2002-2021 JQueiroz/FGdH
Conheça o Blog do Zekke
neodarkman
neodarkman Veterano Registrado
921 Mensagens 35 Curtidas
#10 Por neodarkman
17/02/2014 - 10:46
Marcos FRM disse:
Vá que esse programa não interprete a variável DISPLAY. Tente com a opção -display. Da man page: -display


Olá.... Agora funcionou!!!
Bastou eu colocar em snapshot.sh:

[code=rich]
#! /bin/sh
DATA=`date +%Y-%m-%d-%H.%M`
/usr/bin/import -display :0 -window root /home/neodarkman/KeyLOG/temp/screen-$DATA.jpg
[/code]e agendar via kcron:
[code=rich]
* * * * * /home/neodarkman/KeyLOG/temp/snapshot.sh
[/code]Obrigado a todos que sugeriram algo.
[]'s
Lembre-se só Deus salva... o homem faz backup.isso_ai.png

Corei5-10th - 16Gb DDR4 - Kubuntu 20.04/win10Pro
Acer Aspire Corei5-10th - 12Gb DDR4 Kubuntu 20.04 -Main
Linux User # 156897
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal