Adicionando tarefa no crontab

1

Estou usando um ambiente Linux (Ubuntu 9. alguma coisa). Eu usei o seguinte comando:

crontab -u myusername /home/myusername/test_cron_file

Funciona muito bem. Quando eu verificar a pasta de spool, tudo é como deveria ser.

Aqui está o problema. E se eu quiser usar um arquivo adicional, digamos, por exemplo, test_cron_file_2 ? Eu só quero acrescentar esse arquivo ao mesmo usuário. Como eu faço isso?

    
por willbeeler 01.02.2010 / 16:27

4 respostas

2

Tente isto:

cat /home/myusername/test_cron_file_2 >> /home/myusername/test_cron_file
crontab -u myusername /home/myusername/test_cron_file
    
por 01.02.2010 / 16:31
2

Crie primeiro um arquivo separado e execute o crontab

cat /home/myusername/test_cron_file /home/myusername/test_cron_file2 > test_cron_file3
crontab -u myusername test_cron_file3
    
por 01.02.2010 / 16:32
2
O

cron não quer trabalhar com seus arquivos. Ele tem uma lista de entradas por usuário, e você pode enviar essa lista de entradas editando um arquivo, mas a lista his , não a sua; e não há uma opção para especificar várias listas.

O que você quer fazer constitui um risco de segurança horrível, mas isso já está implícito quando você está trabalhando com PHP, por isso vou mencioná-lo brevemente aqui e calar a boca sobre isso.

Você pode permitir que cada um de seus usuários edite o próprio arquivo. Você atribui um nome de arquivo a cada usuário e dá a eles algum acesso a ele para que possam editá-lo. Mas assim como crontab fornece a capacidade de atualizar sua tabela quando você executa crontab -e , você terá que fornecer alguma funcionalidade para atualizar a lista de crontab quando o usuário terminar de editar seu arquivo. Você poderia fornecer um script CGI ou PHP para fazer isso a partir do navegador, se quiser.

Esse script precisará mesclar todos os arquivos de usuário existentes em um ( cat principalmente cuidará disso, você só precisará garantir que cada arquivo termine com uma nova linha) e, em seguida, poderá usar crontab <file> para atualize o crontab combinado da versão mais recente do arquivo combinado.

    
por 01.02.2010 / 16:47
0

Bem, o que eu estava tentando fazer era algo um pouco mais complicado envolvendo PHP. No entanto, os dois caras que comentaram estão corretos. Isso realmente não pode ser feito.

Para responder minha pergunta sobre o PHP, eu preciso acrescentar ao arquivo /etc/cron.d/anacron, todas as linhas que eu quero mostrar. Essa é a explicação mais fácil que encontrei para fazer o que eu quero.

obrigado a todos que responderam.

    
por 01.02.2010 / 16:49

Tags