Ответы пользователя по тегу Linux
  • Как в bash скрипте определить является ли файл видео и получить его разрешение?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    как часть ffmpeg проекта, есть ffprobe, им и пользуйтесь.

    ffmpeg.org/ffprobe.html

    Получить можно в разном формате. И обычный текст(ini) или csv,xml,json

    Примеры:
    $ ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of default=nw=1 "My video file.mpg" 
    width=704
    height=576


    $ ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 "another vide file.mkv"
    1280,720


    $ ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of json "one_more video.mkv"
    {
        "programs": [
    
        ],
        "streams": [
            {
                "width": 1152,
                "height": 480
            }
        ]
    }
    Ответ написан
    Комментировать
  • Можно ли исполнить команду через веб интерфейс?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    ну если вы можете править файлы веб-сайта, добавьте какой-нить phpshell и посмотрите.
    А так, не зная как настроен веб сервер - неизвестно
    Ответ написан
    Комментировать
  • Почему не могу закинуть открытый ключ SSH из Линукса в Windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Нужно полистать конфигурацию вашего sshd сервере на винде и посмотреть где он считает должны быть публичные ключи пользователя.
    Это может быть и $USERHOME/.ssh/authorized_keys и $USERHOME/.ssh/authorized_keys2 и что-нибудь еще.
    ssh-copy-id может не знать про то, где должны лежать публичные ключи в винде, его нет смысла использовать в данном случае.

    Прочитайте документацию к sshd серверу под виндой чтобы понять где он ищет публичные ключи пользователя.
    Ответ написан
  • Как расширить диск Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Никак.
    sda/sdb это физические устройства, их нельзя расширить за счет друг друга.

    Вот раздел с файловой системой, если бы он изначально был сделан через LVM можно было бы расширить. Для этого sdb добавился бы в Volume Group где находится ваша файловая система и потом ее можно уже расширить, причем в большинстве случаев даже онлайн. Но для этого надо чтобы изначально все было сделано через LVM.

    Или опять таки изначально надо было пользоваться распределенной файловой системой типа zfs, тогда можно было бы добавить еще одно устройство в пул и расширить.

    У вас же на /dev/sda есть один раздел с типом обычной Linux filesystem и отформатирован как есть.

    Поэтому все, что можно сделать без кардинальной переработки - отформатировать /dev/sdb и примонтировать его в какую-то папку, скинув часть данных в эту папку.

    Вдобавок так как у вас вообще весь /dev/sda составляет единственный диск в системе, на котором и данные и сама система, то даже для каких-либо изменений текущей конфигурации уже нужно как минимум загружаться с live диска. В этом плане быстро и просто не получится.
    Ответ написан
    Комментировать
  • Почему не работает https?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Покажите как вы создали сертификат и где прописан айпишник. Он должен быть в SAN поле
    Ответ написан
  • При записи данных в файл, они остаются в кеше ОС для возможности чтения из кеша?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    И для записи и для чтения используется тот же механизм - page cache, только для записи они еще помечаются как dirty, которые должны быть записаны на следующий уровень.
    Ответ написан
    Комментировать
  • Как в BASH работают логические операторы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Однако, возникает вопрос - а как именно BASH преобразовывает результат выполнения определённой команды в булевое значение?

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

    На код ошибки это не похоже. Так как успешное выполнение команды возвращает 0. Что полностью противоречит алгебре логики.

    С чего это вдруг противоречит? Противоречит только в том случае, если вы не читали документацию.
    Ответ написан
    Комментировать
  • Разрешения 755 для всех файлов и каталогов сайта это безопасно?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    У вас есть квартира, где стоит лазерный датчик. Если на него попадает лазерный луч, он открывает все замки.
    И приходя домой, вы вставляете ключ с лазером в замок, проворачиваете и подаете сигнал на датчик.

    Но при этом у вас есть окно, через которое можно послать лазерный луч, например из окна соседнего дома.

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

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

    Хотите более подробный и понятный ответ - изучайте права доступа и принципы работы различных движков на сайте, чтобы найти варианты как можно найти применение тому, что у вас везде 755 на всех файлах.
    Ответ написан
    Комментировать
  • Загружается ли картинка через CURL если не указывать -o?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Чтобы загружать только заголовки надо не -o пропускать, а указывать -I
    если не указать -o, предполагается, что curl прямо в консоль скачает

    -o, --output <file> Write to file instead of stdout
    Ответ написан
    1 комментарий
  • Как появляется сетевой интерфейс и ip адрес на примере linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Ip адрес можно самому прописать на хосте или получаем с помощью dhcp, эта сущность ядра ОС?

    Можно и так и так.
    Это не сущность ядра ОС, ты же можешь вообще без сетевой карточки работать, или работать не по IP а по другому протоколу. Это настройки TCP.
    Можно ли назвать конфигурационной настройкой?

    Как хочешь называй.
    Настройки сетевого интерфейса поступают от драйвера сетевой карты?

    Ну как поступают. Некоторые ты отправляешь на сетевую карту, некоторые она тебе. А некоторые сетевые карты могут быть виртуальными.

    Можно создать виртуальные сетевые интерфейсы, обязательно для этого иметь физический сетевой интерфейс?

    Можно, не обязательно.

    Кто в ядре или где почитать отвечает за формирование пакета, кадра и отправку по сети(кабелю)?

    Драйвер UDP/TCP/IP служб отвечает за формирование пакетов TCP/UDP/IP, а сетевая карта за формирование фреймов сетевой карты или что там у нее. Есть же карты разные, wifi/ethernet/модемы

    сетевая карта это устройство, а не интернет.

    Естественно
    Ответ написан
  • Как "распаковать" параметры из переменной в bash-скрипте?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Юзай eval, он раскроет все переменные и выполнит команду.

    $ excludes=".cache,.config/google-chrome,Загрузки"
    $ eval echo -sh ~ --exclude=$HOME/{$excludes}
    -sh /home/saboteur --exclude=/home/saboteur/.cache --exclude=/home/saboteur/.config/google-chrome --exclude=/home/saboteur/Загрузки
    Ответ написан
    1 комментарий
  • Как работает slurm?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Там вроде есть консольная утилита sacctmgr, которой можно и задать и посмотреть лимиты ресурсов, но не знаю может ли это сделать обычный юзер

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

    p.s. Тут вряд ли нужен тег bash, скорее Linux
    Ответ написан
    Комментировать
  • Как сделать вхождение по TAB в терминале linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    bash completion - это большая библиотека функций, которые по tab умеют дополнять
    * имена алиасов
    * имена функций
    * имена переменных
    * названия команд
    * пути файловой системы
    * опции для некоторых команд.

    Можно почитать документацию, как добавить дополнение для вашей собственной команд - https://www.gnu.org/software/bash/manual/html_node...
    Ответ написан
    Комментировать
  • Логирование веб-приложений: syslog и stdout/stderr?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. стандартная служба syslog умеет парсить логи по facility, следовательно можно настроить логирование разных компонентов в разные файлы на уровне syslog, управлять их ротацией.
    Также syslog умеет работать с другими syslog, таким образом можно аггрегировать логи с разных машин и управлять ими централизованно.

    2. логи отправленные в stdout обычно куда-то перенаправляют, в тот же файл, или сразу грабят в какой-то аггрегатор.
    В современное время про stdout чаще всего говорят, когда вы запускаете что-то в контейнере, а контейнер крутится в оркестраторе типа kubernetes/openshift.
    В этом случае настраивается внешний сборщик - тот же filebeat, fluentd, logstash или syslog, который собирает логи со всего кластера кубернетес/опенщифт, парсит их и кидает в аггрегатор.
    Просто задеплоили новый компонент и по его имени можно фильтровать логи в той же Кибане, при этом нигде не нужно в системе логирования настраивать что-то под новый компонент, все тегируется автоматом.
    Ответ написан
    Комментировать
  • Как переключить запись в файл через inode?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Если просто обнулить файл, то обычный
    echo "" > file
    если нужно сохранить часть файла, то можно считать кусок из файла и записать в него же
    tmp=$(tail -n 1000 file)
    echo "$tmp" > file
    Ответ написан
    Комментировать
  • Как исправить ошибку unexpected EOF while looking for matching `"'?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. Написано, что ошибка в строке 42-43, а на картинке от силы 20 строк. Ты весь скрипт просмотри, где кавычку не закрыл.
    2. Выкладывать надо текст, а не картинку.
    Ответ написан
    5 комментариев
  • CentoOS перебросить память с home на root?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. Переразбить диски внешней утилитой, загрузившись с какого-нить acronis live
    2. Если вы используется LVM, переразбить его утилитами
    3. софт-линки
    Ответ написан
    6 комментариев
  • Как записать все в одну строку и вывести все в файл?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    экранируешь все доллары и делаешь cat через DocumentHere:
    cat <<EOF >newfile.sh
    ...
    EOF


    Вот полный пример, можно этот текст поместить в скрипт, выполнить или вставить целиком из буфера, или набрать от руки, и он сделает тебе новый file.sh
    cat <<EOF>file.sh
    #/bin/sh
    inetADD=\$1
    #GATEWAY=
    #DNS1=
    NETMASK=255.255.255.128
    ip address | grep -v lo | cut -d ' ' -f2 | tr ':' '\n' | awk NF
    echo "Enter interface:"
    read nameINT
    uuid=\$(\$nameINT)
    echo -e "NAME=\$nameINT\nDEVICE=\$nameINT\nBOOTPROTO=static\nUUID=\$uuid\nONBOOT=yes\nIPADDR=\$1\nNETMASK=\$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-\$nameINT
    ifdown \$nameINT && sleep 3 && ifup \$nameINT
    if [ "\$(ping -c 1 -I \$nameINT 192.168.1.1)" ] then
      echo "Ping GOOD. System EXIT"
    exit
    else
      echo "Reloading the interface"
    ifdown \$nameINT && sleep 10 && ifup \$nameINT
    ping -c 1 -I \$nameINT 192.168.1.1
    echo "ERROR"
    fi
    EOF
    Ответ написан
    Комментировать
  • Перенос файлов между серверами без моего участия?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Отключаясь от сессии, вы посылаете своему шеллу и всем дочерним процессам (scp, rsync) сигнал SIGHUP.

    Есть несколько воркэраундов как этого избежать.

    1. Запускать процесс через nohup &
    2. Использовать менеджер сессий - screen или tmux
    3. Запустить процесс в фоне и заранее отвязать его от своего шелла ( &; disown )
    Ответ написан
    2 комментария
  • Не работает команда в bash скрипте, где ошибка?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Смотреть PATH нужно не из вашей сессии, а прямо из cron.
    Когда юзер логинится интерактивно, выполняются его персональные профайлы - .profile, .bashrc, .login и др.

    Крон же просто запускает с правами указанного юзера, не читая его профайлы.

    Варианты как это чинить:
    1. Использовать в скриптах полные пути к файлам
    2. Задать PATH прямо в вашем скрипте
    3. Задать PATH в самом кронтаб вначале, например

    PATH=$PATH:/home/user/mypersonalbin/
    00 09 * * * /mnt/pve/backups/sensors.sh >> /root/myscript.log 2>&1


    crontab формат позволяет задавать переменные, которые будут работать для всех скриптов запускаемых из вашего кронтаба.
    Ответ написан