windows 7 agenda de tarefas / mysqldump

0

Eu criei um arquivo em lotes para criar um despejo de um banco de dados e salvá-lo em um arquivo com a data atual como parte do nome do arquivo. O arquivo em lotes funciona de forma brilhante e todos os dados são salvos corretamente.

Eu agora tentei configurar uma tarefa agendada para fazer isso semanalmente, mas me deparei com um problema: embora a tarefa seja executada, o arquivo que ela cria está vazio, como se não tivesse extraído nenhum dado do banco de dados remoto. Eu sei que é muito vago, mas alguém pode dizer onde eu começaria a procurar uma razão / solução?

** EDIT **

Certo, mais progresso - parece que pode ser um problema de caminho Eu coloquei uma pausa no arquivo de lote, e quando executado através do agendador de tarefas, ele diz: 'mysqldump não é um programa reconhecido'. No entanto, quando executado através da linha de comando na minha conta de usuário, funciona bem; apenas para confirmar, configurei-o para a mesma conta de usuário em que o testei.

** EDIT 2 **

Eu encontrei um tipo de solução: Eu tive que referenciar o aplicativo mysqldump pelo seu caminho absoluto. No entanto, ainda não consigo entender por que ele pode encontrar mysqldump a partir do caminho quando executado diretamente a partir da linha de comando, mas não quando automatizado através do agendador de tarefas.

    
por richzilla 01.11.2010 / 18:09

3 respostas

1

Talvez a rede não estivesse disponível? Você poderia tentar agendá-lo para rodar a cada 5/10 minutos e ver se os comandos / variáveis estão corretos. Tem certeza de que o script é executado corretamente quando executado como um todo e não apenas um único comando de cada vez?

Em sua edição 2: Parece que o mysqldump não está presente nas variáveis de ambiente PATH . Tente adicionar isso e tente novamente.

    
por 01.11.2010 / 21:40
0

Já tentou executar o mysqldump (na sua tarefa agendada) no modo verbose? (--verbose)

Além disso, talvez veja em qual usuário sua tarefa está sendo executada, certifique-se de que o usuário tenha permissões para executar o mysqldump e criar um arquivo no diretório de destino.

    
por 01.11.2010 / 22:27
0
  1. Se o caminho absoluto tiver solucionado seu problema, não será possível criar um arquivo vazio. Em vez disso, nenhum arquivo criado com o log do Windows Scheduler mostra o trabalho bem-sucedido.

  2. Seu script pode funcionar na linha de comando, se a variável de caminho contiver as informações do caminho para mysqldump.exe. Verifique-o dando o comando "path" à linha de comando.

  3. Para sua referência, aqui está o arquivo de lote de amostra que usei para o backup do mysql.

@echo off
SET DB_USER_ID=[id]  
SET DB_USER_PASS=[password]
SET DATABASE=[database name]
SET EXP_PATH=[backup path]
SET EXP_TMP_PATH=[temp path]
SET FILE_NAME=[backup filename]
For /f "tokens=1-3 delims=- " %%a in ('date /t') do (set today=%%a-%%b-%%c)

del /S /Q %EXP_PATH%
md %EXP_PATH%
md %EXP_TMP_PATH%

C:\Bitnami\redmine-2.5.2-0\mysql\bin\mysqldump.exe -u%DB_USER_ID% -p%DB_USER_PASS% %DATABASE% > %EXP_TMP_PATH%\%FILE_NAME%_%today%.sql
move %EXP_TMP_PATH%\%FILE_NAME%_%today%.sql %EXP_PATH%\%FILE_NAME%_%today%.sql
    
por 14.10.2014 / 12:38