• Почему при распределении свободной памяти при установке Линукс минта она не хочет работать?

    xotkot
    @xotkot
    у вас походу MBR который поддерживает до 4-х основных(primary) разделов
    как вариант можете временно перенести данные с диска E: , потом удалить его, и на освободившемся месте + место в конце диска создать расширенный(extended) раздел, а уже на нём создать несколько логический разделов, один для восстановления E: а второй для linux
  • Проблема с установкой драйвера rtl8821-ce в ARCH?

    xotkot
    @xotkot
    Оказывается у меня не было пакета bc, но мне кажется он должен ставиться с base-devel.

    https://archlinux.org/groups/x86_64/base-devel/
    или через сам пакман:
    pacman -Sqg base-devel

    а это пакеты которые тянут bc как обязательную зависимость:
    pactree -lsru bc

    в общем не пересекаются, да и не удивительно, так как пакеты из группы base-devel находятся в Core, а bc в Extra

    Ещё мне пришлось kbd самому ставить для cyr-sun16, хотя у всех в гайдах он был предустановлен

    в установочном образе он предустановлен, а в системе которую ставите он может появится только если вы сами его поставили или его притянет другой пакет как зависимость, возможно вы ставили систему по минимуму поэтому он и не подтянулся как зависимость, а его, на секундочку, тянут больше 3к пакетов
    pactree -lsru kbd | wc -l
  • Легкий текстовый редактор, замена блокноту?

    xotkot
    @xotkot
    если делать упор на скорость то можно попробовать Tau это фронт для ядра xi-editor у которого заявленна - "All editing operations should commit and paint in under 16ms."
  • Что делать, если SWAP почти заполнился?

    xotkot
    @xotkot
    а 2GB свопа вам сильно помогают при 32G оперативки ?
  • Как сравнить 2 файла в linux?

    xotkot
    @xotkot
    nak-alexey,
    https://man.archlinux.org/man/comm.1
    проще говоря, comm по умолчанию выводит три столбца
    1 - уникальные строки для первого файла
    2 - уникальные строки для второго файла
    3 - общие строки

    нам нужна - "строку, которая отсутствует во втором файле", а это по сути уникальная строка из первого файла.
    то есть, -2 и -3 удаляют второй и третий столбец, остаётся только первый.
  • Как сложить числа от x до y на bash?

    xotkot
    @xotkot
    trickster2019, в смысле неправильно ?
    $ ./script.sh
    число 1: 3
    число 2: 6
    18

    проверка:
    $ echo $[3+4+5+6]
    18
  • Сжатие дисков/папок в Linux?

    xotkot
    @xotkot
    если доступ read-only то есть замечательная штука dwarfs
  • Возможно ли копировать полностью всю ОС Ubuntu через ssh?

    xotkot
    @xotkot
    тут есть много ограничений
    1. размер дисков - принимающий диск должен быть равен или больше копируемого
    2. скорость - если у вас медленная сеть а копируемый диск в несколько сотен гигабайт то передача может затянутся на несколько часов и естественно сеть в это время будет под нагрузкой
    примерно 40-50 гигабайт в час при 100Мбит/с сети
    3. диск с живой системой полноценно скопировать врядли получится, разве что загрузив её в ридонли, проще будет загрузится с флешки и с неё запускать команды на копирование, например:
    отдаём
    nc -c $IP $PORT < /dev/$DiskIN
    принимаем
    nc -l -p $PORT | pv -bpt > /dev/$DiskOUT
  • Почему Google Translate даёт неправильный перевод в ряде случаев?

    xotkot
    @xotkot
    Мне надо собрать небольшой словарь английских слов с переводом. Использую для этого Selenium...

    мне надо посадить дерево, для этого я взял трактор, экскаватор и строительную бригаду в придачу
    $ curl -s "https://translate.googleapis.com/translate_a/single" --data "client=gtx&dt=t&sl=en&tl=ru" --data-urlencode "q=runoff" | jq -j '.[0] | .[] | .[1]," ",.[0]'
    runoff	сток
  • Как посчитать число строк в файле по условию?

    xotkot
    @xotkot
    если делать конкретно через date, а не тупо обрабатывать как строки что проще но нужно знать конкретный диапазон, то необходимо учитывать некоторые нюансы, ту же локаль, так как у вас или кого-то другой кто будет у себя запускать данную команду может быть отличная локаль для даты чем в самом логе
    сравните
    $ date -d now
    $ LANG=ru_RU.UTF-8 date -d now
    $ LANG=en_US.UTF-8 date -d now

    сами локали естественно должны быть доступны в системе, проверить можно утилитой localectl:
    $ localectl list-locales
    en_US.UTF-8
    ru_RU.UTF-8


    также +0300 это не просто так, и если обрабатывать скрипт находясь в другом часовом поясе то может произойти смещение по времени в ту или иную сторону
    так что если внести поправки на часовой пояс( %z) + локаль, получим:
    LANG=en_US.UTF-8 date -d 'now-24hours' +'[%d/%b/%Y:%H:%M:%S %z]'


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

    cat example.ru.log  | awk -F'[][/:]' '/router.php/{"date +%s -d \""$2"-"$3"-"$4" "$5":"$6":"$7"\"" | getline z; print z" "$0}'

    здесь мы преобразовали к понятному date формату, а потом перевели в юникс время( +%s) и получившейся результат просто добавили к началу строки.
    результат

    1637320437 212.193.33.123 - - [19/Nov/2021:14:13:57 +0300] "GET /router.php HTTP/1.0" 301 445 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637320437 212.193.33.123 - - [19/Nov/2021:14:13:57 +0300] "GET /router.php HTTP/1.0" 301 445 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637320438 212.193.33.123 - - [19/Nov/2021:14:13:58 +0300] "GET /router.php HTTP/1.0" 301 449 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637321647 212.193.33.123 - - [19/Nov/2021:14:34:07 +0300] "GET /router.php HTTP/1.0" 301 449 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637321647 212.193.33.123 - - [19/Nov/2021:14:34:07 +0300] "GET /router.php HTTP/1.0" 301 447 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637321648 212.193.33.123 - - [19/Nov/2021:14:34:08 +0300] "GET /router.php HTTP/1.0" 301 446 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637321650 212.193.33.123 - - [19/Nov/2021:14:34:10 +0300] "GET /router.php HTTP/1.0" 301 445 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637321650 212.193.33.123 - - [19/Nov/2021:14:34:10 +0300] "GET /router.php HTTP/1.0" 301 451 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637321651 212.193.33.123 - - [19/Nov/2021:14:34:11 +0300] "GET /router.php HTTP/1.0" 301 445 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637324092 212.193.33.123 - - [19/Nov/2021:15:14:52 +0300] "GET /router.php HTTP/1.0" 301 449 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637326108 212.193.33.123 - - [19/Nov/2021:15:48:28 +0300] "GET /router.php HTTP/1.0" 301 447 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    1637327153 212.193.33.123 - - [19/Nov/2021:16:05:53 +0300] "GET /router.php HTTP/1.0" 301 446 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"


    дату 1 день(24 часа) назад можно узнать так:
    date +%s -d 'now-1day'
    или даже так
    echo $[`date +%s` - 24*60*60]
    просто отняв от текущего количество нужных секунд

    в итоге получим:
    cat example.ru.log |awk -F'[][/:]' '/router.php/{"date +%s -d \""$2"-"$3"-"$4" "$5":"$6":"$7"\"" | getline z; print z" "$0}' | awk -v t=$[`date +%s` - 24*60*60] '$1>=t'


    теперь при желании можно легко расширить и указывать диапазон поиска от(t1) и до(t2)
    cat example.ru.log |awk -F'[][/:]' '/router.php/{"date +%s -d \""$2"-"$3"-"$4" "$5":"$6":"$7"\"" | getline z; print z" "$0}' | awk -v t1=`date +%s -d '19-Nov-2021 15:00:00 +0300'` -v t2=`date +%s -d '19-Nov-2021 16:00:00 +0300'` '$1>=t1 && $1<=t2'

    здесь ищем в диапазоне одного часа
    от 19-Nov-2021 15:00:00 +0300
    до 19-Nov-2021 16:00:00 +0300
    результат
    1637324092 212.193.33.123 - - [19/Nov/2021:15:14:52 +0300] "GET /router.php HTTP/1.0" 301 449 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +www.google.com/bot.html)"
    1637326108 212.193.33.123 - - [19/Nov/2021:15:48:28 +0300] "GET /router.php HTTP/1.0" 301 447 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36 (compatible; Googlebot/2.1; +www.google.com/bot.html)"
  • Как посчитать число строк в файле по условию?

    xotkot
    @xotkot
    Vincent1,
    Как awk понимает, что это диапазон?

    эта принятая форма записи для вывода всего что между строк в которых есть указанные подстроки, для sed кстати примерно также будет:
    awk '/str1/,/str2/'
  • Как посчитать число строк в файле по условию?

    xotkot
    @xotkot
    Vincent1, плюс(+) тоже нужно экранировать
    awk '/router.php/' example.ru.log.1 | awk '/\[19\/Nov\/2021:14:13:58 \+0300\]/,/\[19\/Nov\/2021:14:34:10 \+0300\]/' | wc -l
  • Как исправить ошибку unexpected EOF while looking for matching `"'?

    xotkot
    @xotkot
    Dert1x,
    elif [ cd savdir/"$i" ]
    savdir тут явно переменная, не указали знак доллара - $savdir

    c=${file#$stub"}
    выглядит как какое-то инородное тело
    переменной file выше по тексту я не наблюдаю, есть тока fil и files
    $stub нету такой переменной
    кавычка " в конце тоже не к месту

    п.с.
    и еще
    elif [ -f "$i" ]
    -->
    elif [ -f "$i" ]; then
  • Linux не запускается, что делать?

    xotkot
    @xotkot
    $ cat clamtk.log
    ...
    Вирус заблокирован. Сопоставление сигнатуры по базе ... "homo_sapiens".
  • Как приложения используют Wayland?

    xotkot
    @xotkot
    Слышал, что firefox не адаптировали к нему.

    в смысле не адаптировали ? это первый браузер который боле менее нормально заработал с вяленый, хотя всё еще осталось что пилить для улучшения работы под ним
    добавляете в переменные окружения:
    MOZ_ENABLE_WAYLAND=1
    и вуаля
    чтобы легко проверить работает ли gui программы под вайланд, а не через X вернее прослойку xwayland, запустите в консоли команду:
    xwininfo
    после чего щелкнете мышкой по нужной программе, если xwininfo выдаст кучу информации и завершится то значит работает через прослойкуо xwayland, если же ничего не произойдет то это чистый wayland

    в сам Хром тока год назад добавили флаги --enable-features=UseOzonePlatform --ozone-platform=wayland для работы с вяленым и по началу работало так себе, и вот тока недавно полностью допилили прослойку ozone и стали использовать по умолчанию.
  • AMD или Intel для программиста и (иногда) игрока?

    xotkot
    @xotkot
    John Smith, перестаньте ёрничать, вы же прекрасно поняли о чем идёт речь
  • AMD или Intel для программиста и (иногда) игрока?

    xotkot
    @xotkot
    John Smith, не нужно сверх гиперболизировать и приписывать собеседнику слова которых он не говорил, ведь ни о каком "вреде свопа" речи не шло, если изначально вспомнить чаяния автора вопроса то у него спустя какое-то время происходят фризы из за переключения на другую программу, а это явно происходит из за того что часть данных свернутой программы улетела в своп и когда он переключается на нее вновь то подгрузка данных со свопа на медленном носителе и приводит к фризам, также автор в комментах ниже писал что:
    в моем случае при критической нагрузке оперативы потребляется около 48% (почти 16гб из 32гб доступных)

    выходит что максимальная загрузка оперативы не превышает 50%, то есть, задачи автора которые он решает на своем компе не столь ресурсозатратны по памяти, поэтому самым простым вариантом будет отключить swap или если есть лишние деньги купить nvme с которого бы данные свопа грузились быстро, про что я и написал в своем первом комментарии, вот он:
    уберите swap и будет всё быстро переключатся, либо купите шустрый nvme чтобы быстро подгружались данные с диска

    также я выше писал что:
    если у вас не специфическая задача требующая своп то он нафиг не нужен.

    не секрет что потребность в свопе для десктопа за последние десятилетия сильно изменилось, раньше например, во времена написания статьи того же Руссиновича 2008 года царствовала XP, 32 бита и 4 гб оперативы которых "хватит всем", а сам win 7 тока анонсировали и дали пощупать избранным. Сейчас же царство win10/11, 64 бит, 16/32 гиг оперативы и следовать калькам давно минувших дней не всегда рационально. Ведь даже в одной из вышеприведенных вами статей говорится - "Если вы установили себе 64GB, а используется 4-8GB, то таки да, ФП вам не нужен"
    у ТС-а результаты чуть скромнее, но он всё равно не выбирает в пиках даже половины своей ОЗУ, тогда вопрос - зачем нужен своп из за которого у автора наблюдаются фризы при переключении ? а шоб було ? чтобы при каких-то там гипотетических условиях лихой конь в вакуме не сожрал несколько десятков гиг оперативы и система не встала колом ? но ведь это не гарантия что вакумному коню хватит вашего своп-стога и система также не встанет колом при том еще изрядно не посношая ваш диск.