создать резервную копию файла, используя дату и время в качестве имени файла - PullRequest
16 голосов
/ 27 декабря 2010

Как мне сделать это правильно. Я пытаюсь назвать файл sql, который производится mysqldump, в текущую дату и время. Я уже провел некоторые исследования на этом сайте и нашел здесь код: Как получить текущую дату и время в командной строке Windows в подходящем формате для использования в имени файла?

Пытался смешать его с моим текущим кодом, и я придумал этот. Файл назван в соответствии с текущей датой и временем, но имеет размер всего 1 КБ и не создает файл .sql. Предполагается, что это файл размером 7 КБ.

@For /f "tokens=2-4 delims=/ " %%a in ('date /t') do @(set mydate=%%c-%%a-%%b)
@For /f "tokens=1-2 delims=/:" %%a in ('time /t') do @(set mytime=%%a%%b)    

@echo mydate= %mydate%
@echo mytime= %mytime%

mysqldump -u root -p --add-drop-table --create-options --password= onstor >c:\%mydate%_%mytime%.sql

UPDATE Я не думаю, что есть проблема с командой mysqldump, так как она работает хорошо, когда я делаю это таким образом. Код ниже просто использует дату в качестве имени файла.

@For /F "tokens=2,3,4 delims=/ " %%A in ('Date /t') do @( 
    Set Month=%%A
    Set Day=%%B
    Set Year=%%C   
)    

@echo DAY = %Day%
@echo Month = %Month%
@echo Year = %Year%    

mysqldump -u root --add-drop-table --create-options --password= onstor >c:\%Day%-%Month%-%Year%.sql

Пожалуйста, помогите, спасибо.

Ответы [ 2 ]

34 голосов
/ 08 января 2011

В Linux просто введите $(date +%Y-%m-%d-%H.%M.%S), чтобы показать дату и время в имени файла, чтобы оно выглядело так:

mysqldump -u <user> -p <database> | bzip2 -c > <backup>$(date +%Y-%m-%d-%H.%M.%S).sql.bz2

(Эта команда также сжимает файл с помощью bzip2)

4 голосов
/ 27 декабря 2010

Я думаю, что синтаксис вашей команды mysqldump неправильный;

mysqldump -u root -p --add-drop-table --create-options --password= onstor

Вы используете -p и --pasword=, вы должны использовать только один параметрИ перед паролем есть пробел.

Просто попробуйте запустить команду mysqldump в командной строке, чтобы увидеть сообщения об ошибках.Либо добавьте 2>&1 в конце команды в пакетном файле.Тогда вы также увидите сообщения об ошибках в выходном файле.

mysqldump -u root --add-drop-table --create-options --password=onstor >c:\%mydate%_%mytime%.sql 2>&1
...