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

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

Ответить
Настройки темы
Любой язык - [решено] Скрипт локальная синхронизация с дописыванием информации.

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


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

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


Здравствуйте! Помогите, пожалуйста, со скриптом. Вопрос в следующем:
Есть постоянно изменяющийся файл. csv. Нужно чтобы этот файл синхронизировался в такой же файл, но в другой папке. При синхронизации информация, которая пропала в основном файле, пропадает и в том, куда синхронизируется. А нужно, что б информация не пропадала, а если появилась новая, то новая дописывалась. Я не сильна в этом, буду очень благодарна за помощь!

Отправлено: 23:44, 20-11-2019

 

Ветеран


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

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


Corecess, тогда это ни разу не «синхронизация». То, что Вы описываете, попадает под категорию «Работа с базами данных».

Упакуйте Ваш .csv-файл в архив, каковой приложите к сообщению.

Отправлено: 00:49, 21-11-2019 | #2



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

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


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


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

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


Вложения
Тип файла: rar test.csv-01.rar
(456 байт, 8 просмотров)

Прилагаю архив. Это аудит беспроводных сетей. Точки доступа синхронизируют такие файлы на сервер. Проблема в том, что при потере устройств из вида их адреса в файле также удаляются. При перезагрузке точек доступа синхронизируется пустой файл, соответственно. Поэтому нужен такой скрипт, как я описала выше. Буду крайне признательна за помощь.

Отправлено: 03:17, 21-11-2019 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


CSV-файлом это можно назвать с натяжкой, так как он нормально не структурирован, т. е., столбцы идут один под другим.
Вы хотите просто добавлять информацию в общий файл?

Powershell:
Код: Выделить весь код
gc C:\temp\1\test.csv-01.csv |Out-File C:\temp\123.txt -Append

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:18, 21-11-2019 | #4


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


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

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


Да, не структурирован. В принципе, да, добавлять, но что б записывалась только новая информация. Что б было, наверное, что-то вроде сравнениея, если такой адрес в файле уже есть, то он пропускается, если нет, записывается. Или это уже целую программу надо писать?

Отправлено: 11:13, 21-11-2019 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Адрес какой - MAC? Из какой колонки?

Все файлы одинаково выглядят, или все разные?

Исходный файл всё-таки один или их много?

Как должен выглядеть финальный файл?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 21-11-2019 в 15:43.


Отправлено: 15:00, 21-11-2019 | #6


Ветеран


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

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


Corecess, почему у Вас две строки наименований? Чем и как формируется данный файл?

Цитата Corecess:
Или это уже целую программу надо писать? »
Писать «целую программу» надо в любом случае.

Отправлено: 18:10, 21-11-2019 | #7


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


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

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


Две строки. Первый список - это MAC адреса точек доступа. Второй список - две колонки MAC адресов - это подключенные устройства и к каким точкам доступа подключены. Если ни к каким, во второй колонке not associated.
Файл формируется точкой доступа, линуксовским пакетом airodump-ng и синхронизируется на машину с виндовс. Т.е. если точка доступа перезагружается, то файл становится чистым. Соответственно на машине виндовс файл тоже становится чистым, теряются все данные. Нужно, чтобы эти данные не терялись.
Как я это видела - файл на виндовс, который синхронизируется с точкой доступа, в какой-то промежуток времени копируется в другую папку. Такой скрипт уже есть, спасибо DJ Mogarych.
Что бы не было тысячи файлов, файл должен дописываться, проверяя при этом совпадения и дописывать только те адреса, у которых нет совпадений, то есть новые.
Возможно, это должно выглядеть не так.

Файл всегда в таком виде, в каком есть. Файл один.

Дополню, что количество MAC адресов точек доступа будет меняться, как и количество адресов подключенных устройств

Последний раз редактировалось Corecess, 21-11-2019 в 20:59.


Отправлено: 19:24, 21-11-2019 | #8


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Наверное, можно было бы поизящнее, но это работает.

Powershell:
Код: Выделить весь код
$srcf = gc 'C:\temp\1\test.csv-01.csv'
$apstemp = 'C:\temp\1\apstemp.csv'
$clientstemp = 'C:\temp\1\clientstemp.csv'
$apsf = 'C:\temp\1\aps.csv'
$clientsf = 'C:\temp\1\clients.csv'

$srcf.where({$_ -notmatch "[\w\d]"},'Until') |ConvertFrom-Csv |export-csv "$apstemp" -NoTypeInformation -Append
$srcf.where({$_ -notmatch "[\w\d]"},'SkipUntil') |ConvertFrom-Csv |export-csv "$clientstemp" -NoTypeInformation -Append

import-csv "$apstemp" |sort BSSID -Unique |export-csv "$apsf" -NoTypeInformation -Delimiter ';'
import-csv "$clientstemp" |sort 'Station MAC' -Unique |export-csv "$clientsf" -NoTypeInformation -Delimiter ';'
Типов файлов два: один - точки доступа, другой - клиенты.
Каждый из этих типов имеет два вида - временный файл, где просто всё добавляется, и результирующий, где есть только уникальные значения.
Результирующий файл имеет разделитель точку с запятой, т. к. такой файл сразу нормально открывается в Экселе.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:35, 21-11-2019 | #9


Ветеран


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

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


Цитата Corecess:
Что бы не было тысячи файлов, файл должен дописываться, проверяя при этом совпадения и дописывать только те адреса, у которых нет совпадений, то есть новые. »
Corecess, это так не работает.

Первый вопрос: есть ли прямая и критическая зависимость между содержимым каких-то строк под первым заголовком, и содержимым каких-то строк под вторым заголовком? Есть ли между ними неразрывная связь?
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:09, 21-11-2019 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Скрипт автоматического сбора информации по сети. diagnoz_ Скриптовые языки администрирования Windows 6 03-02-2017 18:15
CMD/BAT - Исправить скрипт.. добавить сортировку выводимой информации Alexander_88 Скриптовые языки администрирования Windows 7 14-12-2015 16:58
VBS/WSH/JS - скрипт для выгрузки в текстовый файл информации из AD текущего пользователя baenov Скриптовые языки администрирования Windows 0 13-05-2015 17:01
CMD/BAT - скрипт для получения информации о ассоциации программы с типом файла на компьютере jz828059 Скриптовые языки администрирования Windows 2 12-05-2014 16:24
Подскажите готовый скрипт для каталога фильмов с поддержкой автозагрузки информации. blqs Вебмастеру 0 17-01-2013 13:21




 
Переход