Windows Server - резервное копирование каталогов и баз данных

На прошлой неделе у нас была проблема на работе, которая была бы решена, если бы у нас была запланированная задача.

В основном я хочу знать, что мне нужно создать командный файл, который выполняет следующие задачи на сервере Windows.

  • Резервное копирование веб-сайта (в основном, папки и всех его подкаталогов) в 8:30 каждое утро в определенную папку в формате websitename_year_month_day

  • Резервное копирование сайта (в основном папка и все ее подкаталоги)
    в 5:30 каждую ночь в определенную папку в формате websitename_year_month_day

  • Резервное копирование соответствующих БД в то же время в ту же папку, в которой находится резервная копия сайта.

Так, например, если сайт называется swade1987

Папка будет иметь эту файловую структуру, показанную во вложении.

http://imageshack.us/photo/my-images/254/screenclip1.png/

Тем не менее, в идеале я бы хотел, чтобы он сохранял только резервные копии за последние 7 дней.

Ждем ваших ответов о том, как лучше всего это сделать.

Если вам нужно больше разъяснений, дайте мне знать

Стивен

1 ответ

вот кусочки, которые вам нужны:

  1. get 7za.exe - бесплатная, автономная утилита сжатия Windows (Google для 7z командной строки, и вы найдете его).

  2. используйте файл sqlcmd.exe от microsoft для резервного копирования базы данных из командного файла (в mssql включен sql executor для командной строки)

Вот как называются ваши файлы: поскольку вы хотите сохранить только последние 7 дней, не указывайте дату в имени, добавьте аббревиатуру для даты недели в имени файла. например, website_mon.zip

Вот пример командного файла, который делает это. ИСПОЛЬЗУЙТЕ НА СВОЙ РИСК. это не было проверено. я просто придумал это с макушки головы. следуйте коду и комментариям и изменяйте по мере необходимости. я был бы шокирован, если бы не было опечатки или три. также следите за командами dos, которые вы добавляете / изменяете... если они содержат длинные имена файлов, вам может потребоваться добавить некоторые окружающие кавычки.

@echo off
set SHORTDATE=%DATE:~0,3%

set DB_ZIP_FILE=c:\backups\sitedb_%SHORTDATE%.zip
set WWW_ZIP_FILE=c:\backups\siterot_%SHORTDATE%.zip
set WEBSITE_DIR=c:\mysite\wwwroot

set SQL_FILE=c:\temp\backup.sql

rem * get rid of our old backups
rem * this is for our protection ... if there
rem * was a problem with a zip (corruption) 
rem * our backups will fail if we don't get rid
rem * of the old zips.
rem *
if exist %DB_ZIP_FILE% del %DB_ZIP_FILE%
if exist %DB_ZIP_FILE% del %WWW_ZIP_FILE%

rem * create a temp file containing the sql script
echo BACKUP DATABASE YOUR_DB_NAME> %SQL_FILE%
echo TO DISK='c:\temp\sitedb-%SHORTDATE%.bak'>>%SQL_FILE%
echo WITH FORMAT, Name='Daily sitedb %SHORTDATE%' >> %SQL_FILE%

echo %DATE% %TIME% backing up SITEDB
call sqlcmd -U YOURUSER -P YOURPASSWORD -i %SQL_FILE% > NUL

rem ** zip the files - we remove the old one before starting
call 7za a -tzip %ZIP_FILE% c:\temp\sitedb-%SHORTDATE%.bak

rem ** delete the bak file
del c:\temp\sitedb-%SHORTDATE%.bak

rem ** now zip up our web site directory
7za a -tzip -r %WEBSITE_DIR% %WWW_ZIP_FILE%
Другие вопросы по тегам