• Как вывести общий объем свободного и занятого дискового пространства?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    есть замечательная утилита lsblk
    например, вывести информацию по всем смонтированным FS(файловым системам) в виде - имя, доступный размер, используемый размер и процент от использования
    $ lsblk -lo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
    NAME      FSAVAIL FSUSED FSUSE%
    nvme1n1p1    423M    88M    17%
    nvme1n1p2  423,2G    29G     6%
    nvme0n1p2  360,2G  73,3G    16%

    awk здесь используется для отсечения не смонтированных ФС и самих дисков у которых естественно будет отсутствовать доступный размер.
    Если нужен общий размер файловой системы то добавьте параметр FSSIZE

    если нужно без шапки то используй ключ -n
    $ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
    nvme1n1p1    423M    88M    17%
    nvme1n1p2  423,2G    29G     6%
    nvme0n1p2  360,2G  73,3G    16%

    если нужно по конкретной ФС то просто указываем её
    $ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% /dev/nvme1n1p2
    nvme1n1p2  423,2G    29G     6%

    если нужна конкретная цифра то оставляем тока нужный параметр
    $ lsblk -no FSUSED /dev/nvme1n1p2
       29G

    при желании можно получить данные через json и после нужным образом обработать, например:
    $ lsblk -Jo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
    29G

    если нужно в байтах, то используйте ключ -b
    $ lsblk -Jbo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
    31178240000


    еще как пример, для файловой системы nvme1n1p2 отобразим в форматированном виде информацию по свободному и занятому пространству:
    $ lsblk -Jo FSAVAIL,FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[] | "Всего занято:\t\(.fsused)\nВсего свободно
    :\t\(.fsavail)"'
    Всего занято:	29G
    Всего свободно:	423,2G


    п.с.
    если нужна обобщённая информация сразу по всему диску то наверное проще будет использовать smartctl
    sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято:\t\(.utilization.bytes)\nВсего свободно:\t\(.capacity.bytes - .utilization.bytes)"'
    Всего занято:	88322768896
    Всего свободно:	411785093120

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

    и да, для преобразования размеров довольно удобно использовать утилиту numfmt
    $ sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято: \(.utilization.bytes)\nВсего свободно: \(.capacity.bytes - .utilization.bytes)"' | numfmt --to=iec --field 3 --padding=1 --format %.1f
    Всего занято: 82,3G
    Всего свободно: 383,6G
    Ответ написан
    1 комментарий
  • Сборка бюджетного ПК, запустится?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Даже не соберётся. Процессор от AMD на сокет AM4 не встанет в интеловский сокет LGA1200.
    Ответ написан
    Комментировать
  • Как отследить область события "click"?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    if(event.target.closest('<селекторы которые надо игнороиовать>'))
      return;
    // закрываем
    Ответ написан
    Комментировать
  • Что быстрее SQL или Javascript?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В общем, чтобы не издеваться над девушкой, объясним на пальцах.

    Во-первых, заголовок у вопроса чудовищно некорректный. Это все равно что спросить, "что быстрее - пылесос или стиральная машина?"
    Во-вторых, ответ на вопрос "производить ли обработку данных в БД или же запросить все данные в клиентское приложение и обрабатывать там" совершенно очевиден: обработку данных следует производить в общем случае только в БД. Она для этого и придумана. Чтобы обрабатывать значительные объемы данных.

    Да, js тоже "может" обрабатывать большие объемы данных.
    Но чтобы значительный объем данных обработать, его сначала надо передать, полностью забив канал между сайтом и базой
    Чтобы значительный объем данных обработать, его надо сначала проиндексировать. Причем делать это каждый раз, а не использовать уже имеющийся набор индексов
    Чтобы значительный объем данных обработать, надо иметь значительный объем памяти или упасть из-за её недостатка
    Чтобы значительный объем данных обработать в многопоточном режиме (а сайт как раз является многопоточной системой), все вышеперечисленное надо умножить на количество посетителей сайта - при каждом запросе перегонять весь массив данных, выделять память, индексировать, считать. Если же вы оставляете все данные в памяти приложения, то их тогда надо как-то синхронизировать с БД. То есть вы себе собираете кучу проблем на пустом месте.

    Несомненно, из любого правила есть исключения. И бывают ситуации, когда приходится считать в приложении.
    Но на вопрос в общем виде ответ будет совершенно однозначный. Не "может так, может сяк", а только в БД.
    Ответ написан
    9 комментариев
  • Какие есть варианты аудио плеера с веб интерфейсом?

    ValdikSS
    @ValdikSS
    Ampache (функция localplay)
    Ответ написан
    Комментировать
  • Какие есть варианты аудио плеера с веб интерфейсом?

    @Drno
    VLC...
    Ответ написан
    Комментировать
  • Какие есть варианты аудио плеера с веб интерфейсом?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    vlc, audacious
    делаешь плейлист (список ссылок на файлы)и слухаешь,
    типа так, я слушаю Гоблина

    64aab2225c561936094689.png
    Ответ написан
    Комментировать
  • Как сделать перегрузку "=="?

    @dima20155
    you don't choose c++. It chooses you
    Замените строку
    if (planets[i].name == name_d)
    на
    if (planets[i] == name_d)
    Если хотите, чтобы вызывался operator==
    Но у вас там кроме этого ещё очень много странностей.
    Зачем сравниваете строки напрямую? Есть strcmp
    Зачем вообще работаете с сырыми строками, если даже не следите за очисткой памяти?
    Лучше замените все на std::string.
    Ответ написан
    Комментировать
  • Как установить веб сервер на линуксе?

    @rPman
    Первое умение современного айтишника, который должен освоить каждый - умение гуглить, все ответы в интернете уже есть.

    База данных сама по себе не может быть 'подключена к веб серверу', между ними нужен бакэнд - приложение, которое из табличных данных базы и запросов пользователя (браузера) будет формировать такие ответы, чтобы браузер показывал красивую картинку.

    Веб сервер нужно настроить, указать в каком каталоге находится файлы бакэнда, включить поддержку языка бакэнда (например модули php или asp, или это fast cgi протокол, или настроить tomcat java... в общем что там тебе нравится), указать какой домен или ip адрес у сайта, настроить ключи для работы шифрованного https протокола и ограничения доступа, к примеру чтобы хитрые пользователи не смотрели списки файлов в каталоге и не загружали конфигурационные и вспомогательные файлы

    p.s. настоятельно рекомендую не kali linux а более приземленный вариант - ubuntu server (да любой ubuntu/xubuntu/kubuntu/...) так как проблем он создает сильно меньше, решений в интернете готовых больше
    а вот kali - прямой признак кулхацкера, который хочет казаться крутым не будучи таковым
    Ответ написан
    1 комментарий
  • Можно ли сделать linux "сервер" из старого android смартфона?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У малинки хотя-бы есть разьемы для USB/Ethernet/HDMI. Это полноценный десктоп не хуже тех которые были в 90х. Даже лучше если сравнивать с Радио86 или Спектрум.

    А что есть у телефона? Какая интеграция? Да это чертов кирпич в смысле интеграции. Даже ресет нормально нажать нельзя.
    Ответ написан
    1 комментарий
  • Нужен совет опытных WEB разработчиков?

    @rPman
    Самый неправильный способ обучения - с конца. Это очень неэффективно если не бессмысленно, изучать программирование непоследовательно.

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

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

    Советую изучать с низов, самостоятельно, чтобы было понимание каждого шага, всего что происходит.
    * операционные системы, процессор и многопоточность, сети,...
    глубоко изучать это не требуется но базовые понимания нужны чтобы не получать медленное приложение только потому что не знал что каждый твой запрос в tcp это 'туда-сюда', и это медленно (десятки миллисекунд), что одновременно два человека пытающиеся что то изменить на сайте нужно разруливать чтобы не было конфликтов и т.п.
    * бакэнд и фронтэнд
    буквально что значит запрос и генерация ответа, какие бывают способы организации этого бакэнда (http rest и к примеру websocket), не понимание разницы между бакэндом и фронтэндом у новичков рождает абсурдные вопросы как из javascript изменить переменную php (и наоборот)... в чем разница между генерацией страницы на сервере и в браузере.
    * html, css,..
    верстка и дизайн, отдельный мир браузерных стандартов, исторических наслоений,. когда стоит применять фреймы, почему шрифты по разному выглядят, разные устройства и размеры экранов, разные способы взаимодействия (сенсорный экран, мышь, клавиатура)...
    * базы данных
    еще более огромный мир атомарных транзакций, индексов, нормальных форм и прочего
    * девопс
    без умения выбрать инструмент, настроить тулчейны, среду разработки, среду исполнения (веб сервер), настроить бакапы и прочее пытаться что то разрабатывать это как в слепую гулять по лесу, будешь постоянно на ветки натыкаться
    ...
    это я еще про системную аналитику не сказал, обычно прежде чем что то создавать, нужно продумать как это все делать, что такое технический долг и т.п., а еще есть тестирование, обслуживание, работа с отказами (сервер сдох, база упала, как все восстановить), обновление на живую и прочие веселья

    без понимания всего этого, даже поверхностного, будешь натыкаться на огромные дыры в разработке.
    Ответ написан
    7 комментариев
  • Как скрыть Pull Request от других пользователей?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вы наверное хотите скрыть не сам Pull Request, а код, который виден там.
    Но ведь этот код студенты отправляют из своих открытых проектов в ваш открытый проект. Значит код в любом случае виден всем в интернете, причем даже без создания PR.
    Единственный способ скрыть код — публиковать его в закрытые проекты.
    Пусть студенты создают приватные репозитории и дают вам доступ туда.
    Ответ написан
    Комментировать
  • Как настроить доступ к серверам по SSH ключу без паролей?

    bziker
    @bziker
    linux sysadmin
    генерите 1 ключ, его закрытую часть держите в каталоге который подключаете на всех докерах, на всех серверах на которые надо зайти по ssh прописываете открытую часть ключа в authorized_keys
    Ответ написан
    Комментировать
  • Не работает таймер на основе millis(), где ошибка?

    EreminD
    @EreminD
    Кое-что умею
    1. unsigned long last_time = 0;
    2. if (millis() - last_time >= 1000)

    Получается число мс (минус 0) >= 1000 всегда

    Полагаю, вы хотите где-то вписывать, что last_time = millis()
    Ответ написан
    Комментировать
  • Решил сделать метеостанцию, пишу прошивку, как исправить ошибки?

    GavriKos
    @GavriKos
    Так у тебя два сетапа и два лупа. ТАк не будет работать.
    Ответ написан
    Комментировать
  • Выводит непонятные символы что делать?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Выводит непонятные символы что делать?

    В мониторинге порта то непонятные символы то знаки вопроса

    Выставить правильную скорость порта
    Ответ написан
    Комментировать
  • Где достать разные версии Internet Explorer?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Комментировать
  • Почему не запускается компьютер?

    xez
    @xez Куратор тега Компьютеры
    TL Junior Roo
    План такой:
    1. Разбираете все аккуратно, чтобы ничего не оторвать, не помять.
    2. Собираете минимальный набор на коробке от материнской платы (не в корпусе).
    Минимальный набор:
    а. Материнская плата
    б. Процессор
    в. Термопаста
    г. Куллер
    д. Память (слот 2 и 4)
    е. Видеокарта
    ж. Блок питания: подключаете материнскую плату + процессор, видеокарту.
    з. Пи-Си спикер (Это важно!)
    Ничего больше подключать не нужно, никаких проводов.

    3. Пытаетесь включить комп. Можно сделать двумя способами: либо подключить кнопку, либо отверткой кратковременно замкнуть соответствующие контакты на m/b (там подписано на ней)

    4. Смотрите что получилось.
    - Если завелось - замечательно, можно устанавливать hdd/sdd и пересаживать в корпус.
    - Если нет - слушаем что говорит пи-си спикер. Он гудками подскажет в чем проблема.
    Ответ написан
    1 комментарий
  • На какой графической библиотеке писать 3D игру C#/C++?

    FeNUMe
    @FeNUMe
    Если цель сделать коммерческую игру в разумные сроки то лучше не изобретать велосипед и все же использовать готовые движки - Unity(c#) или Unreal(C++). Если цель сделать игру, но при этом еще и "поиграться", то можно спустится на уровень ниже и собрать ее из компонентов типа (Ogre3D для графики, bullet/box2d/physx/havoc для физики, openal для звука и т.д.). Ну а если хочется совсем хардкора - вам сразу на уровень графических API: directX, openGL, vulkan. Последний самый перспективный, так как новый и кроссплатформенный.
    Ответ написан
    Комментировать