Todo usuário tem seu próprio crontab
.
Para vê-lo, basta digitar
crontab -l
e, sim, você viu direito, quando quiser adicionar um crontab
e simplesmente
crontab -e
pela primeira vez, você será perguntado sobre o editor para usar crontab
. Como você é um novato, como eu disse, recomendo usar o nano, é o editor mais simples de usar.
O crontab em si 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
Por exemplo, para acionar um trabalho a cada 15 minutos apenas na segunda-feira, faça-o assim
*/15 * * * mon /home/me/yourscript.sh
e SIM, é muito importante que você coloque seu cronjob no crontab do usuário que possui direitos suficientes para executá-lo.
Portanto, se 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. Sempre certifique-se de inserir o PATH completo para o que application/command/script
você está usando, porque o crontab não funcionará .bashrc
ou similar. Você sempre precisa informar ao cron onde ele pode encontrar os arquivos e diretórios.
Para responder ao restante de suas perguntas:
É claro que funcionará por conta própria, é para isso que serve. Mas você precisa verificar se o cronjob realmente faz isso ou se está faltando alguma coisa. Por exemplo, faça login em um arquivo de log para ver se ele realmente funciona.
E NÃO, não é necessário reiniciar. Normalmente, uma reinicialização com linux é necessária apenas se você instalar um novo kernel. Para usar, você precisará reiniciar. Quase tudo o mais pode ser feito sem a reinicialização no Linux. Claro que existem exceções, mas em geral essa afirmação está correta.
crontab -e
permite editar seu usuário crontab sem o sudo. Os crontabs do usuário estão em/var/spool/cron/crontabs
um diretório que não pode ser acessado sem a permissão do superusuário (mas de maneira que uma vez que o cron elimine privilégios, ele ainda poderá lê-lo). Mesmo se você usar o sudo para tentar editar o arquivo diretamente, você verá um grande aviso na parte superior, "NÃO EDITAR ESTE ARQUIVO" - o arquivo foi projetado para ser editado usando ocrontab
comando que usa uma cópia temporária/tmp
e depois instala depois de salvar.