Ответы пользователя по тегу Linux
  • Посoветуйте дистрибутив Linux для маломощного ноутбука с сенсорным экраном?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Как раз свеженькая статья со списком легковесных линуксов
    https://habr.com/ru/post/458088/
    Ответ написан
    Комментировать
  • Почему сценарий выдаёт ошибку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    #!/bin/bash
    
    echo -n "Enter a folder name: "
    read way 
    
    eval "ls $way"
    Ответ написан
    Комментировать
  • Как изменить системные виндовские файлы из под линукса?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Потому что ntfs это проприетарная файловая система, и написанный ntfs драйвер под линукс не поддерживает все возможности.
    Указанные файлы могут быть например скомпрессированы или даже закриптованы.
    Попробуйте загрузиться из другой винды, как минимум будет адекватная поддержка ntfs
    Ответ написан
    Комментировать
  • Как выполнить INSERT в таблицу со спец символами через bash скрипт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    В одинарных кавычках можно передавать символы как есть
    В двойных - некоторые сохраняют специальное значение ($, \)
    бэкслеш экранирует один следующий символ, если это спецсимвол.

    Вы не привели примера строки, которая у вас не работает, но на самом деле там несложно.
    Можно выносить в отдельный файл, можно делать перенаправление через <
    Ответ написан
  • Разница командных строк?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Вам нужно почитать что такое переменная PATH и как ее настроить в Линукс и в Windows - в ней перечислены каталоги, в которых происходит поиск команд-программ.

    Если вы пишете команду в строке, то
    в Windows:
    * Проверяется является ли эта команда внутренней командой (echo, set)
    * Есть ли такая программа в текущем каталоге (если указана без расширения, то ищется CMD.bat, CMD.cmd, CMD.exe, CMD.com
    * Есть ли такая программа в каталогах, перечисленных в PATH

    в Linux:
    * Проверяется является ли эта команда внутренней командой шелла (echo, set)
    * Есть ли такая программа в каталогах, перечисленных в PATH (у файла должен быть аттрибут executable)
    Ответ написан
    Комментировать
  • Как решить проблему с if..else в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    По умолчанию баш создает все переменные текстовыми, следовательно
    res=$a+$b у вас получается контакенация строк, а не сложение чисел.

    Используйте явное арифметическое сложение через res=$(( $a + $b ))
    либо заранее все переменные задекларируйте как integer через
    declare -i a
    declare -i b
    declare -i res
    declare -i path

    А в идеале и сравнение вместо [[ "$path" = "$res" ]] делайте числовым [[ $path -eq $res ]]
    Ответ написан
    1 комментарий
  • Использование прокси из PAC файла для curl apt и тд?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Никак. curl не поддерживает javascript, на котором обычно написан PAC файл, это только для браузеров.

    Так что вам нужно реализовывать второй вариант - VPN
    Ответ написан
    Комментировать
  • Как низкоуровневый код использующий стек узнает откуда он начинается?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Обычно для работы со стеком процессор использует регистр стека (Stack Pointer register).

    Следовательно операционная система устанавливает этот регистр для процесса при его запуске и инициализации.
    В современных процессорах регистров стека может быть несколько (я могу ошибаться, но возможно даже несколько на каждое ядро).
    Ответ написан
    Комментировать
  • Как управлять (остановить) демоном?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. демон должен быть написан таким образом, чтобы не писать в консоль, а сразу писать в лог файл (либо иметь отдельную опцию для дебага в консоль).

    2. Демон должен уметь обрабатывать сигналы для корректного завершения (тот же -15), либо быть готовым к некорректному завершению работы.

    3. Демон должен уметь оставлять свой PID, чтобы к нему было удобно написать враппер для отправки сигналов.

    p.s. сигналы можно слать через kill
    Ответ написан
    4 комментария
  • Как прокачивать скилл в системном администрировании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Настройка сервера, установка nginx, apache, php, python
    1
    Это же задача продвинутого пользователя - поставить себе ОС, веб сервер с php/mysql/python.

    администрирование - это автоматизация, виртуализация, управление некоторым количеством серверов, мониторинг.

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

    Для начала - освойте bash, стандартные команды в консоли линукса, освойте базовый troubleshooting в линукс - как посмотреть чем занята система, промониторить ее состояние, nfs/lvm/samba/ftp/scp/ssh keys

    Базово посмотрите также python, perl
    Ответ написан
    5 комментариев
  • Как прописать alias в .profile чтобы они не удалялись после закрытия putty?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Как вы определили, что не работает?
    После того как профайл поправили, перелогинивались?

    .profile подгружается при логине.
    Перелогиньтесь и еще раз проверьте.
    Ответ написан
    8 комментариев
  • Как сделать парсинг screenlog без файла?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Можно читать из лога и перенаправлять через сеть:
    nc -l -p -c "tail -f file.log"

    Или вообще сразу
    nc -l -p -e ./myjar.jar

    еще можно посмотреть что умеет делать socat, но тут не пробовал.
    Ответ написан
    Комментировать
  • RAID 10: замена дисков на бОльшие?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Но подозреваю, что не взлетит.
    Рейд это не файловая система, и его перестройка обычно доступна только на уровне контроллера.
    Почитайте инструкциюю по конкретно вашему контроллеру, чтобы выяснить позволяет ли он такое
    Ответ написан
    2 комментария
  • Как передать rsynch файлы бекапов прошлого дня?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    ну, вы передаете на rsync список конкретных файлов. Понятное дело, что пытаясь удалить, вы можете удалять только из этого списка, что не есть правильно.

    Вы уточните что именно у вас хранится в $source

    Например, вы можете просто посинкать все, что "-1" день, через find | rsync

    А старые файлы удалять отдельной командой типа:
    find /my_synced_files/ -type f -ctime +1 -delete
    Ответ написан
    7 комментариев
  • Pg_basebackup, зависит ли скорость копирования от типа данных преобладающих в БД и можно ли как-то увеличить скорость копирования средствами postgres?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Есть БД на 1ТБ, создана искусственно. содержит кучу табличек с текстовыми полями содержащими хеш от рандома (каждая порядка 10Gb).
    Копирование всего кластера на соседнюю машину занимает порядка 14 часов.


    1 тб = 1000 гб.

    100 мбит = ~10 мегабайт в секунду. 600 мегабайт в минуту То есть 1000 гигабайт/ 0.6 = 27 часов.

    1000 мбит = ~100 мегабайт в секунду, но часто пропускная способность дисков упирается в примерно 50 мегабайт/сек = 3 гб/мин, 1000 гигабайт/ 3 гб ~ 5.5 часов

    Подозреваю, что все-таки бутылочное горлышко либо сеть (gzip сжимает данные, потому вместо 27 часов получаете около 14)
    Либо gzip сжатие в один поток (напрягается только одно ядро, из-за чего кажется, что CPU не нагружен), выполняется слишком долго.

    В первом случае убедитесь, что -z включено и попробуйте -Z 9, а также гигабитную сеть
    Во втором случае попробуйте наоборот -Z 1, чтобы уменьшить нагрузку на CPU
    Ответ написан
    8 комментариев
  • Как запустить sh скрипты в Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Нужно просто осознать, что в Linux не существует ассоциаций файлов по расширениям.
    Расширение для Линукса - просто часть файла после последней точки, система никаких действий к этому не привязывает.

    Поэтому единственный способ делать .sh файлы исполняемыми - ставить на них флаг executable через
    chmod +x file.sh

    Другой вариант - запускать сам баш с передачей ему файла как аргумент (потому что бинарник bash-а уже с executable).
    bash file.sh
    Ответ написан
    Комментировать
  • Как редактировать файл .yaml с помощью sed?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Используйте простую регулярку:
    sed -i 's/test-activemq:.*/test-activemq:$GIT/g' file.yaml
    Ответ написан
    Комментировать
  • Как решить проблему в Bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    -s проверяет что файл существует и он НЕ пустой.
    если хотите пользоваться test, то логика такая:

    if [ -f file.txt ]; then
      if [ -s file.txt ]; then
        echo "file.txt is not empty
      else
        echo "file.txt is empty"
      fi
    else
      echo "file.txt doesn't exists"
    fi


    Можно еще так
    if [[ $(stat -c "%s" file.txt) -eq 0 ]]; then
      echo "file.txt is empty"
    else
      echo "file.txt doesn't exist or not empty"
    fi
    Ответ написан
    Комментировать
  • Почему не могу убить процесс?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    kill -9 10434

    Бывает процессы зависают и не реагируют на дефолтный сигнал -15. Сигнал -9 нельзя игнорировать. Если процесс не сможет завершиться после -9, значит пора ребутить.
    Ответ написан
    2 комментария
  • Что лучше для скриптов?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Зависит от назначения скрипта. Сложность задачи тут не так важна, как знание языка и смысл применения.

    bash - командный язык, для системных задач. Удобен если нужно запускать внешние приложения
    Питон - универсальный скриптовый язык.

    Например инсталлятор или управляющий скрипт в общем случае лучше писать на баше.
    Ответ написан
    1 комментарий