A Agenda de tarefas do CMD do Windows Server 2008 não está em execução

3

Eu tenho um arquivo BAT / CMD que, quando executado a partir do prompt de comando, é executado completamente. Quando eu o executo através do Agendador de Tarefas, ele é executado parcialmente.

Aqui está uma cópia do arquivo

cd\sqlbackup
ren Apps_Backup*.* Apps.Bak
ren Apps_Was_Backup*.* Apps_Was.Bak
xcopy /Y c:\sqlbackup\*.bak c:\sqlbackup\*.bak
xcopy /y c:\sqlbackup\*.bak \igweb01\c$\sqlbackup\*.bak
Move /y c:\sqlbackup\*.bak "\igsrv01\d$\sql backup\"

As duas últimas linhas não são executadas quando o agendador de tarefas a chama. Mas, novamente, trabalhe quando for executado manualmente a partir da linha de comando.

Todos os comandos do sever local são executados, mas quando se trata das duas últimas linhas em que ele vai para outro servidor, ele não funciona.

    
por Matt Simmons 18.02.2010 / 16:57

3 respostas

3

Parece que sua conta de usuário de tarefa agendada não tem direitos para gravar em \igweb01\c$\sqlbackup e \igsrv01\d$\sql backup .

    
por 18.02.2010 / 17:38
0

Atualmente, Administrador é a conta que estou usando. O mesmo nome de usuário e senha nos três servidores. Eu pensei usando o administrador para a tarefa iria aliviar esse problema.

Acabei de testar usando um agendador de terceiros e funcionou perfeitamente. não tenho certeza do que há com o Agendador de Tarefas

    
por 18.02.2010 / 21:07
0

2 observações:

eu. em um winxp vm eu tenho à mão, a sintaxe para xcopy é xcopy source dest / switches, não xcopy / switches source dest como você tem lá.

II. move.exe neste vm quer ter uma letra de unidade em vez de um caminho unc. Tente mapear o compartilhamento para uma letra de unidade e mover os arquivos para a letra da unidade em vez de para o caminho unc;

2 sugestões:

eu. verificar o arquivo de log de tarefas agendadas (quando você vai para tarefas agendadas, está no menu de ferramentas, eu acho), quem sabe, pode até dizer o que deu errado;

II. ao criar scripts, sempre verifica os níveis de retorno de suas ações. Se o script em lote não suporta isso, use outra linguagem de script (eu faria isso em Perl, eu entendo a maioria dos administradores do Windows que o script usa Powershell nos dias de hoje).

Antes de usar uma linguagem de script adequada, pelo menos escreva um arquivo de log do que aconteceu redirecionando a saída padrão e erro para ele. Dessa forma, você sempre poderá ver quando algo aconteceu o que aconteceu.

    
por 18.02.2010 / 22:42