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

    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 комментарий
  • Ошибка с диском линукs ubuntu 23.10?

    @rPman
    Раскрою ответ который тебе уже дали в комментариях

    Поочередное использование разделов диска Windows (8 и старше версии) потом Linux, при настройках windows по умолчанию будет порождать случайные проблемы, вплоть до потери файлов (в твоем случае файловая система не монтируется).

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

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

    Чтобы такого больше не происходило, если компьютер выключается с целью последующего запуска другой ОС (или например диск извлечь и нести другому человеку), то выключать командой
    shutdown -s -t 0

    Либо полностью отключить гибернацию, как советовали в коментариях
    powercfg -h offТогда любое выключение будет полным (и соответствующий запуск windows медленным)
    Ответ написан
    Комментировать
  • С чем может быть связано изменение даты и времени после перезагрузки сервера Ubuntu?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Заменить батарейку CMOS на материнской плате. Используется CR2032.
    Ответ написан
    Комментировать
  • Как архивировать все кроме одной директории?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $ man tar
    ...
           --exclude=PATTERN
                  Exclude files matching PATTERN, a glob(3)-style wildcard pattern.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux выбрать для FullStack .NET Develop?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Любой. Лично мне нравится Debian за свою стабильность и надежность. Еще CentOS тоже нравится, да. Кстати, отказываться от связки венда + студия совсем необязательно, ибо если линукс стоит на машине как хостовая ОСь - то можно поставить виртуалбокс, а в него венду и спокойно пользоваться любимым и привычным инструментом. А в линуксе просто прогонять тестирование, что оно там работает. :D
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux выбрать для FullStack .NET Develop?

    Adamos
    @Adamos
    На машине какого цвета лучше ездить на работу летчиком?

    Вроде бы довольно очевидно, что под ковыряние в ДотНетах специально не приспосабливался никакой Линукс.
    И столь же очевидно, что поставить сервер БД и запускать Java-IDE - можно на любом Линуксе.
    Критерии выбора перпендикулярны этому самому выбору.
    Ответ написан
    Комментировать
  • Почему lvm занял половину диска, вместо всего диска?

    @q2digger
    никого не трогаю, починяю примус
    сначала надо расширить раздел Logical Volume , команда lvextend , после этого можно расширять файловую систему. На рутовом разделе, скорее всего придется это делать загрузившись с (например) systemrescuecd или другой загрузочной флешки(образа) с линуксом. Если раздел xfs , то можно расширить и без ребута, но у вас скорее всего там ext4 , да?

    Держите примеры команд
    lvextend -L+11G /dev/VolGroup00/LogVol00 <- увеличить раздел на 11Гигов 
    fsadm resize /dev/VolGroup00/LogVol00  <- резайзить данный раздел
    Ответ написан
    1 комментарий
  • Как выключить историю команд Bash?

    @rPman
    Вместо отключении всей истории команд, можно указать при выполнении команды чтобы она не сохранялось, добавив пробел в начале любой команды
    Ответ написан
    Комментировать
  • Как работает sudo?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Как работает sudo?
    Что конкретно интересует, то что sudo позволяет выполнять команды от имени другого пользователя, или то, как технически оно устроено внутри?

    Всём привет, хотел узнать какие команды можно вводить в Qute
    Вводить то можно абсолютно любые, но не все они будут работать.

    почему то ввожу различные команды и у меня пишет, что нет доступа /доступ запрещен
    На каком устройстве находится Qute? На автомобиле, чайнике, умных часах, телефоне, или может вы используете вообще виртуальную машину?

    нет доступа /доступ запрещен
    Это потому, что нет root-прав. Чтобы их получить, нужно рутировать устройство. Для этого идем на 4пда и ищем там на форуме инфо по конкретному девайсу.

    Перед тем как рутировать устройство, рекомендую сначала почитать как оживить кирпич!
    Ответ написан
    22 комментария
  • В чём же тут разница?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    > - передать в
    >> - дописать в
    < - взять из
    Ответ написан
    1 комментарий
  • Как получить доступ на запись в терминале?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так это вы неправильно поключили, и смотрите в неправильной директории.

    P.S. Каков вопрос - таков и ответ. А то ни модели телефона, ни способа подключения, ни полного пути к директории, в которой пытаетесь записывать неизвестно какой файл.
    Ответ написан
  • Как узнать курс валюты в командной строке терминала?

    erge
    @erge
    Примус починяю
    curl + awk
    curl -s https://www.cbr.ru/scripts/XML_daily.asp | awk -F '</Valute>'  '{for (i=1; i<=NF; i++) if($i ~ /USD|EUR/) print substr($i, index($i, "CharCode")+9,3)" "substr($i, index($i, "Value")+6,7)}' 2>/dev/null


    wget + awk
    wget -qO- https://www.cbr.ru/scripts/XML_daily.asp | awk -F '</Valute>'  '{for (i=1; i<=NF; i++) if($i ~ /USD|EUR/) print substr($i, index($i, "CharCode")+9,3)" "substr($i, index($i, "Value")+6,7)}' 2>/dev/null


    Perl
    perl -MLWP::Simple -e '$_=get("https://www.cbr.ru/scripts/XML_daily.asp");while(m/(USD|EUR).+?Value>([^<]+)/g){print "$1 $2\n"}'


    Python
    python3 -c 'import requests,re;print("\n".join([" ".join(i.groups()) for i in list(re.finditer(r"(USD|EUR).+?Value>([^<]+)", requests.get("https://www.cbr.ru/scripts/XML_daily.asp").text))]))'


    PowerShell
    # вариант 1 (RegEx)
    (Invoke-WebRequest -UseBasicParsing -URI 'https://www.cbr.ru/scripts/XML_daily.asp').Content | Select-String '(USD|EUR).+?Value>([^<]+)' -AllMatches | foreach {$_.Matches.Groups[1,2,4,5].Value}
    # вариант 2 (XML/XPath)
    ([xml](Invoke-WebRequest -UseBasicParsing -URI 'https://www.cbr.ru/scripts/XML_daily.asp').Content).SelectNodes('//Valute[CharCode="USD" or CharCode="EUR"]') | ft Name,Value


    JavaScript (Node.js)
    node -e "https.get('https://www.cbr.ru/scripts/XML_daily.asp',r=>{s='';r.on('data',d=>s+=d);r.on('end',()=>[...s.matchAll(/(USD|EUR).+?Value>([^<]+)/g)].forEach(e=>console.log(`${e[1]} ${e[2]}`)))})"
    Ответ написан
    Комментировать
  • Как установить веб сервер на линуксе?

    @Drno
    нужно настраивать. исходя из Вашего веб проекта.
    проще для новичка - apache.
    Ответ написан
    1 комментарий
  • Как узнать курс валюты в командной строке терминала?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    у ЦБР есть официальная страничка где можно узнать как получить нужные данные

    если коротко, то будет примерно так:
    $ curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | select(.CharCode == "USD" or .CharCode == "EUR") |.CharCode + " " + .Value'
    USD 74,7087
    EUR 79,5716


    с помощью curl качаем нужные данные в формате xml
    далее переводим с помощью утилиты enconv в обще нормальную кодировку
    затем с помощью утилиты xq разбираем полученные данные
    xq входит в пакет yq которая по сути является надстройкой над jq, то есть здесь xml транслируется в json а после обрабатывается утилитой jq

    вот пример вывода всех доступных курсов валют в отформатированном виде с помощью утилиты csview
    curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | .CharCode + " " + .Nominal + " " + .Value' | sort | awk 'BEGIN{print "Code Nominal Value"}{print}' | csview -d' '

    вывод:
    ┌──────┬─────────┬─────────┐
    │ Code │ Nominal │ Value   │
    ├──────┼─────────┼─────────┤
    │ AED  │ 1       │ 20,3400 │
    │ AMD  │ 100     │ 19,1325 │
    │ AUD  │ 1       │ 51,0933 │
    │ AZN  │ 1       │ 43,9463 │
    │ BGN  │ 1       │ 40,7332 │
    │ BRL  │ 1       │ 14,3646 │
    │ BYN  │ 1       │ 26,6998 │
    │ CAD  │ 1       │ 55,2743 │
    │ CHF  │ 1       │ 80,5485 │
    │ CNY  │ 1       │ 10,8398 │
    │ CZK  │ 10      │ 33,5739 │
    │ DKK  │ 1       │ 10,7002 │
    │ EGP  │ 10      │ 24,4263 │
    │ EUR  │ 1       │ 79,5716 │
    │ GBP  │ 1       │ 90,6889 │
    │ GEL  │ 1       │ 28,3363 │
    │ HKD  │ 10      │ 95,3890 │
    │ HUF  │ 100     │ 20,7001 │
    │ IDR  │ 10000   │ 49,2185 │
    │ INR  │ 100     │ 90,1603 │
    │ JPY  │ 100     │ 55,4219 │
    │ KGS  │ 100     │ 85,4595 │
    │ KRW  │ 1000    │ 57,2524 │
    │ KZT  │ 100     │ 16,7640 │
    │ MDL  │ 10      │ 39,8181 │
    │ NOK  │ 10      │ 72,3823 │
    │ NZD  │ 1       │ 46,5734 │
    │ PLN  │ 1       │ 16,7565 │
    │ QAR  │ 1       │ 20,5244 │
    │ RON  │ 1       │ 16,1333 │
    │ RSD  │ 100     │ 67,8622 │
    │ SEK  │ 10      │ 72,2507 │
    │ SGD  │ 1       │ 55,7819 │
    │ THB  │ 10      │ 21,5775 │
    │ TJS  │ 10      │ 69,2908 │
    │ TMT  │ 1       │ 21,3453 │
    │ TRY  │ 10      │ 39,6051 │
    │ UAH  │ 10      │ 20,2313 │
    │ USD  │ 1       │ 74,7087 │
    │ UZS  │ 10000   │ 66,0995 │
    │ VND  │ 10000   │ 31,6013 │
    │ XDR  │ 1       │ 99,6569 │
    │ ZAR  │ 10      │ 40,6808 │
    └──────┴─────────┴─────────┘


    ну или конкретно для указанных валют
    $ curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | select(.CharCode == "USD" or .CharCode == "EUR") |.CharCode + " " + .Nominal + " " + .Value' | awk 'BEGIN{print "Code Nominal Value"}{print}' | csview -d' '
    ┌──────┬─────────┬─────────┐
    │ Code │ Nominal │ Value   │
    ├──────┼─────────┼─────────┤
    │ EUR  │ 1       │ 79,5716 │
    │ USD  │ 1       │ 74,7087 │
    └──────┴─────────┴─────────┘
    Ответ написан
    3 комментария
  • Какой есть аналог teamviewer/anydesk с клиентом под Win и Linux, бесплатный?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Есть множество аналогов, но они работают куда хуже чем AnyDesk. Вот, я делал тестирование маем прошлого года, может сейчас чего лучше стало:

    Проетстировано:

    Remote Management System (RMS) - https://rmansys.ru (российское ПО, номер в реестре Минсвязи - 456)
    AeroAdmin - https://www.aeroadmin.com
    imPcRemote - https://remote-control-desktop.com
    LiteManager - https://litemanager.ru (российское ПО, номер в реестре Минсвязи - 1961)
    AnyDesk - https://anydesk.com

    Рассматривалось только ПО, имеющее версии как под Windows, так и под Linux, и обеспечивающее возможность соединения с клиентами:

    находящимися за NAT
    обладающими нулевыми знаниями в ИТ
    не требующие установки

    Проверялся только режим Linux (клиент) ↔ Windows (хост), то есть имитировалась ситуация, когда сотрудник, имеющий при себе ноутбук с Windows, находится на выезде и к нему должен подключиться с Linux сотрудник, находящийся в офисе.

    Общим недостатком всех программ под Linux является наличие где-то просто большого, а где-то реально ОГРОМНОГО списка зависимостей. Эту проблему решает только установка из пакета или сборочного файла, для Gentoo есть только net-misc/anydesk.

    Кроме того, у всех протестированных программ не работает передача индикации смены раскладки клавиатуры с клиента на хост. То есть при нажатии Ctrl-Shift (Alt-Shift) фактически раскладка переключается, но отображения этого не происходит. Передача отображения смены раскладки с хоста на клиента происходит нормально.

    RMS

    Распространяется в виде файла агента rms-agent.exe и файла для Linux rms-viewer. Бета-версия, поэтому в консоль постоянно выводит отладочный лог. Бесплатная лицензия требует паузы в несколько минут между переподключениями. Отвратительная скорость, особенно при подключении по 3G. Настройки по умолчанию сбивают с толку - ты не видишь ни локального, ни удаленного курсора. Иногда клиент безо всяких причин аварийно завершает работу по SIGSEGV. При завершении сессии с одной стороны вторая сторона почему-то об этом уведомления не получает и продолжает считать, что она подключена.

    AeroAdmin

    Распространяется в виде файла AeroAdmin.exe и по утверждениям разработчиков, работоспособен в Wine. Проверка эти утверждения не подтвердила, в wine 7.8 aeroadmin.exe аварийно завершается сразу же после запуска.

    Info: [16:34:06 / aeroadmin.cpp 1106] mode: 0
    20220520 16:34:06 [376 / service.cpp:597] !hService
    20220520 16:34:06 [376 / service.cpp:529] Installing service: "Z:\tmp\AeroAdmin.exe" s -sid 1
    012c:fixme:service:svcctl_ChangeServiceConfig2W SERVICE_CONFIG_FAILURE_ACTIONS not implemented: period 60 msg (null) cmd (null)
    0198:fixme:process:WTSGetActiveConsoleSessionId stub
    019c:fixme:ver:GetCurrentPackageId (017DFF00 00000000): stub
    Info: [16:301ac:fixme:wtsapi:WTSEnumerateSessionsW Stub 00000000 0x00000000 0x00000001 020DECB0 020DECA8
    01ac:fixme:wtsapi:WTSEnumerateSessionsW Stub 00000000 0x00000000 0x00000001 020DEADC 020DEAE0
    4:06 / aeroadmin.cpp 900] run_as_admiwine: Unhandled page fault on read access to FFFFFFFF at address 005B5DD6 (thread 0198), starting debugger...

    imPcRemote

    Распространяется в виде ZIP-архива impc_admin.zip для Linux и файла impcremoteinstant_user.exe для Windows. Ужасное некачественное изображение, страшная топорная оболочка, все напоминает VNC-клиенты образца начала 2000-х годов (впрочем, вполне возможно, так оно и есть). Скорость соединения приемлема, но изображение просто ужасно. Никаких других возможностей типа обмена файлами нет. Зато у него одного передается индикация смены раскладки клавиатуры.

    LiteManager

    Распространяется в виде файла для Linux LiteManager и файла для Windows ROMServer.exe. Автоматически подхватывает настройки прокси из системы и ,если они включены, пытается их использовать, отключить их невозможно, они постоянно включаются заново. Программа может быть была бы и неплохой, но в отличие от всех других, она не только не отображает переключение раскладки клавиатуры, но и реально их не переключает. То есть раскладку клавиатуры можно реально переключить только на хосте. Разрыв соединения с хостом не отображается - хост продолжает считать себя подключенным

    AnyDesk

    Распространяется в виде архива anydesk-N.N.-amd64.tar.gz для Linux и файла AnyDesk.exe для Windows. Обладает достаточно быстрой скоростью отображения изменений (по крайней мере, наибольшей среди всех протестированных программ). Единственный клиент, в котором настройка подтверждения удаленного соединения на хосте включена по умолчанию. Также единственный клиент, в котором кроме собственно бинарника, в поставку входит файл .desktop (для размещения на рабочем столе графической оболочки Linux), а также файлы запуска сервиса для Linux под init и systemd и значки в формате PNG.

    Выводы

    LiteManager и AeroAdmin использовать просто нельзя - в силу наличия у них серьезных ошибок, препятствующих их нормальной работе.
    Remote Mamagement System использовать пока нельзя - в силу нестабильности работы модуля клиента - в процессе тестирования он аварийно завершался у меня два раза, систему я не уловил, но аварийное завершение клиента в процессе реальной отладки на шахте например может принести множество неприятностей.

    imPcRemote использовать пока можно - там где нет требований к передаче изображения, потому что качество там явно 8 бит, не больше. Разрабатывается небольшой канадской компанией.
    AnyDesk использовать пока можно - за исключением того, что он не передает отображение значка раскладки клавиатуры, у него нет каких-то явно выраженных недостатков, но в силу того, что это достаточно крупная немецкая компания, всегда следует иметь в виду, что она может поступить как TeamViewer.
    Ответ написан
    6 комментариев
  • Как настроить L2TP/IPsec VPN-сервер на Ubuntu?

    r3dix0r
    @r3dix0r
    Я конечно не специалист,но чем вам не угодил Wireguard? Куча скриптов с настройкой,веб мордой и прочим стафом.
    Например: https://github.com/donaldzou/WGDashboard
    Ответ написан
    1 комментарий
  • Автоматизация скачивания, разархивирования файла из интернета в ubuntu server?

    @kisaa
    Скачать файл можно командой wget
    Распаковать .zip-архив - командой unzip
    Уточнить опции и параметры - командой man wget, man unzip
    Ответ написан
    Комментировать
  • Emergency mode после восстановления загрузчика grub, что делать?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Сделайте:
    lsblk -l -o PATH,FSTYPE,UUID,TYPE,LABEL
    потом:
    cat /etc/fstab
    Ответ написан
    Комментировать