Ответы пользователя по тегу bash
  • Как в Linux найти файлы одинакового размера?

    2ord
    @2ord
    Еще лучше, если можно будет находить файлы с размером совпадающин не только байт в байт, но и задавать диапазон. Например, найти все файлы, которые не отличаются друг от друга более чем на 10 Кб. Но это уже пожелание опционально
    утилита ssdeep умеет искать схожие файлы, производя нечеткое сравнение и генерирует хэш-сумму файла.
    Уточнение: диапазон нельзя указать. Она сама определяет критерии для сравнения.
    Ответ написан
    Комментировать
  • Что делает команда в Makefile?

    2ord
    @2ord
    1. Есть код, что делает етот код

    Собирает контейнер под заданным тегом и с заданными аргументами. Кстати, символ @ лишний.
    Всё остаётся локально до тех пор, пока не будет выполнена команда push для заливания на hub.docker.com или другие репозитории.

    2. Откдуа ми тянем репозиторий: project_name/php-full:latest ?
    ничего не тянем. Это собирается локально. Необходим файл Dockerfile, который обычно располагают в корне проекта.
    Ответ написан
    2 комментария
  • Как работает перенаправление вывода скрипта python?

    2ord
    @2ord
    Можно обвернуть системный вызов в async функцию и использовать await.
    https://realpython.com/async-io-python/#the-asynca...

    Добавлено:
    а нельзя ли просто сделать вывод в stdout и поточное чтение с вывода:
    python prog1.py | python prod2.py
    ?
    Ответ написан
    Комментировать
  • Как при помощи контрольной суммы зафиксировать все изменения в определенной директории?

    2ord
    @2ord
    Варианты:
    1. попробовать утилиту incron
    2. попробовать утилиту auditctl
    3. написать скрипт на Shell/Python с применением утилиты md5sum и inotify.
    Ответ написан
    Комментировать
  • Почему при установке MySQL 5.6 на Debian 7, возникает ошибка GPG?

    2ord
    @2ord
    Там же все написано: ключ (gpg) истек, и поэтому неактивен.
    Дебиан 7 уже не поддерживается. Нужно сделать апгрейд на 8.
    Ответ написан
    Комментировать
  • Как рекурсивно обработать наборы файлов?

    2ord
    @2ord
    1. Если не ошибаюсь, набор файлов конвертируется в 1 pdf командой
    convert filename-*.jpg out.pdf
    2. Чтобы нумерация страниц была верной, файлы должны именоваться с ведущими нулями, иначе обработаются страницы 1, 10, 2, 3, ...
    Осталось подумать как группировать файлы по именам , , ...
    Ответ написан
    Комментировать
  • Как можно оптимизировать этот скрипт?

    2ord
    @2ord
    Неплохо для первого раза.
    Согласен с AVKor насчёт обработки ошибок. Это нельзя игнорировать. Процесс может неудачно выполниться, связь с удалённым сервером может быть временно недоступна и т.д.
    1. Как минимум, вот этот кусок надо проработать лучше:
      mongodump --db super-db
      tar -cvf dump.tar dump/
      scp dump.tar $USER@$HOST:/home/$USER
      rm dump.tar && rm -rf dump/

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

    2. Архивы TAR лучше создавать в сочетании со сжатием. Ключами -j, -J или -z
    3. Если нет необходимости именно в TAR, то можно синхронизировать файлы на уданённый сервер при помощи утилиты rsync
    Ответ написан
    1 комментарий
  • Как разделить текст в csv с помощью sed?

    2ord
    @2ord
    Парсить входной файл как формат CSV: каждую исходную строку рассматривать как набор ячеек. Библиотек полным полно на любом языке программирования.
    2-ю ячейку разбиваем на части при помощи регулярных выражений. Каким именно образом - зависит от точного формата ячейки. Скажем, в частном случае название производителя может быть одним словом (Pirelli, Vredestein), а может 2 и более. Таким образом, из одну ячейку мы можем разбить на несколько, записывая результат в строку выходного файла.
    Аналогично и с другими ячейками.
    Ответ написан
    Комментировать
  • Какой самый оптимальный / надежный вариант для хранения данных?

    2ord
    @2ord
    Директории нафиг не нужны, ибо лишь только лишняя нагрузка на файловую систему при поиске существующей.
    Вместо этого воспользоваться Redis с её SADD, SISMEMBER.
    Ответ написан
    Комментировать