Observação: o pôster original perguntou "como posso fazer isso no cron". Atualizei a resposta para resolver isso.
-
Obtenha o script 'inscrever-se' e coloque-o em
~/bin/
:# download 'inscreen' script from https://gist.github.com/1019125 wget -O ~/bin/inscreen https://gist.github.com/gists/1019125/download chmod 755 ~/bin/inscreen
-
crie uma sessão de tela chamada 'cronjobs':
screen -d -m -S cronjobs
Você terá que providenciar para que isso aconteça em cada inicialização, ou adicione '--new-if-needed' a cada entrada do crontab abaixo.
-
Adicione entradas no cron usando
inscreen
, o crontab se parece com:PATH = /home/YOURNAME/bin:/usr/sbin:/usr/bin:/sbin:/bin * * * * * inscreen cronjobs -- sh -c 'echo $(date): start; sleep 30; echo $(date): end; sleep 4' 0 0 * * 0 inscreen cronjobs --keep-open --title reminder echo ==== CALL YOUR MOM ==== 0 0 * * 1 inscreen cronjobs --window 0 ls /tmp
O texto acima irá:
- a cada minuto, abra uma nova janela na sessão de tela 'cronjobs' que grava a data, dorme por 30 segundos e depois sai. A janela será fechada na saída.
- todos os domingos à meia-noite, abra uma nova janela com o título "lembrete" que diz "==== CHAMAR SUA MÃE ====" e exige que você pressione Enter para fechar a janela.
- todas as segundas à meia-noite, execute 'ls / tmp' na primeira janela da sessão 'cronjobs'. Note, no entanto, que nenhuma outra tarefa '--window 0' pode ser executada ao mesmo tempo.