• Как сделать так, чтобы при выполнении программа не закрывалась, а просила вводить значения дальше?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    #!/bin/bash
    select choice in "Текущий пользователь" "Данные о каталоге" "Запущенные процессы" "Выход"
    do
      echo "$choice"
      case "$REPLY" in
        1) echo $(users);;
        2) ls;;
        3) ps;;
        4) break;;
      esac
    done
    Ответ написан
    Комментировать
  • Стоит ли переписывать старый проект на .NET6 (на голом энтузиазме)?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Нет, оно того не стоит. Любая работа должна быть оплачена. Ибо сейчас напишешь за свой счет, а потом начальника скажет "о, отлично, молодец, можем теперь сэкономить на программистах и поддержке, у меня как раз знакомый ищет, ща его поставлю, а ты можешь быть свободен, заодно выпишу себе премию, во какой я молодец". Этот код решает задачи бизнеса. Если бизнес готов тратить на его поддержку и сопровождение деньги - то это проблемы этого бизнеса. Почему это наемный работник должен решать проблемы бизнеса за свой счет? Правильно сделать так: оформить все в виде какого-то документа с конкретными аргументами, цифрами, графиками и т.п. и выдать его начальству. Типа сейчас поддержка проекта стоит столько-то, приносит такие-то проблемы, переписать будет стоить столько-то, сопровождение нового будет столько-то, оно решает такие-то проблемы. И выдаете данный документ начальству. Можно даже в бумажном виде в нескольких экземплярах. А далее пусть у начальства голова болит.
    Ответ написан
    3 комментария
  • Как создать такой вывод в bash script?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    С чего начинать разбираться?

    man 7 inode -- обзор того, какие атрибуты есть у файлов
    man 1 mkdir -- создавать каталоги и назначать им разрешения
    man 1 touch -- создавать файлы и менять даты файлам и каталогам
    man 1 chmod -- менять разрешения файлам и каталогам
    man 1 ln -- создавать символьные ссылки
    Ответ написан
    7 комментариев
  • Как поставить пароль на архив tar/gzip?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Tar и gzip это очень старые утилиты. Им по 30-40 лет. И создавались они в те времена когда симметричное шифрование еще не было так развито.

    Но архивчик можно после упаковки зашифровать другими утилитами например openssl.
    openssl enc -in file.txt -out encypted_file.txt -e -aes256

    Я так делал когда шифровал бекапы oracle dbms.

    Если переписать чуть лучше скрипт - то можно объединить операции tar->gzip->openssl в один пайплайн
    без воздания промежуточных файлов.
    Ответ написан
    3 комментария
  • Как поставить пароль на архив tar/gzip?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    mysqldump -u $USER -p$PASS --ignore-table=myBase.log_chat --ignore-table=myBase.log_main --routines $DB > $BACKUP_DIR/mysql.sql
    + tar -czvf $ARCHIVE $BACKUP_DIR


    Странное применение targzip в данном случае. совершенно бессмысленное.
    Юзай просто zip, у него есть -e (encrypt) опция, но там слабенькая защита. уж проще openssl, как указали в другом ответе.

    Чтоже касается tar. Весь смысл тар и gzip в том, что они умеют работать с потоком, а не файлом. Поэтому то, что вы сперва сохраняете в файл, а потом отдельно еще в tar/gz - бессмысленная работа, которая ничего не дает. Вдобавок и сам тар там не нужен, у вас же один файл.
    Поэтому можно сделать так:
    mysqldump -u $USER -p$PASS --ignore-table=myBase.log_chat --ignore-table=myBase.log_main --routines $DB | gzip > $BACKUP_DIR/mysql.gz


    и потом шифровать файл чем угодно.
    Или сразу:
    mysqldump -u $USER -p$PASS --ignore-table=myBase.log_chat --ignore-table=myBase.log_main --routines $DB | gzip | openssl enc -aes-256-cbc -out encrypted $BACKUP_DIR/mysql.gz.encrypted

    Пароль или руками или перенаправить
    mysqldump -u $USER -p$PASS --ignore-table=myBase.log_chat --ignore-table=myBase.log_main --routines $DB | gzip | openssl enc -aes-256-cbc -out encrypted $BACKUP_DIR/mysql.gz.encrypted<<<"mysecretpassword"
    Ответ написан
    Комментировать
  • Как объединить виртуальный бридж Docker и QEMU?

    hint000
    @hint000
    у админа три руки
    По идее так должно работать:
    $ echo allow docker0 > /etc/qemu/bridge.conf
    Так qemu узнаёт, в какой бридж добавлять виртуальные интерфейсы.
    Ответ написан
    1 комментарий
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос одновременно дебильный и нормальный.
    Автор просто не может нормально словами написать, чего хочет.
    Для современного поколения, воспитанного ютубой, это нормально.
    Если бы вопрос можно было задать с помощью слов "гы-гы", "круто, чувак" и смайликов, то у него бы все получилось.
    А пока приходится использовать интеллект на принимающей стороне, чтобы понять, что он там мычит.

    А мычит он не про сам шелл, а про используемый в нем скриптовый язык.
    И ответ получается очень простой - для некоторых задач Bash scripting language тупо подходит лучше. Не говоря уже про интеграцию скриптового языка баш в командную оболочку баш, какой никогда не добиться с помощью "обёрток".

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

    Так что да - или легаси, или тупо адекватность задаче.

    Апд. В ходе этой дискуссии я сообразил одну очень важную вещь. Язык программирования по определению является вторичным по отношению к командной оболочке. Главное в баше - это все-таки возможность запускать команды и позволять им взаимодействовать друг с другом. А язык уже построен вокруг этой основной задачи. Если вы попытаетесь вкрячить этот функционал в какой-то из языков программирования общего назначения, вы испортите и оболочку, и язык.
    Ответ написан
    21 комментарий
  • Какую современную систему стейт-менеджмента лучше выбрать для React-проекта с "нуля"?

    Все сильно зависит от специфики вашего проекта, но по своему опыту могу сказать, что ФП хранилища в проекте с бизнес-логикой - зачастую хуже, чем ООП варианты.
    В своих проектах обычно использую стек из Mobx + tsyringe(DI). С недавних пор добавил в эту схему React-Query. Иногда бывает полезно использовать MST, если ваша бизнес логика требует каких-то сложных моделей данных с собственной логикой, а так же сложной связи между ними. В частности, MST дает немного больше возможностей для проектирования моделей данных, нежели обычные классы с Mobx.
    Поясню за ответственности:
    1. Mobx - отвечает именно за бизнес-логику frontend приложения. Не надо туда пихать геттеры данных с бэкенда, которые нужно просто визуализировать, для это есть React-Query. Поскольку Mobx базируется в первую очередь на классах, для работы с ним мы можем применять ООП и соответствующие паттерны, выстраивая интересно логику из хранилищ и сервисов прямо на frontend. Для лучшего понимания как это правильно варить, рекомендую глянуть на backend.
    2. React-Query - у них на сайте прекрасно описано, зачем они нужны, и этот инструмент в любом случае призван дополнять типичные хранилища состояний, будь то хоть Mobx, хоть Redux, хоть еще что-либо, рекомендую почитать. Отличный инструмент для работы с состоянием приложение в случае тех данных, которые просто нужно взять с бэка и отобразить.
    3. Tsyringe - для меня проверенный и неплохой инструмент для работы с DI на фронте. Это гораздо лучше, чем пробрасывать хранилища внутрь других хранилищ через конструкторы или через глобальные переменные. Аналогично с подключением в эту схему сервисов. Сразу скажу, что есть риск запутаться в конфигурациях сборщика, если используете CRA, ибо и Mobx, и Tsyringe используют в своей основе декораторы, а babel их переваривает с переменным успехом, но если разобраться, настроить можно)

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

    Вот такие мысли, надеюсь поможет)
    Ответ написан
    Комментировать
  • Как с помощью bash скрипта запустить несколько сессий tmux?

    kotomyava
    @kotomyava
    Системный администратор
    Зачем вообще запускать ботов в tmux?
    Надо запускать их с помощью системы инициализации своего дистрибутива. Вероятнее всего, у вас systemd, вот им и надо пользоваться. Создать для каждого бота unit файл и добавить в автозапуск.
    Ответ написан
    2 комментария
  • Какие заклинания надо знать, что бы запустить VirtualBox Guest Additions, в данном случае, на Ubuntu Server?

    @pfg21
    ex-турист
    а зачем он ??
    в репозитории лежат готовые утилиты под виртуалбокс virtualbox-guest-utils virtualbox-guest-x11
    драйвера уже вкомпилены в ядро.
    если есть желание компилить драйвера с утилитами то virtualbox-guest-dkms

    п.с.: кстати да, убунту-сервер не имеет графической подсистемы.
    а консоль не работает в произвольном по размеру окне, это кажись особенность реализации текстового видеорежима. вообще, но могу ошибаться.
    если нужно консоль произвольного размера, то подключайся через ssh, а сессию виртуалбокса запускай через фоновый режим.
    Ответ написан
    4 комментария
  • Как скопировать в несколько потоков?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Написал скрипт который по отдельности сжимал папки и копировал на удалённый сервер там распаковывал

    Так сжимайте сразу на удаленный сервер

    tar cvfz - mydirectory|ssh user@remote_server "cd target_directory;tar xvfz -"


    Или даже проще будет запустить несколько экземпляров rsync в фоне через xargs или parallel
    Ответ написан
    7 комментариев
  • Можно ли организовать веб-интерфейс для sftp?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Окей, гугл.
    Браузерный файл-менеджер

    Только при чем тут sftp?
    Ответ написан
    4 комментария
  • Почему не получается перейти с авторизации по паролю на авторизацию по ключу?

    @cheeroque
    Смените для вашего проекта url ремоута:

    git remote set-url <remote_name> <remote_url>

    Где remote_name – скорее всего, origin.
    Новый remote_url смотрите на битбакете: нажимаете clone в вашем проекте, в заголовке модалки выбираете SSH и копируете получившуюся ссылку.
    Ответ написан
    1 комментарий
  • У какого десктопного Linux минимальные требования к RAM?

    ValdikSS
    @ValdikSS
    Linux для компьютера 2007 года

    Прежде всего определимся с понятием умеренно комфортной работы. В моём понимании это означает возможность взаимодействия с современными (нагруженными) веб-сайтами, не чувствуя себя стеснённым, и не раздражаясь ежеминутно от тормозов.
    Для этого минимально необходимы:

    * 64-битный процессор — более слабые 32-битные не подойдут для нынешних веб-сайтов не в силу своей архитектуры, а из-за производительности. 64-битные процессоры массово появились в 2006-2007 годах.
    * 1 ГБ RAM — абсолютный минимум для терпеливых. 2 ГБ и более значительно расширят возможности многозадачности и повысят общую скорость работы, поэтому настоятельно рекомендуются.


    Модифицированный Linux Mint XFCE для старых компьютеров доступен на этой же странице.
    Ответ написан
    Комментировать
  • Приложение для анализа диска Linux?

    deepblack
    @deepblack
    NCurses Disk Usage

    sudo apt install ncdu
    Ответ написан
    Комментировать
  • Ноутбук начал притормаживать, как устранить проблему?

    @cicatrix
    было бы большой ошибкой думать
    Судя по симптомам из-за перегрева машина начинает понижать частоту граф. процессора, это называется throttling.
    Лечить это надо разборкой ноутбука, чисткой вентиляторов и радиаторов от пыли, сменой термопасты.
    Ответ написан
    3 комментария
  • Как установить Arc-Welder в Linux на Chromium?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    а что ? есть какие-то отличия от винды в установке из хромого магазина ?
    заходите с хрома и ставите
    https://chrome.google.com/webstore/detail/arc-weld...
    Ответ написан
    Комментировать