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}

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

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

RSS лента комментариев этой записи. TrackBack URI

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

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

Заведите блог на WordPress.com.