|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перемещение файлов за предыдущую дату в папку с датой и именем сервера и их архивация |
|
CMD/BAT - [решено] Перемещение файлов за предыдущую дату в папку с датой и именем сервера и их архивация
|
Новый участник Сообщения: 24 |
Профиль | Отправить PM | Цитировать Доброго времени суток!
Помогите с написанием батника. Имеются сервера Server 1, Server 2 ..., И Server Backup На Server 1, Server 2 ..., пишутся почасовые логи типа YYYY-MM-DD-NN.log (где YYYY - год; MM - месяц; DD - день; NN - число (время: 00; 01; 02; 03 ...23) ). Т.к. данные файлы занимают много места (за 1 час в среднем 1,3 гБ) хотел создать задание по расписанию, чтобы раз в сутки (с наступлением след. дня) запускалось задние на перенос этих файлов YYYY-MM-DD-NN.log (Думаю подойдет перенос всейх файлов за вчерашнюю дату) с Server 1, Server 2 ..., на Server Backup в папку с датой создания файлов YYYY-MM-DD+Имя Сервера (Server 1, Server 2 ...). После создания папки и переноса с файлов необходимо произвести архивацию папки вместе с файлами с последующим удалением папки с файлами. Заранее благодарен за помощь! |
|
Отправлено: 23:27, 28-12-2020 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать Powershell:
$hosts = "server1","server2","server3" Invoke-Command -computername $hosts -command { $yesterday = ((get-date).AddDays(-1)).ToString("yyyy-MM-dd") $files = dir C:\temp\test |? name -match "^$yesterday" $files |Compress-Archive -DestinationPath "C:\temp\test2\$yesterday-$($env:computername).zip" if ($?) {$files |del} } Требования к выполнению - Powershell v4 и новее (иначе придётся использовать 7-zip вместо Compress-Archive), работающий удалённый доступ для Powershell (настраивается командой winrm -qc) и соответствующие права на каталог с архивами для пользователя, под которым будет запускаться скрипт. В примере конечный каталог - это C:\temp\test2, его нужно заменить на сетевой путь к шаре на сервере бэкапа. |
------- Отправлено: 10:27, 29-12-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать @Echo Off
cls
Set "AllComp="\\127.0.0.1\Test1" "\\LocalHost\Test2" "\\192.168.100.23\Test1\Every Day""
Set "Backup=\\192.168.100.23\Test2\Rar For Every Day"
For %%p In (%AllComp%) Do FOR /F "tokens=1 delims=\" %%s IN (%%p) DO Call :ArcPrc "%%~s" "%%~p"
pause
Exit /B
:ArcPrc
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "ToDay=%%d" &Call Set "ToDay=%%ToDay:~0,4%%-%%ToDay:~4,2%%-%%ToDay:~6,2%%"
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /B /A:-D /O:N "%~2\20??-??-??-*.log"^|FINDSTR /B /I /V /R /C:"%ToDay%"`) DO (
If Exist "%~2\%%~f" (
Set "Name=%%f"
rem Call "C:\Program Files\WinRAR\Rar.exe" a -df -m1 "%Backup%\%%Name:~0,10%%-%~1.rar" "%~2\%%Name:~0,10%%-*.log"
Call "C:\Program Files\WinRAR\Rar.exe" a -df -m1 -ep "%Backup%\%%Name:~0,10%%-%~1.rar" "%~2\%%Name:~0,10%%-*.log"
))
Exit /B
|
------- Последний раз редактировалось megaloman, 01-01-2021 в 21:51. Отправлено: 18:08, 29-12-2020 | #3 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Уважаемые DJ Mogarych и Megaloman благодарю Вас за предложенные варианты решения моей задачи!
Цитата DJ Mogarych:
Цитата megaloman:
По Цитата megaloman:
Если путь С:\Pogram Files\XXX\XXX\XXX\log, то чтобы добраться до логов в архиве нужно открыть полный путь к логам в архиве. С Новым Годом Вас! Здоровья и всех благ! |
|||
Отправлено: 20:45, 01-01-2021 | #4 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать |
|
------- Отправлено: 21:51, 01-01-2021 | #5 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Благодарю за помощь всех кто откликнулся! Выручили, особенно перед НГ! |
|
Отправлено: 18:58, 12-01-2021 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Перемещение файлов в папку со вчерашней датой | Chingiz87 | Скриптовые языки администрирования Windows | 0 | 15-03-2015 15:53 | |
Любой язык - Резервное копирование за предыдущую дату | DeD MOPO3 | Скриптовые языки администрирования Windows | 8 | 05-09-2014 19:11 | |
CMD/BAT - копирование файлов за текущую дату с сервера на сервер | 6a6yko | Скриптовые языки администрирования Windows | 10 | 21-06-2011 13:00 | |
CMD/BAT - [решено] Перемещение файлов, содержащих дату в названии. | Майклс | Скриптовые языки администрирования Windows | 4 | 27-07-2010 15:34 | |
CMD/BAT - [решено] Копирование с флешки в папку на компьютере файлов с текущей датой | bazik83 | Скриптовые языки администрирования Windows | 6 | 19-05-2010 10:17 |
|