Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Унифицировать Скрипт копирования

Ответить
Настройки темы
PowerShell - [решено] Унифицировать Скрипт копирования

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Всем привет. Помогите Унифицировать скрипт копирования бекапов 1с.
- Скрипт копирует файлы бекапов баз 1с (.dt или .zip) на сетевую шару
- Проверяет наличие скопированного файла на шаре
- Отправляет письмо о недостующих (не случившихся) бекапах
-------------------------------
Базы прибавляются слишком быстро, уже около 30. И просто неудобно каждый раз добавлять новую строку в скрипт.

Код: Выделить весь код
$date = (Get-Date -uformat "%d.%m.%Y")
$a = $b = $c = $d = $e = $f = $g = $h = $i = $j = $k = $m = $n = $o = $p = $q = $r = $s = $t = $x = $v = $u = $buh<HIDE> = $zup<HIDE> = $alpha = 0

copy-item c:\BackUP_1C\Alpha_<HIDE>\BackupTmp.zip \\<HIDE>\backup\1c\Alpha\Alpha_<HIDE>_$date.zip
copy-item c:\BackUP_1C\buh8\*.dt \\<HIDE>\backup\1c\buh8\Buh8_<HIDE>_$date.dt
copy-item c:\BackUP_1C\buh82\*.dt \\<HIDE>\backup\1c\buh82\Buh82_<HIDE>_$date.dt
copy-item c:\BackUP_1C\buhCKS8\BackupTmp.dt \\<HIDE>\backup\1c\buhCKS8\BuhCKS8_<HIDE>_$date.dt
copy-item C:\BackUP_1C\BuhCKS82\*.dt \\<HIDE>\backup\1c\BuhCKS82\BuhCKS82_<HIDE>_$date.dt
copy-item c:\BackUP_1C\crm\BackupTmp.dt \\<HIDE>\backup\1c\crm\CRM_<HIDE>_$date.dt
copy-item c:\BackUP_1C\eco\*.dt \\<HIDE>\backup\1c\eco\ECO_<HIDE>_$date.dt
copy-item c:\BackUP_1C\Kandidat\BackupTmp.dt \\<HIDE>\backup\1c\Kandidat\Kandidat_<HIDE>_$date.dt
copy-item c:\BackUP_1C\kredit\BackupTmp.dt \\<HIDE>\backup\1c\kredit\Kredit_<HIDE>_$date.dt
copy-item c:\BackUP_1C\orgteh\*.dt \\<HIDE>\backup\1c\orgteh\Orgteh_<HIDE>_$date.dt
copy-item c:\BackUP_1C\SpecOdejda\BackupTmp.zip \\<HIDE>\backup\1c\SpecOdejda\SpecOdejda_<HIDE>_$date.zip

copy-item c:\BackUP_1C\Strah\BackupTmp.zip \\<HIDE>\backup\1c\strah\Strah_<HIDE>_$date.zip
copy-item c:\BackUP_1C\traktir\*.dt \\<HIDE>\backup\1c\traktir\Traktir_<HIDE>_$date.dt
copy-item c:\BackUP_1C\ZikBuh\BackupTmp.zip \\<HIDE>\backup\1c\zikbuh7\ZikBuh7_<HIDE>_$date.zip
copy-item C:\BackUP_1C\ZikCKS7\BackupTmp.zip \\<HIDE>\backup\1c\zikCKS7\ZikBuhCKS7_<HIDE>_$date.zip
copy-item C:\BackUP_1C\zikeco\BackupTmp.dt \\<HIDE>\backup\1c\zikeco\ZikECO_<HIDE>_$date.dt
copy-item C:\BackUP_1C\zik<HIDE>NM\BackupTmp.zip \\<HIDE>\backup\1c\zik<HIDE>NM\Zik<HIDE>NM_<HIDE>_$date.zip
copy-item C:\BackUP_1C\Zik<HIDE>MY\BackupTmp.zip \\<HIDE>\backup\1c\Zik<HIDE>MY\Zik<HIDE>MY_<HIDE>_$date.zip
copy-item C:\BackUP_1C\zik<HIDE>RA\BackupTmp.zip \\<HIDE>\backup\1c\zik<HIDE>RA\Zik<HIDE>RA_<HIDE>_$date.zip
copy-item C:\BackUP_1C\ZupEco82\*.dt \\<HIDE>\backup\1c\ZupEco82\ZupEco82_<HIDE>_$date.dt
copy-item C:\BackUP_1C\BuhAru82\*.dt \\<HIDE>\backup\1c\BuhAru82\BuhAru82_<HIDE>_$date.dt
copy-item c:\BackUP_1C\ZikAru\BackupTmp.zip \\<HIDE>\backup\1c\ZikAru\ZikAru_<HIDE>_$date.zip
copy-item C:\BackUP_1C\Buh<HIDE>\*.dt \\<HIDE>\backup\1c\Buh<HIDE>\Buh<HIDE>_<HIDE>_$date.dt
copy-item C:\BackUP_1C\Zup<HIDE>\*.dt \\<HIDE>\backup\1c\Zup<HIDE>\Zup<HIDE>_<HIDE>_$date.dt
copy-item C:\BackUP_1C\alpha5\*.dt \\<HIDE>\backup\1c\alpha5\Alpha5_<HIDE>_$date.dt


if(!(Test-Path \\<HIDE>\backup\1c\alpha\Alpha_<HIDE>_$date.zip)){$a = "BackUP Alpha FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\buh8\Buh8_<HIDE>_$date.dt)){$b = "BackUP Buh8 FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\buh82\Buh82_<HIDE>_$date.dt)){$c = "BackUP Buh82 FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\buhCKS8\BuhCKS8_<HIDE>_$date.dt)){$d = "BackUP BuhCks8 FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\BuhCKS82\BuhCKS82_<HIDE>_$date.dt)){$e = "BackUP BuhCks82 FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\crm\CRM_<HIDE>_$date.dt)){$f = "BackUP CRM FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\eco\ECO_<HIDE>_$date.dt)){$g = "BackUP ECO FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\Kandidat\Kandidat_<HIDE>_$date.dt)){$h = "BackUP Kandidat FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\kredit\Kredit_<HIDE>_$date.dt)){$i = "BackUP Kredit FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\orgteh\Orgteh_<HIDE>_$date.dt)){$j = "BackUP Orgteh FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\SpecOdejda\SpecOdejda_<HIDE>_$date.zip)){$k = "BackUP SpecOdejda FAIL"}

if(!(Test-Path \\<HIDE>\backup\1c\strah\Strah_<HIDE>_$date.zip)){$m = "BackUP Strahovanie FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\traktir\Traktir_<HIDE>_$date.dt)){$n = "BackUP Traktir FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\zikbuh7\ZikBuh7_<HIDE>_$date.zip)){$o = "BackUP ZikBuh7 FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\zikCKS7\ZikBuhCKS7_<HIDE>_$date.zip)){$p = "BackUP ZikBuhCKS7 FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\zikeco\ZikECO_<HIDE>_$date.dt)){$q = "BackUP ZikECO FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\zik<HIDE>NM\Zik<HIDE>NM_<HIDE>_$date.zip)){$r = "BackUP Zik<HIDE>MN FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\Zik<HIDE>MY\Zik<HIDE>MY_<HIDE>_$date.zip)){$s = "BackUP Zik<HIDE>MY FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\zik<HIDE>RA\Zik<HIDE>RA_<HIDE>_$date.zip)){$t = "BackUP Zik<HIDE>RA FAIL"}

if(!(Test-Path \\<HIDE>\backup\1c\ZupEco82\ZupEco82_<HIDE>_$date.dt)){$x = "BackUP ZupEco82 FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\BuhAru82\BuhAru82_<HIDE>_$date.dt)){$v = "BackUP BuhAru82 FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\ZikAru\ZikAru_<HIDE>_$date.zip)){$u = "BackUP ZikAru FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\Buh<HIDE>\Buh<HIDE>_<HIDE>_$date.dt)){$buh<HIDE> = "BackUP Buh<HIDE> FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\Zup<HIDE>\Zup<HIDE>_<HIDE>_$date.dt)){$zup<HIDE> = "BackUP zup<HIDE> FAIL"}
if(!(Test-Path \\<HIDE>\backup\1c\Alpha5\Alpha5_<HIDE>_$date.dt)){$alpha = "BackUP alpha5 FAIL"}

if($a -eq $b -eq $c -eq $d -eq $e -eq $f -eq $g -eq $h -eq $i -eq $j -eq $k -eq $m -eq $n -eq $o -eq $p -eq $q -eq $r -eq $s -eq $t -eq $x -eq $v -eq $u -eq $buh<HIDE> -eq $zup<HIDE> -eq $alpha -eq 0)
{
Write-host "ALL Backups done"
Send-MailMessage -To "<HIDE>@ava-<HIDE>.ru" -Cc "<HIDE>@ava-<HIDE>.ru"  -From "report@ava-<HIDE>.ru" -Subject "BackUp SUCCESS!!!" -Body "ALL backups 1c done" -SmtpServer <HIDE>
}
Else {
Send-MailMessage -To "<HIDE>@ava-<HIDE>.ru"  -From "report@ava-<HIDE>.ru"  -Subject "BackUp FAIL!!!" -Body "$a
$b
$c
$d
$e
$f
$g
$h
$i
$j
$k
$m
$n
$o
$p
$q
$r
$s
$x
$t
$v
$u
$buh<HIDE>
$zup<HIDE>
$alpha" -SmtpServer <HIDE>
}


Была идея подключаться к серверам 1с и брать оттуда названия баз, подключаться к ним и бекапить. Но готового решения для работы с сервером 1с через powershell не нашел.

Отправлено: 07:18, 27-02-2015

 

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Лог robocopy еще просматривать придется. Я хочу просто получить на почту список баз, что нужно вручную забекапить. А если тема письма Success то просто удалить его и даже не смотреть внутрь

Собственно я добился чего хотел, скрипт теперь не требует изменения, при увеличении кол-ва баз.
Осталось тоже сделать со скриптом самого бекапа.

Отправлено: 20:01, 28-02-2015 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
Код: Выделить весь код
dir | Foreach {Write-Host $_.Name}
В этой↑ конструкции есть подвохи? »



Vadikan, в этой конструкции, скорей всего, нет подвохов, но я думаю, что Kazun имел в виду это:


Код: Выделить весь код
## Вариант 1:
dir | Foreach {Write-Host 'Something & $_.Name & something else.'}

## Вариант 2:
dir | Foreach {Write-Host 'Something & $($_.Name) & something else.'}

## Вариант 3:
dir | Foreach {Write-Host "Something & $_.Name & something else."}

## Вариант 4:
dir | Foreach {Write-Host "Something & $($_.Name) & something else."}


Только четвёртый вариант будет корректным. Варианты без кавычек я не рассматриваю, так как в моём примере присутствует символ, требующий использования кавычек ("&").
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:15, 28-02-2015 | #12



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Унифицировать Скрипт копирования

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Скрипт копирования баз Goodkid Скриптовые языки администрирования Windows 9 29-04-2013 17:14
SH скрипт копирования каталога ktotut Программирование в *nix 24 28-10-2012 20:50
CMD/BAT - Скрипт копирования по сети Forpost Скриптовые языки администрирования Windows 1 21-06-2010 17:06
Разное - Скрипт резервного копирования dividik Microsoft Windows 2000/XP 10 27-01-2009 12:45
Помогите написать скрипт копирования Filariel Программирование в *nix 7 17-11-2006 16:38




 
Переход