Ответы пользователя по тегу bash
  • Как слушать порт постоянно (bash+netcat+python)?

    @viiy
    Linux сисадмин \ DevOps
    Не могу не упомянуть такие вещи inetd/xinetd
    Да, их уже похоронили и даже в ubuntu 14 уже нет
    Хотя жаль, они как раз позволяли скриптам/тулзам не имеющим сетевых функций получить возможность слушать что-то по сети
    Чисто для истории, текущую задачу целесообразнее выполнить в одном скрипте + какойнибудь supervisord
    Ответ написан
    Комментировать
  • Использовать ли Python, когда можно обойтись bash?

    @viiy
    Linux сисадмин \ DevOps
    Сила bash не в синтаксисе, а в тесной работе с различными утилитами
    Невозможно на питоне быстро и элегантно делать то, что на баше называются "однострочниками" Когда не хватает правильных циклов, массивов, работы со строками - на помощь приходит awk, который будет быстрее в разы чем питон. Sed, grep, tr, cut сделают с тектом все что вы хотите и тоже будут быстрее чем питоновский регексп. И все это есть везде, на linux, os x, solaris, freebsd уже из коробки
    В общем - учите баш
    Ответ написан
    Комментировать
  • Как в BASH скрипте написать дату и время?

    @viiy
    Linux сисадмин \ DevOps
    git commit -a -m "комментарий `date +"%Y%m%d %H:%M"`"
    или
    git commit -a -m "комментарий $(date +"%Y%m%d %H:%M")"

    нужный формат даты подберите из "man date"
    Ответ написан
    Комментировать
  • Как запустить утилиту с переменным числом ключей из bash?

    @viiy
    Linux сисадмин \ DevOps
    Удобней всего через getopts

    FINDOPTS=''
    
    while getopts "i:e:" opt; do
        case $opt in
            e) FINDOPTS=$FINDOPTS" --exclude $OPTARG ";;
            i) FINDOPTS=$FINDOPTS" --include $OPTARG ";;
        esac
    done
    
    echo $FINDOPTS


    $ ./getopts.sh -i path1 -i path2 -i path3 -e path4 -e path5 
    --include path1 --include path2 --include path3 --exclude path4 --exclude path5


    Это абстрактный способ, адаптируйте аргументы под ваши задачи.
    Ответ написан
    2 комментария
  • Почему crontab не выполняет скрипт?

    @viiy
    Linux сисадмин \ DevOps
    А это что такое?
    @reboot /home/user/startup.sh


    Все должно работать если:
    - reboot.sh исполняемый, проверьте "ls -l reboot.sh", в свойствах должно быть "x"
    - синтаксис верный, используйте "crontab -e" вместо ручного редактирования файлов cron
    - все пути к командам в скрипте есть в переменной PATH в момент выполнения (комментарий от Владимира)

    Вместо ps смотрите лучше логи в /var/log/syslog с префиксом CRON
    Ответ написан
    Комментировать