Ответы пользователя по тегу *nix-подобные системы
  • Как переключить раскладку клавиатуры в консоли?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Ответ написан
    Комментировать
  • Как заGREPовать сразу несколько параметров?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Как сделать, что бы вывод был именно по 3м нужным параметрам?

    dmidecode -t memory | grep -P "Speed|Factor|Size"

    Как это можно форматнуть, что бы вывод был по каждой планке отдельно???

    dmidecode -t memory | awk '/\tSize/{print ""}/Speed|Factor|Size/'


    В идеале хотелось бы получить ... memory 1 ...

    dmidecode -t memory | awk '/\tSize/{i++;print "memory "i}/\tSpeed|Factor|\tSize/'


    Как структурировать вывод :
    A=`cat /proc/cpuinfo | grep "cpu MHz"`
    echo $A

    просто добавь воды, то есть кавычек при выводе:
    echo "$A"

    И как это сделать в несколько столбиков, потому что 104 строки не умещаются в терминал tmux????

    это уже третий вопрос, не нужно здесь устраивать марафон всевозможных вопросов, задавайте каждый вопрос отдельно
    Ответ написан
    1 комментарий
  • Как декодировать результаты ldapserash?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    там походу проблема возникает из за перевода строки в конце данных которые поступают в base64
    попробуйте в awk print заменить на printf:
    ... | awk '{split ($0, a, ": "); printf a[2]}' | base64 -d`


    Как я понял это перекодирование потому что при вызове без base64 выходит данные в виде..

    ну да, используется для русских символов:
    $ echo "0JHQsNC70LHQsNGI0L7Qsg==" | base64 -d
    Балбашов
    Ответ написан
    Комментировать
  • Как посчитать число строк в файле по условию?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    если знать точные даты начала и конца то легко:
    awk '/router.php/' example.com.log | awk '/\[16\/Nov\/2021:15:15:56 -0500\]/,/\[17\/Nov\/2021:15:15:56 -0500\]/' | wc -l


    п.с.
    если делать конкретно через 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)"
    Ответ написан
    4 комментария
  • Как с помощью цикла while, команды dig вывести в файл ips.txt A-записи домена, после чего на следующей строке PTR-запись IP?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    здесь можно обойтись и простым однострочником:
    dig +short vk.com |xargs -tI{} dig -x {} +short 2>&1|awk '/^dig /{print $3}!/^dig /'
    Ответ написан
    2 комментария
  • Systemd: съёмные диски - автомонтирование и запуск сервисов - как сделать?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Вопрос в том, как добиться обратного эффекта (чтобы при монтировании /mnt/backups/ автоматически запускался rsync.service)?

    RequiresMountsFor
    Ответ написан
    Комментировать
  • Как задать переменную bash?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    скрипт(урезанный) deploy.sh
    #!/usr/bin/env bash
    
    _HOST="$1"
    if [[ "$_HOST" == "" ]]; then
    	_HOST="host2"
    fi
    
    echo "Используемый хост: $_HOST"


    работа скрипта:
    $ export prod="host1"
    $ deploy.sh $prod
    Используемый хост: host1

    или напрямую:
    $ deploy.sh "host1"
    Используемый хост: host1

    $ deploy.sh
    Используемый хост: host2
    Ответ написан
    Комментировать
  • Что есть кто (unix, linux, ubuntu, debian, kali)?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Что такое unix, ubuntu, linux, kali, debian?

    если коротко то:
    ubuntu, debian, kali - это UNIX-подобные операционные системы(дистрибутивы) на базе ядра linux.
    UNIX-подобная система - это система придерживающаяся большинства принципов unix, например, всё есть файл.
    unix - операционная система разработаная в конце 1960-х годов сотрудниками Bell Labs, в первую очередь Кеном Томпсоном, Деннисом Ритчи и Дугласом Макилроем.
    Ответ написан
    Комментировать
  • Почему переменная после регулярки пустая?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ CURRENT_IMAGE="/home/admin/web/ovcvs4ds.fvds.ru/public_html/img_test/f15/f1578e58f50e5d4cb081c10a827eac71.png"
    $ echo $CURRENT_IMAGE | grep -o -e '\/img_test\/.*\/' 
    /img_test/f15/
    Ответ написан
    1 комментарий
  • Как добавить пользователя в группу без перелогина?

    xotkot
    @xotkot Автор вопроса
    хорошо есть и хорошо весьма
    пока нарыл такое решение которое работает только для отдельно взятой консоли:
    $ su - $USER
    (нужен ввод пароля пользователя)
    или
    $ sg - ГРУППА

    В принципе нашёл то что искал, но хочется более универсального решения, когда бы работало и для новых консолей.
    Ответ написан
    Комментировать