Чтение данных из dev с записью в файл с ограничением на размер
От: k55 Ниоткуда  
Дата: 28.11.13 09:10
Оценка:
День добрый.

Подскажите как можно организовать средствами busybox чтение из /dev/ttyS1 в файл(-ы).
Хочется задать размер файла. В случае достижения размера сдвигать файл.

Например: Пишем в log.txt как только файл достиг требуемого размера переносим его в log.txt.0 и продолжаем писать в log.txt

Текущая "реализация" выглядит так:
cat /dev/ttyS1 > /var/log/log.txt

Не совсем понимаю как сюда добавить проверку размера и т.д.
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
Re: Чтение данных из dev с записью в файл с ограничением на размер
От: watchmaker  
Дата: 28.11.13 11:14
Оценка:
Здравствуйте, k55, Вы писали:

k55>Подскажите как можно организовать средствами busybox чтение из /dev/ttyS1 в файл(-ы).

k55>Хочется задать размер файла.

Нарезать вывод кусочками по одному мегабайту, например:
split -b 1M /dev/ttyS1 /var/log/log.
Re[2]: Чтение данных из dev с записью в файл с ограничением на размер
От: k55 Ниоткуда  
Дата: 28.11.13 11:37
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Нарезать вывод кусочками по одному мегабайту, например:

W>
split -b 1M /dev/ttyS1 /var/log/log.


нет split в системе.
посмотрю в исходниках busybox может добавить можно.
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
Re[3]: Чтение данных из dev с записью в файл с ограничением на размер
От: watchmaker  
Дата: 28.11.13 11:58
Оценка: 2 (1)
Здравствуйте, k55, Вы писали:

k55>:( нет split в системе.

k55>посмотрю в исходниках busybox может добавить можно.
split в busybox есть. Но, возможно, он был выключен в настройках при сборке, либо просто версия busybox «не та».

Но вообще можно решить задачу многими способами. Хоть цикл вручную написать:
cat /dev/ttyS1 | while true; do aidx=$((aidx+1)); dd bs=1 count=1024 of=log.$aidx; done
Re[4]: Чтение данных из dev с записью в файл с ограничением на размер
От: k55 Ниоткуда  
Дата: 28.11.13 13:05
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Здравствуйте, k55, Вы писали:


k55>> нет split в системе.

k55>>посмотрю в исходниках busybox может добавить можно.
W>split в busybox есть. Но, возможно, он был выключен в настройках при сборке, либо просто версия busybox «не та».
Да, я уже глянул что он там есть, но как ты и сказал мы его не собираем.

W>Но вообще можно решить задачу многими способами. Хоть цикл вручную написать:
cat /dev/ttyS1 | while true; do aidx=$((aidx+1)); dd bs=1 count=1024 of=log.$aidx; done

Хм, попробовал dd, но он себя странно ведет. Он читает 1024 в секунду, хотя данных в /dev/ttyS1 нету или значительно меньше чем 1024.
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
Re[5]: Чтение данных из dev с записью в файл с ограничением на размер
От: watchmaker  
Дата: 29.11.13 10:14
Оценка:
Здравствуйте, k55, Вы писали:

k55>Хм, попробовал dd, но он себя странно ведет.


Действительно странно. Ведь в вышеприведённом примере dd даже не открывает файл устройства, ибо опции if= нет. А получить проблем с чтением из pipe вообще сложно. Ну то есть ошибка вероятнее проявится ещё в cat чем в dd. Может устройство не то? Может прав нет? Или cat тихо ошибку IO выдаёт?

k55>Он читает 1024 в секунду, хотя данных в /dev/ttyS1 нету или значительно меньше чем 1024.

Как-то непонятно написано. Что же он читает? Что значит «1024 в секунду»? Что внутри файлов оказывается?
Re[6]: Чтение данных из dev с записью в файл с ограничением на размер
От: k55 Ниоткуда  
Дата: 29.11.13 12:41
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Здравствуйте, k55, Вы писали:


k55>>Хм, попробовал dd, но он себя странно ведет.


W>Действительно странно. Ведь в вышеприведённом примере dd даже не открывает файл устройства, ибо опции if= нет. А получить проблем с чтением из pipe вообще сложно. Ну то есть ошибка вероятнее проявится ещё в cat чем в dd. Может устройство не то? Может прав нет? Или cat тихо ошибку IO выдаёт?

cat глючит. Так что dd вне подозрения.


ttyS1 — это девайс подключеный через последовательный порт.

Пришлось расширить свой кругазор.

Оказывается stty для этого устройства показывает speed 38400 baud что есть неверно т.к. работает на 115200. Попробовал cat на другом девайсе у которого скорость нормально прописана все ок.

Спасибо.
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.