Лог копирования файлов windows
Обновлено: 04.07.2024
Вопрос такой: можно ли написать скриптик, чтобы при копировании файлов он показывал информацию о времени, оставшемся до завершения копирования и сколько процентов скопировано?
а то если пишешь copy . . он просто копирует и не ясно - какая скорость, это на пять минут или на пол дня.
Слышал, что виндовый Командир Нортон (не знаю, как он сейчас называется по-правильному) поддерживает командную строку.-------
Как сказало Дерево Дровосеку: "я - пень".
Последний раз редактировалось NiOl, 09-12-2009 в 14:45 . Причина: очепятки
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
т.к. все скриптовые языки однопотоковые, то рассчитать скорость, проценты и т.п. можно только между копированием отдельных файлов, поэтому при копировании нескольких больших файлов такая затея теряет смысл. хотя в некоторых случаях (если есть поддержка API, как в AutoIT) для этого удается задействовать системные потоки, по графическому отображению процессов в CMD есть отдельная тема:
P.S. Это ко 2-му посту.
Не говорите за всех Для PowerShell это никогда не было проблемой.
Впрочем там можно легко получить нативный прогрессбар при копировании (а еще и докачку с приоритизацией трафика) используя модуль BitsTransfer.
Для остальных языков вполне можно использовать стандартный Windows диалог копирования файлов. Делается это через COM-объект shell.application, и на PowerShell выглядит так (думаю сконвертировать на VBS не будет проблемой):
NiOl, нортон командир наверное не будет работать на 64битной винде..
конечно, это всё замечательно, Нортон командир или Фар, но я как-бы скриптик хотел а не софтину.
amel27, спасибо за тему, почитаю, отпишусь.
Xaegr, очень интересно что вы про повершелл но ваш скрипт у меня просто копирует и ничего более не происходит, никакого мониторинга. вообще ничего. Очень хочтелось бы и повершельное решение моей проблемы.
-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум
а я - о возможности сваять свой собственный прогресс-бар, в API это обычно делается через определение своей CallBack - функции. » |
но ваш скрипт у меня просто копирует и ничего более не происходит, никакого мониторинга. » |
Если у вас Vista/2008 и выше, посмотрите справку к BitsTransfer. Там правда говориться в основном о веб, но файлы он качает тоже прекрасно. Возможность работы в отдельном потоке и прогрессбар встроены
Если рекурсивно, то сложнее:
Требования: PowerShell 2.0, BITS 4.0, Vista/2008 и выше (хотя может и на XP будет работать, но не уверен). На 7/2008R2 всё уже в комплекте.
Вызывать например так:
C:\Root\Copy-FileBITS.ps1 c:\src d:\dst -recurse -priority high
Copy-FileBits.ps1:
А почему не Far Manager? Тем паче, что версия 2.0 идёт под открытой лицензией. P.S. Это ко 2-му посту. » |
У FAR`а даже 2.0 (предыдущий не "Опен", но бесплатен для xUSSR) нет ключей для команды копирования, хотя вроде есть сои скрипты и скрипты можно указывать через параметр. а на счет произведения Питера Нортона не знаю ничего - я его давно не видел, но где-то когда-то слышал, что вроде некие действия можно заставить делать через командную строку.
В принципе есть мысль, как реализовать хоть какой-то мониторинг, но могу только толкнуть мысль, а вот реализовывать реально влом - не стоит овчина выделки (на мой взгляд):
Копированием занимается естественно сам батник.
1. Командой dir /b /a /s (или даже /e ) получаем список того, что будет копироваться и подсчитываем общий объем (через %
А сколько у вас ушло времени на изучение C++ .
Я понимаю, это зависит от человека. но все же:)
Сколько времени на это уйдет ?
Начинаю изучать Си, тяжело мне дается честно сказать. Напишу пример задачи, хотелось бы знать.
что это такое и сколько это стоит?
помогите опознать что это такое и сколько это стоит?
узнать: сколько краски потребуется , что-бы покрасить стены комнаты, и сколько будет это стоить.
Помогите , плз, через 3 дня зачет. Нужно написать форму ВБА. Нужно вводить: длинна комнаты.
(результат) а нужно видеть куда Добавлено через 13 часов 29 минут
забыл в начале echo off
а можно сделать так что-бы в лог записывалась не системная дата, которая на компьютере а дата изменения файла?
Добавлено через 11 минут
и если папка названа по русски то какие-то кракозябры записываются
что-бы в лог записывалась не системная дата, которая на компьютере а дата изменения файла? кодировку поменял но по-прежнему не правильно выводится
Решение
Anonymоus, Спасибо огромное. Замечательный батник для бэкапа. Подскажите, пожалуйста, каким именно способом он производит копирование (то есть инкрементальное копирование, то есть только тех файлов и папок, которые подверглись изменению (по принципу robocopy /mir - зеркало) или он в лоб копирует всё). Расскажите какие ещё у написанного вами батника особенности?666blade666, Anonymоus не был на форуме больше года.
Добавлено через 1 минуту
Но там не используется инкрементальное копирование.
Скорость и так невелика - а после такого апгрейда она ещё глубже сядет. Тогда уж лучше использовать полноценный ЯП.
Хотя можно всё. Но нужны сторонние утилиты для получения md5 или crc32.
FraidZZ, подскажите, а каким-то ещё способом, кроме как запустить скопированную базу данных - можно проверить работоспособность бэкапа, ну то есть - как проверить что бэкап, который был скопирован через выше приведённый скрипт работоспособен и копирование произошло успешно на все 100%? Только непосредственно запустив бэкап через базу? Или можно как-то через скрипт это сделать? Если утилиты, то какие и как их туда подвязать (я имею в виду к батнику приведённому выше).
И ещё возможно ли дописать в этот батник пункт, который бы находился в конце лога копирования и говорил бы о том, сколько всего по весу скопировано файлов? Ну то есть чтобы в конце лога было видно суммарное количество, которое было скопировано.
А по поводу скорости, так бог с ней пусть копирование будет на много медленнее идти, зато будет спокойно на душе, что все файлы скопировались успешно на все 100% и в случаи падения базы бэкап будет 100% рабочим.
Добавлено через 1 час 11 минут
FraidZZ, Вот к примеру есть программа TeraCopy, которая позволяет после копирования проверить целостность скопированных файлов (MD5), вот только как можно через командную строку пустить эту программу на копирование, а затем ею же проверить хеш-суммы скопированных файлов на целостность и затем занести в лог результат копирования, что он удовлетворительный или копирование произведено с ошибками. Вы знаете как это сделать?
В зависимости от того, сколько файлов уже было загружено, определить директорию, куда загружать новый
В БД есть 3 колонки: file_new, file_new2 и file_new3. Если в file_new пусто, то файл грузится сюда.
Непонятно что с новым диском: низкая скорость копирования файлов
Купил на пробу новый Corsair Force LS 60 Gb (F60GBLSB). 1. Тест CrystalDiskMark вроде как.
Перейти ко времени . что это?
Что это и как этим пользоваться? Первый раз вижу такой диалог .
Используй WMI, это действительно лучше api-хука.
набор готовых скриптов:
Остается только пожелать удачи. По отзывам, Device Lock, не смотря на многолетнюю историю продукта, рекламу, сертификаты все же доставляет множество проблем, но лучшего продукта при этом нет. А вы готовы потягаться с ДиалогНаукой. :-)
Не понял, с помощью WMI можно сделать все то что я описал в начале?
Насколько, я заметил WMI позволяет отслеживать только создание, удаление и изменение файлов в указанной области. Решение задачи было бы возможно, если бы WMI позволял как-нибудь реагировать на подключение новых запоминающих устройств. Такое возможно?
А как определить самое важное - имя исходного файла? Можно путем сопостовления конечного и исходного файла. Но ведь если человек сохранит файл, скажем в Exel'e, через "Сохранить как. " и поменяет имя конечного файла, то мы в итоге получим очень размытую информацию?
Не понял, с помощью WMI можно сделать все то что я описал в начале?
Насколько, я заметил WMI позволяет отслеживать только создание, удаление и изменение файлов в указанной области. Решение задачи было бы возможно, если бы WMI позволял как-нибудь реагировать на подключение новых запоминающих устройств. Такое возможно?
А как определить самое важное - имя исходного файла? Можно путем сопостовления конечного и исходного файла. Но ведь если человек сохранит файл, скажем в Exel'e, через "Сохранить как. " и поменяет имя конечного файла, то мы в итоге получим очень размытую информацию?
Вопросы касаются исключительно vbs:
А есть метод определить копирование файла на CD? Для стандартного win-резака можно следить за папкой, куда винда временно кидает файлы (кстати, путь не напомните?), но как быть с Nero и т.п.
Сложности добавляет то, что надо отслеживать пермещение ВСЕХ файлов, а не отдельных.
На данный момент делаю:
1) создаю скрипт следящий за текущими и новыми подключенными съемными дисками, Floppy и CD приводами, ну и за локальными дисками с интерфейсом usb (для внешних хардов). Если уже подключенны такие устройства, то для какждого из них запускается скрипт описанный во втором разделе.
2) как только подключается запоминающее устройство к usb или втыкается floppy-дискета - запускается скрипт реагирующий на события записи и изменения файлов. Если таковое наступает - отпраляем данные на сервер.
3) после отключения устройства убиваю процесс.
В связи со всем этим возникает следующие вопросы:
1) как определить наличие дискеты во флопи-приводе и диска в сдруме?
2) как запустить из одного скрипта другой, запомнить id процесса и убить по id процесс?
У меня на работе есть хорошая присказка "MSDN, батенька". Произношу не я :) Я обычно говорю "Гугл".
По первому вопросу ответ, но скрипеть будет:
With CreateObject("Scripting.FileSystemObject")
Set dc = .Drives
For Each d in dc
If d.DriveLetter = "A" Then
Do While d.IsReady
А вообще у тебя задача всё больше и больше разрастается, поэтому рекомендую сделать ход конём:
Данила Полевщиков, ну если речь зашла о WMI то можно пример основаный на его объектах, а не на FSO?(достаточно указать св-во объекта для логических дисков, типа .IsReady).
Еще вопрос: 1) как можно определить какие логические диски соответствуют физическим; 2) возможно ли используя WMI и методику в ссылках на примеры приведенных выше, узнать какой именно файл был скачен (полный путь)
+ ссылка, к сожалению, мертвая.
Данила Полевщиков, ну если речь зашла о WMI то можно пример основаный на его объектах, а не на FSO?(достаточно указать св-во объекта для логических дисков, типа .IsReady).
Еще вопрос: 1) как можно определить какие логические диски соответствуют физическим; 2) возможно ли используя WMI и методику в ссылках на примеры приведенных выше, узнать какой именно файл был скачен (полный путь)
Логи - это системные события, который происходят в любой операционной системе. С помощью логов можно легко отследить кто, что и когда делал. Читать логи могут не только системные администраторы, поэтому в данной инструкции рассмотрим, как смотреть логи ОС windows.
Ищете сервер с Windows? Выбирайте наши Windows VDS
Просмотр событий для проверки логов.
После нажатия комбинации “ Win+R и введите eventvwr.msc ” в любой системе Виндовс вы попадаете в просмотр событий. У вас откроется окно, где нужно развернуть Журналы Windows. В данном окне можно просмотреть все программы, которые открывались на ОС и, если была допущена ошибка, она также отобразится.
Аудит журнал поможет понять, что и кто и когда делал. Также отображается информация по запросам получения доступов.
В пункте Установка можно посмотреть логи ОС Виндовс, например, программы и обновления системы.
Система - наиболее важный журнал. С его помощью можно определить большинство ошибок ОС. К примеру, у вас появлялся синий экран. В данном журнале можно определить причину его появления.
Логи windows - для более специфических служб. Это могут быть DHCP или DNS.
Фильтрация событий.
С помощью Фильтра текущего журнала (раздел Действия) можно отфильтровать информацию, которую вы хотите просмотреть.
Обязательно нужно указать уровень Событий:
- Критическое
- Ошибка
- Предупреждение
- Сведения
- Подробности
Для сужения поиска можно отфильтровать источник событий и код.
Просмотр PowerShell логов.
Открываем PowerShell и вставляем следующую команду Get-EventLog -Logname 'System'
В результате вы получите логи Системы
Для журнала Приложения используйте эту команду Get-EventLog -Logname 'Application
Также обязательно ознакомьтесь с перечнем аббревиатур:
Get-EventLog –LogName ‘System’ | Format-Table EntryType, TimeWritten, Source, EventID, Category, Message
Если нужна подробная информация, замените Format-Table на Format-List на
Get-EventLog –LogName ‘System’ | Format-List EntryType, TimeWritten, Source, EventID, Category, Message
Формат информации станет более легким
Get-EventLog –Logname ‘System’ –Newest 20
Если нужен список, позднее даты 1 января 2018 года, команда
Get-EventLog –LogName ‘System’ –After ‘1 января 2018’
Надеемся, данная статья поможет вам быстро и просто читать логи ОС Windows.
Желаем приятной работы!
Как установить свой образ на ВДС сервер с Виндовс, читайте в предыдущей статье.
Читайте также: