Pull to refresh
  • by relevance
  • by date
  • by rating

Сжатие файлов (tar и LZMA) на стороне клиента

JavaScript
Translation
Артель BrowserPlus (из Yahoo) выпустила API для сжатия файлов на стороне клиента. Как объясняется в нижеследующем скринкасте, джаваскриптовый API позволяет вам упаковывать и сжимать файлы в клиенте посредством LZMA или tar.


    «Client Side Compression» выложил Lloyd Hilaiel на Vimeo

Вы можете читать далее о реализации или испытать демонстрацию живьём (потребуется BrowserPlus).

[Browser Plus add-on to pack on the client side]
    Прилад Browser Plus для упаковки на стороне клиента

Использовать этот API нетрудно: вызываем надобный метод и посылаем ему файлы:
BrowserPlus.Tar.tar({'files':files});
BrowserPlus.LZMA.compress({'files':files});
На GitHub доступны оба эти расширения — LZMA и tar.

Нюансы перевода:  слово «прилад», давно живущее в великорусском языке (как минимум, со времён Даля), здесь служит переводом технического термина «add-on» (а не «device», как в украинском), слово же «артель» означает команду разработчиков (в оригинале — «team»).
Total votes 48: ↑27 and ↓21 +6
Views1.8K
Comments 41

Перенос системы LINUX на другой винчестер с переразбивкой разделов

Configuring Linux
Sandbox
Когда-то давным давно в далекой-далекой галактике мне понадобилось перенести мою систему linux с одного винчестера на другой, а пользоваться проприетарщиной ужас, как не хотелось. Погуглив и поискав с помощью других поисковиков я нашел для себя решение, которое линукс-админу может показаться смешным, а меня оно тогда здорово выручило.

В общем — вот оно. Бейте ногами, режьте на части. Встречайте!

Читать дальше →
Total votes 62: ↑53 and ↓9 +44
Views62.6K
Comments 58

Работа с архивами tar и gz средствами PHP

PHP
Sandbox
Как это часто случается, все началось с того, что мне потребовалось нечто, позволяющее обрабатывать архивы «tar.gz» средствами php. Покопавшись в Интернете, я с удивлением обнаружил, что ничего сколько-нибудь приемлемого на эту тему не опубликовано.

Что у нас есть?

1. PEAR расширение для PHP http://pear.php.net/package/Archive_Tar Прекрасно, но в моем случае – неприемлемо, поскольку доступа к настройкам сервера у меня нет. Вынужденно отметаем.
2. Отменная статья Алексея Валеева «Работа с архивами tar.gz в php». То, что нужно, но – увы. Мне требовалось решение лицензионно «прозрачное», не способное вызвать вопросов. По этому, использование библиотеки от Битрикса тоже не годилось.

Собственно, это – все.
Читать дальше →
Total votes 9: ↑5 and ↓4 +1
Views16.9K
Comments 24

Ещё один формат хранения архивов: dar

System administration*nix

Введение



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

Однако этого недостаточно, и сейчас для пользователя системы бэкапов важен такой параметр как скорость, причём не только скорость самого бэкапа, то есть архивирования файлов, но и восстановления.
Читать дальше →
Total votes 75: ↑69 and ↓6 +63
Views39K
Comments 52

Читаем tar за 26 строк ANSI C кода

ProgrammingC

Архиваторы — это страшно! Огромные и ужасные алгоритмы, которые обычному человеку никогда в жизни не понять! Rar, zip, gzip, tar — современные стандарты де-факто, а значит крайне сложные и навороченные штуки, которые и пытаться понять не стоит. Ну, tar выглядит попроще, может там всё не так сложно? Смотрим git с исходниками. Видим десятки файлов, многие на десятки килобайт. Мда. Видимо, тупик.


__________________|      |____________________________________________
     ,--.    ,--.          ,--.   ,--.
    |oo  | _  \  `.       | oo | |  oo|
o  o|~~  |(_) /   ;       | ~~ | |  ~~|o  o  o  o  o  o  o  o  o  o  o
    |/\/\|   '._,'        |/\/\| |/\/\|
__________________        ____________________________________________
                  |      |dwb

На самом деле всё не так сложно. В документации было описано, что tar — просто способ записи нескольких файлов на ленту. Т.е. всё должно быть просто. По факту — набор вспомогательной информации для каждого файла и непосредственно его содержимое. Именно понимание этого факта и позволило сделать читатель tar-файлов в 26 строк.

Читать дальше →
Total votes 63: ↑57 and ↓6 +51
Views18.1K
Comments 34

Не доверяйте SUDO, она может вас подвести

Information Security

Всем доброго времени суток, в этой статье постараюсь описать некоторые способы обхода ограничений на исполнение команд в ОС Linux, советы по использованию которых можно часто встретить на различных форумах. Демонстрация будет проведена на примере задания Restricted shells с сайта Root-Me. Итак, начнём.
Читать дальше →
Total votes 99: ↑94 and ↓5 +89
Views42.9K
Comments 8

Как мы в ISPsystem резервные копии делали. Часть вторая

ISPsystem corporate blogOpen sourceBackup
Продолжение истории о похождениях отдельной задачи в ISPsystem. Рассказывает руководитель разработки Александр Брюханов. Первая часть здесь.



Лучшее — враг хорошего

Написание резервного копирования или установки и настройки ПО у нас всегда были расстрельными задачами. Когда ставишь что-либо из репозиториев, не можешь быть до конца уверен в результате. Да даже если всё сделано идеально, мэнтейнеры рано или поздно что-нибудь сломают. Что же касается резервных копий: о них вспоминают, когда возникают проблемы. Люди уже на взводе, а если еще что-то идет не так, как они ожидали… ну вы поняли.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views3K
Comments 4

Как я нашёл баг в GNU Tar

System administration*nixDebuggingData storageSoftware
Translation
Автор статьи — Крис Зибенманн, системный администратор Unix в университете Торонто

Время от времени в моей работе происходит нечто странное, что заставляет задуматься. Даже если сразу непонятно, какие следуют выводы. Недавно я упомянул, что мы нашли ошибку в GNU Tar, и история о том, как это произошло, — один из таких случаев.

Для бэкапа файл-серверов мы используем Amanda и GNU Tar. В течение долгого времени у нас периодически возникала довольно редкая проблема, когда tar сходил с ума при резервном копировании файловой системы с каталогом /var/mail, производя огромное количество выходных данных. Обычно этот процесс уходил в бесконечность и приходилось убивать дамп; в других случаях он всё-таки завершался, выдав терабайт(ы) данных, которые вроде бы отлично сжимались. Когда мне в очередной раз попался такой гигантский файл tar, я подверг его проверке — и выяснил, что он частично состоит из нулевых байтов, которые очень не нравятся команде тестирования tar -t, после чего всё возвращается в норму.

(Из-за этого мне стало интересно, появляются ли нулевые байты естественным образом у людей в почтовых ящиках. Оказалось, что поиск нулевых байтов в текстовых файлах не такой простой и да, они там есть).
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Views7.9K
Comments 12

Разрабатываем утилиту на GraalVM

Java

Постановка задачи


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


Решений для этого может быть очень много — Samba / FTP / scp. Можно просто залить файл в общедоступное публичное место типа Google Drive, приложить к задаче в Jira, или даже отправить письмом.


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


А хочется чего-то более легковесного и гибкого.


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


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


$ python3 -mhttp.server
Serving HTTP on 0.0.0.0 port 8000 ...

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

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views3.6K
Comments 3

Резервное копирование, часть 6: Сравнение средств резервного копирования

Southbridge corporate blogSystem administrationServer AdministrationDevOps

В данной статье будет проведено сравнение средств резервного копирования, но сначала стоит узнать, как они быстро и хорошо справляются с восстановлением данных из резервных копий.
Для простоты сравнения будет рассматриваться восстановление из полной резервной копии, тем более что данный режим работы поддерживают все кандидаты. Для простоты цифры взяты уже усредненными (среднее арифметическое из нескольких запусков). Результаты будут сведены в таблицу, в которой также будет информация и о возможностях: наличие веб-интерфейса, простота в настройке и работе, способность к автоматизации, наличие различных дополнительных возможностей (к примеру, проверка целостности данных) и т.п. Графики будут показывать загрузку сервера, где данные и будут применяться (не сервера для хранения резервных копий).
Читать дальше →
Total votes 30: ↑25 and ↓5 +20
Views16.8K
Comments 46

Путешествие к центру… docker image. Или как скачать образ из registry без docker

PythonProgrammingDevOps

За 3 дня до нового года появилась задача, передать клиенту наше ПО через менеджера, на флешке. ПО – это микросервисная платформа в несколько десятков docker-образов с множеством настроек и “километровым” helm-чартом. Что мы имели:


  • Менеджер в Москве (я не оттуда)
  • Windows
  • Прямого взаимодействия нет (а если бы и было, то не особо помогло)
  • docker-а нет

Пфф, подумал я! Возьму Golang, напишу программку, скомпилирую под Windows.
… и 5 часов спустя осознал поспешность своих выводов. В тот момент в первый раз вспомнился смех Нельсона. ХА-ХА! Который преследовал меня все то время, что я потратил на изучение вопроса.

Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Views7.4K
Comments 13

Почему tar.xz-файлы, созданные с Python tar, оказались в 15 раз меньше, чем у macOS tar

Флант corporate blogProgrammingData compression
Translation

Прим. перев.: это не совсем обычный перевод, потому что в его основе не отдельно взятая статья, а недавний случай со Stack Exchange, ставший главным хитом ресурса в этом месяце. Его автор задает вопрос, ответ на который можно отнести к базовым знаниям в области ИТ, но в то же время оказавшийся откровением для некоторых посетителей сайта.

Сжимая каталоги по ~1,3 ГБ, в каждом из которых по 1440 файлов JSON, я обнаружил 15-кратную разницу между размером архивов, сжатых с помощью tar на macOS или Raspbian 10 (Buster), и архивов, полученных при использовании библиотеки tarfile, встроенной в Python.

Читать далее
Total votes 80: ↑77 and ↓3 +74
Views19.5K
Comments 24