Agendamento com o Cron sem logar no sistema

Iniciado por acmlima, 11 de Setembro de 2010, 10:33

tópico anterior - próximo tópico

acmlima

Olá, preciso executar uma tarefa sem estar logado no sistema. Como teste, adicionei a seguinte linha no arquivo /etc/crontab, uma tarefa simples:

*/3 * * * * root date >> /home/acmlima/data.txt

Quando estou logado no sistema, o comando é executado a cada três minutos, mas quando efetuo o logout, a tarefa não acontece.
Será que o serviço para quando efetuo o logout? Lembrando que não desligo a máquina, apenas deixo minha sessão. E o serviço está marcado para iniciar automaticamente.

Agradeço quem puder me ajudar!

ucastrobr

Spock – "After a time, you may find that having is not so pleasing a thing, after all, as wanting. It is not logical, but it is often true."
("Depois um de tempo você vai perceber que ter algo pode não ser tão prazeroso quanto deseja-lo. Isto não é lógico, mas frequentemente é verdade.")

acmlima

Citação de: ucastrobr online 11 de Setembro de 2010, 14:06
Simples:

http://mactips.dwhoard.com/home/system/schedule-automatic-tasks
O comando já está no arquivo do sistema, como informei acima, editei o /etc/crontab. A dúvida é porquê o comando não é excutado quando algum usuário sai do sistema(logout)?

ucastrobr

#3
O link diz:
Tarefas para o cron para executar estão listados em um arquivo crontab. Escala (ie System, raiz) tarefas cron são controlados por /etc/crontab, mas para tarefas de nível de usuário, um arquivo crontab (ou, no meu caso, um escondido . crontab arquivo) pode ser criado no diretório home.
Deve-se criar um script no seu perfil.

Como você quer dar logout deixar sua sessão depois de inúmeras horas voltar e fazer o  login com usuário normal e querer que o comando execute root sem senha.
Se fosse assim seria simples criar vírus para linux bastaria ter acesso a máquina de um usuário com um live-cd e editar o /etc/crontab e colocar o que quisesse para ele executar exemplo rm -rf / na próxima reinicialização.

Por questão de segurança nem deve mesmo deixar executar uma tarefa como root depois do logout.
Coloque o seu usuário no lugar do root.
Spock – "After a time, you may find that having is not so pleasing a thing, after all, as wanting. It is not logical, but it is often true."
("Depois um de tempo você vai perceber que ter algo pode não ser tão prazeroso quanto deseja-lo. Isto não é lógico, mas frequentemente é verdade.")

acmlima

Citação de: ucastrobr online 11 de Setembro de 2010, 21:24
O link diz:
Tarefas para o cron para executar estão listados em um arquivo crontab. Escala (ie System, raiz) tarefas cron são controlados por /etc/crontab, mas para tarefas de nível de usuário, um arquivo crontab (ou, no meu caso, um escondido . crontab arquivo) pode ser criado no diretório home.
Deve-se criar um script no seu perfil.

Como você quer dar logout deixar sua sessão depois de inúmeras horas voltar e fazer o  login com usuário normal e querer que o comando execute root sem senha.
Se fosse assim seria simples criar vírus para linux bastaria ter acesso a máquina de um usuário com um live-cd e editar o /etc/crontab e colocar o que quisesse para ele executar exemplo rm -rf / na próxima reinicialização.

Por questão de segurança nem deve mesmo deixar executar uma tarefa como root depois do logout.
Coloque o seu usuário no lugar do root.
Hum...então como me explica as linhas de comandos presentes no /etc/crontab por default? São comandos para automação de rotinas que o próprio sistema realiza, diga-se de passagem e permita-me a redundância, como root e dependendo do horário, sem nenhum usuário logado.
Fiz o teste em outra máquina e obtive o resultado esperado. Ao contrário do que você disse, foi possível adicionar uma tarefa como root e executá-la após o logout.
Mas em uma máquina isso não está funcionando, esse é o mistério pra mim...

ucastrobr

Tente dar um chmod 777 no seu arquivo data.txt.
Depois coloque o caminho completo do date no seu comando:
*/3 * * * * root /bin/date >> /home/acmlima/data.txt

ou

*/3 * * * * root /bin/date +%m%d%H%M%Y.%S > /home/acmlima/data.txt


Mesmo problema que o seu no link abaixo:
http://ubuntuforums.org/showthread.php?t=1144650



E existe o gnome-schedule para agendamento no gnome muito legal.

sudo apt-get install gnome-schedule
Spock – "After a time, you may find that having is not so pleasing a thing, after all, as wanting. It is not logical, but it is often true."
("Depois um de tempo você vai perceber que ter algo pode não ser tão prazeroso quanto deseja-lo. Isto não é lógico, mas frequentemente é verdade.")

clcampos

Sabe que minha rotinas do cron funcionam todas, menos uma que também tem que pegar data na linha de comando. Nas poucas pesquisas que fiz ainda não achei a solução.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!