Ouvi dizer que o crontab é uma boa escolha, mas como escrevo a linha e onde a coloco no servidor?
144
Aqui está um bom tutorial sobre o que é o crontab e como usá-lo no Ubuntu. Sua linha de crontab será mais ou menos assim:
00 00 * * * ruby path/to/your/script.rb
( 00 00
indica meia-noite - 0 minutos e 0 horas - e os *
significam todos os dias de cada mês.)
Sintaxe: comando mm hh dd mt wd mm minuto 0-59 hh hora 0-23 dd dia do mês 1-31 mt mês 1-12 wd dia da semana 0-7 (domingo = 0 ou 7) comando: o que você deseja executar todos os valores numéricos podem ser substituídos por *, o que significa que todos
/etc/crontab
(no Ubuntu), mas quando você executa,crontab -e
você está editando um crontab específico do usuário, que não permite esta coluna. O IIRC Ubuntu desencoraja a saída/etc/crontab
manual porque pode ser substituído. Veja aqui: stackoverflow.com/questions/8475694/…sudo crotab -u root -e
na página do manual
É bom observar os "apelidos" especiais que podem ser usados (documentados na página de manual), particularmente o "@reboot", que não tem data e hora alternativas.
Você também pode usar esse truque para executar seu trabalho cron várias vezes por minuto.
Para adicionar um trabalho cron, você pode fazer uma de três coisas:
adicione um comando ao crontab de um usuário, como mostrado acima (e no crontab, seção 5, página de manual).
crontab -e -u <username>
crontab -e
EDITOR
variável de ambienteenv EDITOR=nano crontab -e -u <username>
export EDITOR=vim
crontab -e
chmod a+x <file>
crie um script / programa como um trabalho cron e adicione-o aos
/etc/cron.*ly
diretórios anacron do sistemachmod a+x /etc/cron.daily/script_runs_daily.sh
- torná-lo executávelman anacron
chmod a+x <file>
/etc/crontab
ou/etc/anacrontab
executados em um horário definido/etc/anacrontab
e definem cron.hourly em/etc/cron.d/0hourly
Ou, pode-se criar crontables do sistema
/etc/cron.d
./etc/cron.d
não precisam ser executáveis.someuser
e o uso de/bin/bash
como o shell é forçado.fonte
Às vezes, você precisará especificar PATH e GEM_PATH usando o crontab com rvm.
Como isso:
fonte
Guia rápido para configurar um trabalho cron
Crie um novo arquivo de texto, por exemplo: mycronjobs.txt
Para cada trabalho diário (00:00, 03:45), salve as linhas de programação em mycronjobs.txt
Envie as tarefas para o cron (sempre que você executa isso, o cron exclui o que foi armazenado e é atualizado com as novas informações em mycronjobs.txt )
Informações Úteis Extra
Ver trabalhos cron atuais
Remova todos os trabalhos cron
fonte
Você pode executar o shell script de duas maneiras, usando a tarefa cron ou escrevendo um shell script
Vamos supor que o nome do seu script seja "herscript.sh"
Primeiro verifique a permissão do usuário do script. use o comando abaixo para verificar a permissão do usuário do script
ll script.sh
Se o script estiver na raiz, use o comando abaixo
sudo crontab -e
Segundo, se o script contiver o usuário "ubuntu", use o comando abaixo
crontab -e
Adicione a seguinte linha no seu crontab: -
55 23 * * * /path/to/yourscript.sh
Outra maneira de fazer isso é escrever um script e executá-lo no backgroud
Aqui está o script no qual você deve colocar o nome do script (por exemplo: - youscript.sh), que será executado às 23:55 todos os dias
#!/bin/bash while true do /home/modassir/yourscript.sh sleep 1d done
salve-o em um arquivo (vamos chamá-lo de "todos os dias.sh")
sleep 1d - significa que aguarda um dia e depois roda novamente.
Agora, dê a permissão para o seu script.use abaixo do comando: -
chmod + x todos os dias.sh
agora, execute esse shell script em segundo plano usando "nohup". Isso continuará executando o script mesmo após o logout da sua sessão.
use o comando abaixo para executar o script.
nohup ./every-day.sh &
Nota: - para executar "YOURScript.sh" às 23:55 todos os dias, é necessário executar o script "every-day.sh" exatamente às 23:55.
fonte
Coloque esta frase em um arquivo crontab: 0 0 * * * / usr / local / bin / python /opt/ByAccount.py> /var/log/cron.log 2> & 1
fonte