Qual é a maneira correta de editar um arquivo crontab?

36

Estou tentando automatizar a atualização do awstats para o meu servidor e entendo que preciso usar o cron para configurá-lo. Então cada usuário tem um arquivo crontab?

Eu estava seguindo as instruções aqui community / AWStats

E diz para ir para o arquivo em: /etc/crontab

Esse arquivo já tem algumas informações nele. Este é o arquivo principal crontab ou algo assim? Eu vi algumas instruções on-line para usar o arquivo que aparece com crontab -e .

Qual é o arquivo correto a ser usado e a melhor maneira de fazer isso?

Se eu agendar uma tarefa como meu usuário não-root, ela será executada automaticamente no intervalo de tempo especificado, sem problemas?

Precisarei reiniciar o servidor depois de salvar o trabalho cron no arquivo crontab antes que ele comece a funcionar?

    
por timbram 16.04.2015 / 06:16

2 respostas

35

  

Qual é o arquivo correto a ser usado e a melhor maneira de fazer isso?

crontab -e é a melhor maneira de fazer isso - isso permitirá que você edite facilmente os crontabs por usuário.

  

Se eu agendar uma tarefa como meu usuário não-root, ela será executada automaticamente no intervalo de tempo especificado, sem problemas?

Sim, e ele será executado com os privilégios dessa conta de usuário.

Como um princípio, é melhor executar tarefas agendadas com os privilégios mais baixos que você pode obter, então se o que você está fazendo não requererá root, não use root. Se você não precisa nem mesmo acessar os arquivos e pastas da sua sua , então você pode criar um novo usuário e usar essa conta de usuário somente para essa tarefa. Por outro lado, se sua tarefa requer exigir root, use o crontab do root ( su / sudo su para root e use crontab -e ).

  

Precisarei reiniciar o servidor depois de salvar o trabalho cron no arquivo crontab antes que ele comece a funcionar?

Não, ele começará a funcionar imediatamente (bem, na próxima hora agendada possível).

    
por thomasrutter 16.04.2015 / 08:06
14

Todo usuário tem seu próprio crontab .

Para ver, basta digitar

crontab -l

e, sim, você viu certo, quando quiser adicionar um crontab , basta fazer

crontab -e

Pela primeira vez, você será perguntado sobre o editor para usar com crontab . Como você é um novato como você diz, eu recomendo usar o nano, é o editor mais simples de usar.

O próprio crontab funciona assim

MIN =  Minute 0-60
HOUR = Hour [24-hour clock] 0-23
MDAY = Day of Month 1-31
MON = Month 1-12 OR jan,feb,mar,apr ...
DOW =  Day of Week 0-6 OR sun,mon,tue,wed,thu,fri,sat
COMMAND = Command to be run Any valid command-line

Então, por exemplo para acionar um trabalho a cada 15 minutos somente na segunda-feira, você faz assim

*/15 * * * mon /home/me/yourscript.sh

e sim é muito importante que você coloque seu cronjob no crontab do usuário que tem direitos suficientes para executá-lo.

Portanto, se o seu script precisar ser root ou um usuário especial, certifique-se de su para esse usuário e adicione o cronjob lá.

Também é muito importante!

cronjob é burro! Sim eu disse isso. Certifique-se sempre de inserir o PATH completo para o application/command/script que você está usando, porque o crontab não funcionará com .bashrc ou similar. Você sempre tem que certificar-se de dizer ao cron onde ele pode encontrar os arquivos e diretórios.

Para responder ao resto das suas perguntas:

É claro que funcionará sozinho, é para isso que serve. Mas você precisa verificar se o cronjob realmente faz isso, ou se está faltando alguma coisa. Por exemplo. faça o login em um arquivo de log para ver se ele realmente funciona.

E NÃO, uma reinicialização não é necessária. Uma reinicialização com o Linux normalmente só é necessária se você instalar um novo kernel. Para isso, você precisaria reiniciar. Quase tudo o mais pode ser feito sem reiniciar no Linux. Claro que existem exceções, mas em geral esta afirmação está correta.

    
por s1mmel 16.04.2015 / 07:26

Tags