PDA

Показать полную графическую версию : [решено] что бы с каждого компа в сети архивировалась раз в 2-3 дня папочка на сервер


Страниц : [1] 2

alexdomovoi
31-05-2013, 14:24
Товарищи нужно сделать так что бы с каждого компа в сети копировалась (архивировалась) раз в 2-3 дня папочка на сервер и при этом создавалась папка не по имени компа на сервере, а по ip адресу копируемого компьютера мне вроде дали скриптик но он не работает как то, что не так:

Dim FSO, WSH, TheFolder, TheFiles, AFile
Set WSH = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
foldername = "C:\Program Files\infotecs"
zipname = "C:\temp\if.zip"
str = "c:\7-zip\7z.exe a "& zipname & " " & foldername
strComputer = "."

Return = WSH.Run(str, 0, true)

If Return = 0 Then
Set fso = createobject ("scripting.filesystemobject")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = TRUE")
For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For Each IPAddress In IPConfig.IPAddress
strOutput = Replace(IPAddress, strComputer, "")
if fso.FolderExists("\\10.72.4.8\AD\1\" & strOutput) Then
WScript.Echo "Папка уже создана"
Else
fso.createfolder "\\10.72.4.8\AD\1\" & strOutput
End If
Set TheFolder = FSO.GetFolder("C:\temp\")
Set TheFiles = TheFolder.Files
For Each AFile In TheFiles
If UCase(FSO.GetExtensionName(AFile.Path)) = "ZIP" Then
AFile.COPY "\\10.72.4.8\AD\1\" & strOutput &"\"
End If
Next
Next
End If
Next
End If


папка temp есть
папка с архиватором 7-zip так же имеется
папка с тем что копировать есть
папка куда копировать так же есть
что еще надо?

sunnykey
03-06-2013, 07:19
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\192.168.25.245\it\test
set Folder2BackUp="d:\work\"
rem !!!!!!!!!!!!!!!!!!
if exist %tmp%\%ipAddress%.zip (
del /q %tmp%\%ipAddress%.zip
)
if exist %tmp%\tmp.tmp (
del /q %tmp%\tmp.tmp
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >%tmp%\tmp.tmp
for /f "tokens=2" %%i in (%tmp%\tmp.tmp) do set ipAddress=%%i

%ZipPath% a %tmp%\%ipAddress%.zip %Folder2BackUp%
if not exist "%ServerPath%" (
md "%ServerPath%"
)
copy /y /z %tmp%\%ipAddress%.zip "%ServerPath%\"
del /q %tmp%\tmp.tmp
del /q %tmp%\%ipAddress%.zip
echo Done!

Как-то так

alexdomovoi
03-06-2013, 09:58
сделал так

@echo off
SetLocal EnableExtensions EnableDelayedExpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\10.72.4.8\ad\1
set Folder2BackUp="C:\Program Files\InfoTeCS\"
rem !!!!!!!!!!!!!!!!!!
if exist %tmp%\%ipAddress%.zip (
del /q %tmp%\%ipAddress%.zip
)
if exist %tmp%\tmp.tmp (
del /q %tmp%\tmp.tmp
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >%tmp%\tmp.tmp
for /f "tokens=2" %%i in (%tmp%\tmp.tmp) do set ipAddress=%%i

%ZipPath% a %tmp%\%ipAddress%.zip %Folder2BackUp%
if not exist "%ServerPath%" (
md "%ServerPath%"
)
copy /y /z %tmp%\%ipAddress%.zip "%ServerPath%\"
del /q %tmp%\tmp.tmp
del /q %tmp%\%ipAddress%.zip
echo Done!

выдает при запуске

Iska
03-06-2013, 10:50
alexdomovoi, Вам давно пора познакомиться с тэгом [code] (http://forum.oszone.net/misc.php?do=bbcode#code).

выдает при запуске »
Это пакетный файл, а не скрипт WSH. Поменяйте расширение с «vbs» на «cmd». И сохраняйте в кодировке OEM/866, если используется кириллица.

alexdomovoi
03-06-2013, 11:59
в принципе работает, НО создается архив с не с именем ip адреса (допустим ip 192.168.1.1 нужно имя архива 19216811), а просто %ipAddress%.zip

а вообще было бы прерасно если бы создавалась папочка с ip адресом а уже в нее клались архивы по дате

alexdomovoi
03-06-2013, 13:32
удалил, вопрос выше остается открыт

sunnykey
03-06-2013, 15:23
в принципе работает, НО создается архив с не с именем ip адреса (допустим ip 192.168.1.1 нужно имя архива 19216811), а просто %ipAddress%.zip
а вообще было бы прерасно если бы создавалась папочка с ip адресом а уже в нее клались архивы по дате »

@echo off
setlocal enableextensions enabledelayedexpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\10.72.4.8\ad\1
set Folder2BackUp="C:\Program Files\InfoTeCS\"
rem !!!!!!!!!!!!!!!!!!
for /f %%i in ('date /t') do set CurDate=%%i
if exist %tmp%\%CurDate%.zip (
del /q %tmp%\%CurDate%.zip
)
if exist %tmp%\tmp.tmp (
del /q %tmp%\tmp.tmp
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >%tmp%\tmp.tmp
for /f "tokens=2" %%i in (%tmp%\tmp.tmp) do (
set ipAddress=%%i
)
set endPath=%ServerPath%\%ipAddress%
%ZipPath% a %tmp%\%CurDate%.zip %Folder2BackUp%
if not exist "%endPath%" (
md "%endPath%"
)
copy /y /z %tmp%\%CurDate%.zip "%endPath%\"
del /q %tmp%\tmp.tmp
del /q %tmp%\%CurDate%.zip
echo Done!
Создаёт на сервере папку с ip адресом, а в неё копируется архив.
З.Ы. Не забудь сохранить файл с расширением cmd

alexdomovoi
03-06-2013, 15:37
что то не так в конце


Compressing InfoTeCS\ViPNet CryptoService\vipnetln.prg

Everything is Ok
if not exist "%endPath%" (
Продолжить? "Application Data"md "%endPath%"
Продолжить? )
""Application Data"md" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
copy /y /z %tmp%\%CurDate%.zip "%endPath%\"
Системе не удается найти указанный путь.
Скопировано файлов: 0.
del /q %tmp%\tmp.tmp
del /q %tmp%\%CurDate%.zip
echo Done!

sunnykey
04-06-2013, 02:43
Продолжить? "Application Data"md "%endPath%"
Продолжить? ) »
Это откуда у тебя в скрипте? Скопируй правильно текст!

alexdomovoi
04-06-2013, 09:43
скопировал
@echo off
setlocal enableextensions enabledelayedexpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\10.72.4.8\ad\1\
set Folder2BackUp="C:\Program Files\InfoTeCS\"
rem !!!!!!!!!!!!!!!!!!
for /f %%i in ('date /t') do set CurDate=%%i
if exist %tmp%\%CurDate%.zip (
del /q %tmp%\%CurDate%.zip
)
if exist %tmp%\tmp.tmp (
del /q %tmp%\tmp.tmp
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >%tmp%\tmp.tmp
for /f "tokens=2" %%i in (%tmp%\tmp.tmp) do (
set ipAddress=%%i
)
set endPath=%ServerPath%\%ipAddress%
%ZipPath% a %tmp%\%CurDate%.zip %Folder2BackUp%
if not exist "%endPath%" (
md "%endPath%"
)
copy /y /z %tmp%\%CurDate%.zip "%endPath%\"
del /q %tmp%\tmp.tmp
del /q %tmp%\%CurDate%.zip
echo Done!

идет копирование из папки инфотекс
но в конце выдает
Compressing InfoTeCS\ViPNet CryptoService\user_0257\key_disk\dom\has
Compressing InfoTeCS\ViPNet CryptoService\user_0257\key_disk\dom\sgn

Compressing InfoTeCS\ViPNet CryptoService\Version.ini
Compressing InfoTeCS\ViPNet CryptoService\VIPNETLN.CRG
Compressing InfoTeCS\ViPNet CryptoService\vipnetln.prg

Everything is Ok
if not exist "%endPath%" (
Продолжить? "Application Data"md "%endPath%"
Продолжить? )
""Application Data"md" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
copy /y /z %tmp%\%CurDate%.zip "%endPath%\"
Системе не удается найти указанный путь.
Скопировано файлов: 0.
del /q %tmp%\tmp.tmp
del /q %tmp%\%CurDate%.zip
echo Done!

Georgio
04-06-2013, 10:15
alexdomovoi, попробуйте подправить скрипт sunnykey таким образом:

@echo off
setlocal enableextensions enabledelayedexpansion
rem Замени пути на свои
set ZipPath="C:\Program Files\7-Zip\7z.exe"
set ServerPath=\\10.72.4.8\ad\1
set Folder2BackUp="C:\Program Files\InfoTeCS\"
rem !!!!!!!!!!!!!!!!!!
for /f %%i in ('date /t') do set CurDate=%%i
if exist "%tmp%\%CurDate%.zip" (
del /q "%tmp%\%CurDate%.zip"
)
if exist "%tmp%\tmp.tmp" (
del /q "%tmp%\tmp.tmp"
)
netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >"%tmp%\tmp.tmp"
for /f "usebackq tokens=2" %%i in ("%tmp%\tmp.tmp") do (
set ipAddress=%%i
)
set endPath=%ServerPath%\%ipAddress%
%ZipPath% a "%tmp%\%CurDate%.zip" %Folder2BackUp%
if not exist "%endPath%" (
md "%endPath%"
)
copy /y /z "%tmp%\%CurDate%.zip" "%endPath%\"
del /q "%tmp%\tmp.tmp"
del /q "%tmp%\%CurDate%.zip"
echo Done!

alexdomovoi
04-06-2013, 10:22
опять не так
Compressing InfoTeCS\ViPNet CryptoService\VIPNETLN.CRG
Compressing InfoTeCS\ViPNet CryptoService\vipnetln.prg

Everything is Ok
if not exist "%endPath%" (
Продолжить? "Application Data"md "%endPath%"
Продолжить? )
""Application Data"md" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
copy /y /z "%tmp%\%CurDate%.zip" "%endPath%\"
Системе не удается найти указанный путь.
Скопировано файлов: 0.
del /q "%tmp%\tmp.tmp"
del /q "%tmp%\%CurDate%.zip"
echo Done!

alexdomovoi
04-06-2013, 10:44
все пошло, только папочку не создалась по ip адресу

Georgio
04-06-2013, 10:59
alexdomovoi, выложите результат выполнения в командной строке команды: netsh interface ipv4 show addresses.

alexdomovoi
04-06-2013, 11:23
C:\Documents and Settings\admdom>netsh interface ipv4 show addresses
Команда interface ipv4 show addresses не найдена.
машина на xp sp3

Georgio
04-06-2013, 12:51
Тогда надо использовать альтернативную команду. Например, чтобы получился тот же реэультат, что и в предложенной sunnykey конструкции (с моей правкой) netsh interface ipv4 show addresses | find "IP-" | find /v "127.0.0.1" >"%tmp%\tmp.tmp"
for /f "usebackq tokens=2" %%i in ("%tmp%\tmp.tmp") do (
set ipAddress=%%i
), попробуйте вместо неё использовать конструкцию ipconfig|find "IPv4-">"%tmp%\tmp.tmp"
for /f "usebackq tokens=2 delims=:" %%i in ("%tmp%\tmp.tmp") do (
set _ipAddress=%%i
)
set ipAddress=%_ipAddress:~1%

Можно было и обойтись без tmp.tmp.

alexdomovoi
04-06-2013, 14:33
создалась папочка вот такая ~1 в ней архивный файл, тема с ip не раскрыта.

Georgio
04-06-2013, 15:39
alexdomovoi, теперь выложите результат выполнения в командной строке команды: ipconfig.

alexdomovoi
05-06-2013, 08:13
DNS-суффикс этого подключения . . :
IP-адрес . . . . . . . . . . . . : 10.72.4.198
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 10.72.4.1

alexdomovoi
06-06-2013, 09:04
подниму подскажите




© OSzone.net 2001-2012