1. Куча / Говнокод #11795

    +128

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    #!/bin/bash
    hl=`cat $1`
    wrdl=`cat ~/worlds.txt`
    addr=$PWD'/extra_hosts.txt'
    rm -f $addr && echo "Deleted host list file "$addr
    touch $addr && echo "Created file "$addr
    for address in $hl
    do
    rm $PWD/`basename $address`.txt && echo "Deleted file "$PWD/`basename $address`.txt
    done
    for address in $hl
    do
    #echo $address
    export address
    tmp=$PWD/`basename $address`.txt
    trc=$PWD/`basename $address`.tr.txt
    mytmp=/tmp/`basename $address`.txt
    curl -Ss --retry 2 --trace $trc --tr-encoding --tcp-nodelay $address > $mytmp &
    sleep 10s
    cat $mytmp \
     | grep -e '<a href=\"[^"]*\"' | grep -E -o '[^"]+'\
     | grep htm | perl -pe 's/$ENV{address}//'| \
     perl -pe 's/^\//$ENV{address}\//' | perl -pe 's/text\/html//'|\
      sed -e 's/<[^>]*>//g' -e '/\/http:/d;/^http/p;d;' | sort | uniq >> $addr &
    for wrd in `cat ~/worlds.txt`
    do
    export wrd
    cat -b $mytmp\
    | sed -e 's/<[^>]*>//g' |grep -i $wrd \
     | perl -pe 's/^/$ENV{address}:$ENV{wrd}:/' | tee -a $tmp &
    done
    done
    mkdir -p extra_hosts && echo "Made dir extra_hosts"
    cd extra_hosts
    $0 $addr

    Запостил: AliceGoth, 18 Сентября 2012

    Комментарии (9) RSS

    • Потемки сознания...
      После такого ПХП-шников уже как-то мартышками сложно назвать :/
      Такое ж еще в голову должно прийти, чтобы передавать какие-то данные скрипту через глобальные переменные окружения.
      Ответить
      • готическая алиса рвет этот шаблон )
        Ответить
      • LET x=16: LET y=12: LET t$="Hello": GO SUB 1000
        Ответить
      • > Такое ж еще в голову должно прийти, чтобы передавать какие-то данные скрипту через глобальные переменные окружения.

        а `$0 $addr` ты наверное не заметил? :)

        народа который такие скрипты пишет на самом деле навалом: повер юзвери и админы которые всего по верхам нахватались, но ни одной тулзы толком так и не выучили. (`--tcp-nodelay` однозначно говорит что скрипт какой-то /навороченый/ админ писал.)
        Ответить
        • Мне не очень хочется пробовать, но оне же не взлетит? в смысле в директории extra_hosts не будет этого скрипта же... или его по абсолютному пути вызывают?..
          Ответить
          • скорее всего по $PATH он вызывается. абсолютные пути на юнихах не популярны.

            хотя может быть автор и извернулся и сделал так что бы только как ./script.sh можно было запускать - и в поддерикториях тоже лежат скрипты с таким же именем.

            с таким качеством писания, зарекатся ни от чего нельзя.

            ЗЫ самые интересные грабли с такими скриптами, это когда mkdir + cd обламываются и скрипт уходит в вечный цикл. у нас такое было когда имена двух скриптов случайно совпали.
            Ответить
      • Админ не обязан быть программистом

        Это ты видишь говнокод, а он видит чудесную работающую тулу, которая спасла его от ручного пирдоля

        Админ ничего сложнее этих тридцати пяти строк в жизни не писал, и никакого кода кроме таких же точно скриптов не видел, и книжек про чистый код не читал

        Откуда ему знать, что это пиздос?

        Так ведь и программист под час открывает сокет на ANY от рута и принимает туда всякие говнокоманды и тоже не понимает, что творит дичь
        Ответить
    • > | grep htm | perl -pe 's/$ENV{address}//'| \

      в авк не может, понятно
      Ответить
    • Кстати, как на tcl насрать проверку файла на наличие внутри Server Side Includes?
      Ответить

    Добавить комментарий