Zorion’s Weblog

2008 Апрель 14,

Выборочный бэкап Sharepoint – оптимизация скрипта

Рубрика: PowerShell, Sharepoint — zorion @ 10:28

Благодаря xaegr скрипт был не много оптимизирован.

Во-первых удаление файлов старше семи дней. На мой взгляд, (а я далёк от програмирования очень сильно) тут всё верно. Берутся все файлы и каждый из них проверяется, старше или нет, если старше, то удалить, если нет, то пропустить. Но с точки зрения PoSh тут всё гораздо проще. Не нужно перебирать файлы, надо сразу выбрать те которые не соответствуют и потом удалить их. Вот что было

get-childitem c:\backup_portal\sites |

foreach-object {if ($_.creationtime -lt (get-date).AddDays(-7)) {remove-item c:\backup_portal\sites\$_}}

и вот что получилось

get-childitem c:\backup_portal\sites | where-object {$_.creationtime -lt (get-date).AddDays(-7)} | remove-item

Ну и формирование даты. Этого я просто не знал

$file = «c:\backup_portal\sites\»+$date.year+»-»+$date.month+»-»+$date.day+»-»+$_+».bak»

заменяется на

$file = «C:\backup_portal\sites\{0:yyyy-M-dd}-$_.bak» -f (get-date)

итого весь скрипт

# Удаляем файлы старше недели
get-childitem c:\backup_portal\sites | where-object {$_.creationtime -lt (get-date).adddays(-7)} | remove-item
# Берём список сайтов из файла и каждый сайт экспортируем
Get-Content «c:\backup_portal\list.txt» | ForEach-Object {
$date = Get-Date
$file = «C:\backup_portal\sites\{0:yyyy-M-dd}-$_.bak» -f (get-date)
$url = «http://portal/$_»
./stsadm.exe -o export -url $url -filename $file}

No Comments Yet »

Комментариев нет.

RSS-лента комментариев к этой записи. URI для обратной ссылки

Оставить комментарий

Вы, должно быть, зарегистрированный, авторизованный отправить комментарий.

Блог на WordPress.com.