utros
13.09.2011 05:48
Псач, у меня опять линуксопроблемы.
Есть программа, которая пишет дофига гигов на стандартный вывод.
Нужно записать это всё в файл, проверяя правильность записи и перезаписывая при необходимости.
Сейчас пишу в файл при помощи tee, так что можно перенаправить стандартный вывод куда-нибудь :)
Ты меня пугает. "Дофига гигов на стандартный вывод — уже страшно".
А на чем программа?
Это lbzip2. Подозреваю, что на сишке.
Ок. А как ты собрался проверять правильность записи?
Если бы я знал, думаешь, задавал бы такие вопросы?
В идеале, нужна программа, которая на стандартный ввод принимает поток бреда, делит его на блоки, пишет их в файл, затем читает из файла обратно и проверяет блоки на соответствие.
Я с ходу ничего подобного не нагуглял :(
Ты сомневаешься в правильности записи на диск что-ли?
Ну собери raid с проверкой четности
Да, сомневаюсь. У меня второй раз уже lbzip2 не может распаковать архив :(
Говорит, что BZ2_bzDecompress(): BZ_DATA_ERROR
А когда бэкапы лежали на другом сервере, всё было прекрасно.
И да, железо не моё. Через 1,5 месяца придёт полка, а пока приходится довольствоваться тем, что есть.
Порошок, уходи.
ПОЗДНО, ОН УЖЕ ЗДЕСЬ!
НЕЕЕЕЕТ!
Ты мудак? softname > file
Если срёт в stderr, то softname 2> file либо softname > file 2>&1 (так всё в одну кучу)
А проверка? :]
А что под этим вообще понимается?
см. выше по треду.
Ты долбоёб?
1. Вопрос не о том
2. tee используется в паре с ionice для понижения приоритета.
Ну дак это по-другому надо тестить. Берёшь файл, пакуешь на своём компе, пакуешь на удалённом, сравниваешь md5.
Этот файл размером 250+ гигов получается. Локально его особо негде хранить.
Дык выбери файл поменьше. Обычно граница в 4 гига, возьми гигов 8-10, упакуй.
В чём смысл?
У меня есть папка с очень стрёмной структурой, которую я закатываю таром в один файл, а дальше жму bzip'ом в дофига потоков. Разбить фактически нереально.
Смысл в том, что надо проблему описывать целиком и не думать, что ты такой дохуя умный, что не можешь сделать только последний шаг, а все предыдущие сам прошёл правильно.
У меня проблема в том, чтобы корректно записать вывод программы в файл на сетевом разделе, при условии, что вывод программы имеет гигантский размер.
А сетевой раздел чем примонтирован?
samba
Ох лол. А как именно? smbfs/cifs? У них своих глюков хватает, лучше б ты sshfs использовал или nfs на крайняк.
cifs.
И это не от меня зависит: все вопросы к админам.
Месяца через 1,5 прилетит полка, тогда и будет nfs с блэкджеком и прочими радостями.
Тогда попробуй smbnetfs, хуле. Ещё могу посоветовать в опции монтирования cifs добавить nounix, у меня от этой хуйни б̶р̶а̶т̶ сисколл trunc не хуярил.
В смысле, пока не дописал опцию, не хуярил. И не trunc, а truncate.
В man mount.cifs ничего нет про nounix.
Завтра посмотрю.
Вруша.
nounix
Disable the CIFS Unix Extensions for this mount. This can be useful
in order to turn off multiple settings at once. This includes POSIX
acls, POSIX locks, POSIX paths, symlink support and retrieving
uids/gids/mode from the server. This can also be useful to work
around a bug in a server that supports Unix Extensions.
See section INODE NUMBERS for more information.
Если у тебя нечто дебианоподобное, поставь cifs-utils.