O problema é que você está usando algo que não deveria ser usado, na verdade. Você também tem dois objetivos conflitantes: "executar o programa 2 após o programa 1" e "executar o programa 2 às 17h de 12 de janeiro".
Uma parte do seu problema é simples de resolver: at permite vários comandos. Portanto, em vez de usar apenas at para agendar o script sas , você também pode colocar o rm no trabalho.
at 5:00 PM JAN 11 <<EOJ
sas program1.sas
rm file1.sas7bdat file2.sas7bdat file3.sas7bdat file4.sas7bdat file5.sas7bdat
EOJ
Não há motivo para o & na linha sas ; at sempre executa trabalhos "em segundo plano".
Em seguida, você deve descobrir como deseja resolver o conflito mencionado anteriormente. Em particular, se o trabalho de 11 de janeiro não tiver terminado 24 horas depois (até as 17h de 12 de janeiro). Existem algumas maneiras de fazer isso:
- Não é realmente o trabalho de 12 de janeiro. Deve ser executado assim que o programa1.sas terminar. Nesse caso, faça parte do primeiro trabalho acima, assim como o
rm. - Isso nunca acontecerá. Em caso afirmativo, você irá corrigi-lo manualmente. Nesse caso, basta agendá-lo como o acima.
- Precisa esperar. Nesse caso, você pode programá-lo no final do primeiro no trabalho, ou usar um arquivo de bloqueio ou calcular a quantidade adequada de tempo para dormir (ou usar
sleepenh, se disponível, para evitar fazer o cálculo) .