PDA

Показать полную графическую версию : Не переходит к следующей команде, если предыдущая долго выполняется


snake-as
14-12-2011, 08:13
Добрый день, коллеги. Имею такую задачу:
Есть скрипт, который архивирует большой объем даных, потом отсылает на FTP сервер эти данные.
Вобщем,т запускаю скрипт, архивирование прошло, но на следующую команду не выходит. Жду минуту, две, три - нуль результата, архивирование закончилось, а дальше не идет. Потом я нажал правой кнопкой мыши по консоли случайно и все дальше пошло.
Я так понимаю, команда выходит в фоновый режим, но как от этого избавиться, не знаю.
Подскажите, пожалуйста.

Заранее благодарю.

Iska
14-12-2011, 09:51
snake-as, не видя Вашего кода, не зная условий его выполнения — подсказать Вам сможет только штатный телепат.

snake-as
14-12-2011, 10:00
Ну врядли код поможет, вот:

#Переменные
$arc_name = Get-Date -format 'yyyy_MM_dd_hh_mm'
$arc_name = 'Backup_' + $arc_name
$arc_date = Get-Date #дата в обычном формате
$arc_date = '' + $arc_date
$dir = 'F:\SQLBackup\CRM'
$old_dir = 'F:\Backup\Old_Bases'
$logfile = 'F:\Backup\backup_crm_log.txt'
$dest_dir = '\\192.168.X.X\Volume_2\sql\Bases\'

#Архивирование
$log = $arc_date + ' - Начато архивирование файлов'
$log
$log | out-file -Append $logfile
$tpid = [diagnostics.process]::start("C:\WinRAR\WinRAR.exe", "a $dir\$arc_name $dir")
$tpid.WaitForExit()
$log = $arc_date + " - Архивирование завершено"
$log
$log | out-file -Append $logfile


#Копирование на ftp
$log = $arc_date + " Копирование на ftp-сервер..." + $dest_dir
$log
$log | out-file -Append $logfile
$File = $dir + '\' + $arc_name + '.rar'
#$File
$ftp = "ftp://login:password@192.168.X.X/SQLBases/CRM/$arc_name" + '.rar'# + $arc_name
"ftp url: $ftp"
$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)
$webclient.UploadFile($uri, $File)
$log = $arc_date + " Копирование на ftp-сервер завершено"
$log
$log | out-file -Append $logfile


#Перемещение архива в архивную папку на локальном жестком диске
$log = $arc_date + ' - Перемещение файлов в архивную папку'
$log
$log | out-file -Append $logfile
Move-Item $dir\$arc_name.rar $old_dir
$log = $arc_date + ' - Архивы перемещены в архивную папку ' + $old_dir
$log
$log | out-file -Append $logfile


P.S: Файл весит около 5Гб в архиве. В чистом виде - около 30Гб. Если использовать скрипт для мелких файлов, все нормально.

Iska
14-12-2011, 11:31
Ну врядли код поможет, вот: »
Может быть и не поможет. Но видеть код, равно знать условия его выполнения — необходимо хотя бы затем, дабы, посмотрев их — исключить из влияющих факторов.

snake-as
14-12-2011, 11:33
Понял.




© OSzone.net 2001-2012