Как стать автором
Обновить
49
6.2
Сергей Кулик @saboteur_kiev

Configuration engineer

Отправить сообщение

какая жесть, простите?
вы уже не шутите, а явно лжете про 1-2 кнопочки в винде.
Любая настройка в GUI Также требует времени, разбирательства и так далее.
Если вы 10 лет работаете с каким-то софтом и наизусть помните кнопочки, то уважте людей, которые 10 лет работают с другим софтом и печатают в слепую.
По времени настройки будет практически сопоставимо.
Но в Линукс это будет еще и бесплатно и входит в штатную поставку.

Ну я повторю, что на диске с 10 млн файлов ваш rsync будет работать вечность - потому что, ну очевидно, что мне нужно синхронизировать сразу кучу файлов, а не один-два.

Так любой софт будет делать тоже самое, если нужно кучу файлов на кучу файлов. Это база.
Но непонятно, почему вечность, если мы работаем со списком. Или вы считаете что отдельные бэкап утилиты работают по волшебству, а не по тем же самым принципам как rsync?

Ну вам личное время не жалко? Не проще взять готовый софт и в 2 клика сделать нужное, чем сидеть скрипты писать-отлаживать?

Почему личное?
На работе была задача. Написать скриптик который отлично работает уже 10 лет или купить чужой софт, разобраться с тем что и как он работает, пройти возможные детские ошибки, развернуть его на серверах (перед этим пройти аудит софта в компании), вы как-то преуменьшили значимость "двух кликов".
Если софт уже есть в компании, и просто добавить в него еще парочку бэкапов - может быть. А с нуля - нормальный инженер может выбрать решение более соответствующее текущей задаче

масло это которое в котле?

Какую вечность???
Программа создания Airbus A3XX запущена в 2000 году (до этого момента была идея и разработка на бумажке, без финансирования. После одобрения финансирования и запуска самой программы, первый экземпляр взлетел в небо через 5 лет, а через 6 лет уже прошел сертификацию на серийное изготовление, и через 7 лет уже отгружены первые коммерческие экземпляры. То есть 7 лет после того как согласовали проект.

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

Импортозамещение касается ж не только материалов и приборов. А и например то, что у подрядчиков возможно их оборудование было импортное, в условиях санкций оно поизносилось без замены/обслуживания и они уже не могут поставлять такие же детали.

Поэтому реальный успех я бы оценивал уже на этапе серийного производства, когда можно более-менее подсчитать окупаемость проекта.

Ну примерно как даня милохин

Вы понимаете, что снапшоты - это не бэкапы?

А вы понимаете, что снапшоты это как раз именно бэкапы?
Или что это тогда по-вашему?

Я не игнорирую. Это точно такие же костыли, просто более сложные. Вот у меня есть диск с 10 млн файлов. Запустите на нем rsync и я посмеюсь. Там только сканирование списка файлов занимает несколько часов - а вам надо это будет сделать 2 раза, чтобы сверить с целевым диском. И это ж банальная вещь, если мы хотим перенести только изменения.

Очевидно же, что rsync умеет поддерживат список файлов для синхронизации.
То есть просто вешаешь службу мониторинга изменений, скидываешь список измененных файлов в файлик и раз в день запускаешь rsync по этому списку.
Сам с такой ситуацией сталкивался, решилось за 2 вечера, чтобы отшлифовать скрипт.

пробовали в рутрекере публиковать, хотя бы?

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

у меня на умной розетке висит веб-сервер. Там каждые лишние 100 байт можно без секундомера ощутить.

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

Может, если тот, кто открыл хендл, разрешил shared-доступ. Кстати, в этом случае и удалить файл будет можно, он не залочен.

Я такое не очень понимаю. Я предполагаю, что это просто способ реализация виртуального открытия файла, когда при каждом чтении/записи под капотом на самом деле файл открывается и закрывается сразу после записи данных. Иначе будет конфликт записей, если два процесс попробуют сделать это одновременно.
Может поэтому и удалить можно, потому что на самом деле файл "закрыт".

проблема с айнодами не в том, что линукс с ними как-то там хитро работает, а в том, что у вас, фактически, нет нормальных инструментов. В общем случае вы даже не сможете узнать, что у вас остались открытые и уже удаленные "файлы" (читай - айноды) и от этого у вас место закончилось, например. Т.е. зная-то что искать вы, конечно, найдете. Но это еще догадаться надо. А в винде неудалившийся залоченный файл - вот он, в глаза бросается.

Есть же список открытых хендлеров, все можно отследить, lsof - инструмент с начала времен.

А насчет "место закончилось", ну учитывая существование sparse файлов, это вообще в любой ОС нетривиальная задача, учитывая количество различных уровней виртуализации, возможность увеличения и уменьшения размеров файловой системы на лету... Это явно не слишком большая проблема.

Мне кажется, что удалять залоченный исполняемый файл (потому что его процесс ещё жив) на новый - какая-то очень тупая идея. Которая гарантированно приведет к тому, что у вас будет запущено в системе несколько версий этого ПО, причем фиг знает как такую ситуацию вообще определить и разруливать без перезагрузки ОС.

Так файл не удаляется, удаляется его имя в директории.
Это просто имя файла в директории, а не сам файл.
В виндовых файловых системах метаинформация о файле лежит прямо в directory entry, поэтому имя файла собственно это не имя файла а управляющая структура.

В *nix имя файла это просто directory entry с указанием куда дальше бежать. Например это может быть имя файла и директории, с ссылкой на inode. Все метаданные хранятся уже в айноде.
Или это может быть soft link, с ссылкой на другой path (в винде ярлык это отельный полноценный файл), не занимающий айноду.
У файла или директории вообще может быть несколько равноправных имен, и все ссылаются на ту же самую айноду.

Которая гарантированно приведет к тому, что у вас будет запущено в системе несколько версий этого ПО, причем фиг знает как такую ситуацию вообще определить и разруливать без перезагрузки ОС.

Закрыть ненужные процессы? Зачем ОС перегружать??

Так очень просто - сначала вы закрываете процесс и только потом обновляете его файлы.

Так если я закрываю процесс а потом обновляю файл, кто будет обновлять файл, если процесс закрыт?
У вас получается для обновления нужно создать еще один процесс, а чтобы его запустить надо создать отдельный файл-инсталлер, чтобы была возможность запустить новый процесс отдельно и остановить старый. Потом уже скачать файл, и опять запустить его, прибив инсталлятор.

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

Т.е. вы хотите править конфиг одной программой, пока с ним работает другая?

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

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

Как раз паралельно можно разжимать независимые блоки. Либо передавать тогда весь словарь до того, как начали разжимать блоки.

В бротли есть встроенный словарь популярных слов для web, что собственно и дает ему первичный прирост в 10-15% даже на сопоставимом с zip уровне сжатия на всяких xml/html/css. Там вроде около 120 кб.

так распаковать тоже надо?

Вы утверждали, что в *никсах нет бэкапов, я вам показал что они были задолго до появление MS.

И вообще, нынче юзают снепшоты на файловых системах или встроенном штатном LVM и вообще распределенные файловые системы.

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

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

нету такой миссии =)
Просто выжили те, кто смог передать, остальные (99.999%) вымерли.
Но это не миссия, эволюция совершенно не целенаправлена и не стратегична.

Вот живет, например, миллион разных индивидумов, а через 1000 лет про каждого из них или помнят или не помнят, а от какого-то одного осталось активное потомство, которое рассуждает "какие у нас цели в этой жизни" и "какая мудрая природа, наделила нас инстинктами", даже не особо задумываясь, что остальные 999999 просто сдохли с довольно похожими инстинктами, не оставив потомства.

Ну так в винде держится имя "удаленного" файла. В него всё ещё можно писать или читать, до тех пор, пока все открытые на запись хендлы не закроются.

Пишут не в имя файла, а в открытый хендлер. Другой процесс не может писать в файл, который кем-то открыт. Это одинаково для всех систем. Просто в Линукс хендлер завязан на inode, в виндовс на имя файла.

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

Я просто опустился на низкоуровневое объяснение, как файловые системы хранят данные. И для меня очевидно это поведение, и вдобавок понимая как это реализовано, я отлично понимаю что ни MS ни POSIX системы не будут идти друг другу на встречу и обмениваться фичами из-за того, что эта реализация слишком глубоко в архитектуре.

Как только они закроются - файл мгновенно удалится.

Мне почему-то кажется, что такой подход намного лучше невидимых инод, существование которых даже неизвестно как проверить...

стандартная команда stat показывает вам все метаданные о файле - аттрибуты, тайминги, права, размеры

> Можно создать новый файл с таким же именем, например

ну вот единственный плюс разве что. Но я бы не сказал, что такое прям часто надо.

То есть? Это постоянно надо! Регулярно обновляется софт, в разработке это вообще каждый новый билд надо запустить, особенно если ты не работаешь с контейнерами

Кроме того, тут вы гарантированно словите другую проблему винды - если удалить файл, а потом создать новый с таким же именем, то новый отнаследует аттрибуты удаленного: как минимум все даты будут от того старого файла, а не актуальные. Эта фича живет в винде как минимум со времен WinNT и я не слышал, чтобы её вообще хотели исправить.

Это явно какой-то очень странный баг. Но я только что попробовал сделать, и у меня ничего не отнаследовало, новый файл со своими датами. Уточните какие условия нужно соблюсти, чтобы такое случилось, потому что возможно такого бага и нет, поэтому и не чинят.

Чем дольше я пользуюсь софтом, тем всё больше я сторонник создавать файлы с уникализацией имени - добавляя хеш, версии или даты к ним. Потому что от одноименных файлов проблем больше, чем пользы. Особенно в таких критичных ситуациях, как обновление софта.

Если будете обновлять какой-нить winamp.exe, msword.exe, far.exe, что будет происходить? сколько нужно накопить файлов, как переделывать ярлыки в меню пуск, что будет происходить с поиском и индексированием?
Какой-то очень странный способ работы с файлами.
А если это конфиги файлы с данными, как их из программы открывать? тоже все по суффиксам, и word12345.exe будет искать и работать только word12345.ico ?

Впрочем да, что это я - в линуксах же вообще бэкапов как системы не существует.

То есть?
tar и dd появились еще до того как появился даже ДОС

Любой из десятков УЦ (и у РФ свой появился, корневой серт тебе впердолили в яндекс браузер, хочешь ты или нет)

Что значит хочу я или нет?
У меня нет яндекс браузера и никогда не будет.

Информация

В рейтинге
851-й
Откуда
Украина
Зарегистрирован
Активность