Como executo um arquivo de lote em uma hora específica?

0

Eu tentei usar os comandos batch e at sem sorte. Eu tenho um arquivo em lotes em um local, digamos "$ DD / batchfile.batch". Aqui está o que eu tentei.

batch -f $DD/batchfile.batch 10:00 today
at -f $DD/batchfile.batch 10:00 today

Enquanto ele adiciona o trabalho, e eu posso vê-lo em atq , ele não parece executar o lote. Quando chega a hora, nada acontece e o lote é removido da fila. Se eu executar o arquivo em lote sozinho em um terminal, ele será executado corretamente.

Alguma idéia?

    
por user18338 18.08.2015 / 17:00

1 resposta

1

Eu acho que o seu sistema operacional é um pouco do Linux.

Certifique-se de que seu arquivo $DD/batchfile.batch exista e seja legível & executável.

Acredito que o seu trabalho lote (1) foi iniciado. Talvez ele seja encerrado rapidamente (por exemplo, porque PATH para trabalhos em lote talvez não seja seu% co_de interativo %, ou porque seu ambiente não é o mesmo que em shells interativos - veja environ (7) ). Você pode iniciar seu script com algum comando logger (1) para obter alguma mensagem de log em seus logs do sistema e / ou algumas impressões redirecionadas no início. Você também pode iniciar seu trabalho em lote com algo como

 /bin/date +"start of my batch %c%n" > /tmp/batchstart.stamp
 echo path is $PATH >> /tmp/batchstart.stamp
 /usr/bin/printenv >> /tmp/batchstart.stamp

e verifique mais tarde que PATH existe e procure dentro dele usando algum editor (como /tmp/batchstart.stamp ou emacs ) ou pager (como gedit )

BTW, less , batch & Os trabalhos do crontab (5) geralmente enviam email (para sua conta no máquina local ). Você instalou algum servidor SMTP (talvez simples) em sua máquina local? Você tem uma conta de e-mail válida ou alias (por exemplo, em at )?

Além disso, observe os arquivos de registro do sistema (geralmente, em /etc/aliases , por exemplo, /var/log/ ou /var/log/messages ou /var/log/syslog ou /var/log/daemon.log )

    
por 18.08.2015 / 17:59