1. bash / Говнокод #22284

    0

    1. 1
    2. 2
    c=$(df /usr | tail -n 1 | awk '{print $3}')
    sudo apt-get clean && echo $((c - $(df /usr | tail -n 1 | awk '{print $3}'))) | numfmt --to=iec | xargs echo -n && echo " freed"

    сразу и не поймешь что он делает

    UsernameAK, 06 Февраля 2017

    Комментарии (3)
  2. bash / Говнокод #21948

    −4

    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
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    ### Просмотр основных сведений о системе
    # процессы
    top
    # память
    free -m
    # диск
    df -h
    # открытые порты
    netstat -tnlp
    # --tcp
    # --numeric - без доменных имен
    # --listening
    # --program
    
    # обновление пакетов
    apt-get update
    apt-get upgrade
    
    # установка полезных пакетов
    apt-get install build-essential
    apt-get install mc htop git
    apt-get install byobu
    apt-get install tree
    apt-get install rsync
    apt-get install aria2
    apt-get install ncdu
    
    # время и локаль
    rm /etc/localtime
    date
    ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
    date
    apt-get install locales
    nano /etc/environment
    nano /etc/locale.gen
    locale-gen
    lsb_release -a
    
    # установка nginx
    cd /tmp
    wget
    wget http://nginx.org/keys/nginx_signing.key
    apt-key add nginx_signing.key
    apt-get update
    rm nginx_signing.key
    apt-get install nginx
    
    # установка цветовых схем для nano
    cd /tmp
    git clone https://github.com/nanorc/nanorc.git
    cd nanorc/
    make install
    exit
    
    # просмотр внешнего ip vds
    ifconfig eth0 | grep inet | awk '{ print $2 }'
    
    # первоначальная настройка nginx
    cd /etc/nginx
    nano nginx.conf
    cd conf.d/
    rm example_ssl.conf
    nano default.conf
    
    # установка php fpm
    apt-get install php5-fpm
    
    adduser webmaster
    su webmaster
    
    
    # установка mongodb
    apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
    echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list
    apt-get update
    apt-get install mongodb-10gen
    
    # установка php-mongodb драйвера
    apt-get install php5-dev
    apt-get install php-pear
    pecl install mongo
    nano /etc/php5/conf.d/mongo.ini
    php -m
    
    # установка php акселератора php-apc
    apt-get install php-apc
    php -m
    
    
    # уменьшение журнала mongodb
    nano /etc/mongodb.conf
    df -h
    service mongodb stop
    rm -Rf /var/lib/mongodb/journal/prealloc.*
    service mongodb start
    df -h

    Список команд для первоначальной настройки VPS/VDS для debian-систем.

    В нашем веке уже нужно пользоваться системами типа ajenti.

    dacave, 06 Января 2017

    Комментарии (97)
  3. bash / Говнокод #21841

    +5

    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
    Самого говнокода у меня под рукой нет, но о его содержимом можно догадываться по результатам его работы.
    
    $ { printf 'GET / HTTP/1.1\r\nHost: '; sleep 0; printf 'konachan.com\r\nUser-Agent: netcat\r\nAccept: */*\r\n\r\n'; } | nc konachan.com 80
    HTTP/1.1 302 Found
    Connection: close
    Location: http://warning.rt.ru/?id=9&st=0&dt=5.178.68.88&rs=http://konachan.com/
         <- Подменённая питухтелекомом часть пакета кончается здесь, она узнаётся по коду 301
    g <- А это уже продолжение оригинального пакета
    Status: 200 OK
    Cache-Control: max-age=0, private, must-revalidate
    X-XSS-Protection: 1; mode=block
    X-Request-Id: 4331f357-c4e2-456f-807d-07e36c4dae4f
    X-UA-Compatible: chrome=1
    
    Попробуем что-нибудь ещё:
    
    $ { printf 'GET / HTTP/1.1\r\nHost: '; sleep 1; printf 'konachan.com\r\nUser-Agent: netcat\r\nAccept: */*\r\n\r\n'; } | nc konachan.com 80
    HTTP/1.1 200 OK
    Content-Type: text/html; charset=utf-8
    Content-Length: 5061
    Connection: keep-alive
    Vary: Accept-Encoding
    ....
    
    $ { printf 'GET / HTTP/1.1\nHost: konachan.com\nUser-Agent: netcat\nAccept: */*\n\n'; } | nc konachan.com 80
    HTTP/1.1 200 OK
    Content-Type: text/html; charset=utf-8
    Content-Length: 5062
    Connection: keep-alive
    Vary: Accept-Encoding
    ....

    Предвижу тренды 2017го года: telnet отнимает популярность у прочих браузеров!

    CHayT, 15 Декабря 2016

    Комментарии (173)
  4. bash / Говнокод #21736

    −4

    1. 1
    Сказка о Петузе и Зелибобе

    Жил-был на свете Петуз. И был у него друг Зелибоба. Жили они в волшебном лесу каждый в своем домике. Однажды заходит Зелибоба к своему другу и видит, что тот у компьютера сидит, да что-то печатает в какое-то черное окошечко.

    -Что это ты делаешь, Петузок? - спросил Зелибоба подойдя ближе.

    -Я ко-ко-ко-компилирую драйвера для своей видеокарты. - ответил Петуз. Он немного заикался.

    -А зачем их это, как его, конпилировать?

    -Ну как, чтобы они работали но-нормально.

    Почесал голову Зелибоба и пошел домой к себе. Включил свой компьютер с Windows 7 и зашел на сайт Nvidia. Скачал он инсталлятор и кликнул на него два раза. Установка прошла и драйвера были установлены. И так крутил, и тут жмакал бедный Зелибоба, а никакой компиляции найти не мог. Плюнул он на это и пошел Петуза гулять звать.

    -Пошли гулять, Петузок! - крикнул Зелибоба в окошко домика друга.

    В ответ тишина.

    Зашел Зелибоба в дом, а там Петузя сидит и что-то печатает на клавиатуре, да так, что грохот на весь дом.

    -Петузок! Пошли гулять!

    Наконец Петузок услышал и смахнув пот со лба повернулся к Зелибобе.

    -Не могу я гулять. Понимаешь, тут вот флеш жрет 100 процентов процессора, это странно. Мне надо все переко-ко-ко-ко - петузок прокашлялся - компилировать.

    -А у меня никакой конпиляции нет. Я нажал и установил.

    -Так это потому что у тебя Виндовс.

    -А ты тогда почему себе виндовс не поставишь?

    -Ничего не понимаешь, Зелибоба, тут же свобода!

    -Какая свобода? От кого? - недоумевающе спросил Зелибоба. - Я делаю на своем компьтере все что хочу, никто не мешает.

    -Как не мешает! - Петузок взмахнул крыльями так, что чуть не взлетел - Еще как мешает! Злые ко-ко-корпорации! Они не открывают исходники своих программ!

    -Исходники? Не знаю что это. Слушай, а что тебе дают твои исходники тут? На этом, как его...

    -На линуксе! Ну, я могу сам их посмотреть.

    -Но зачем?

    -Вдруг там вредоносный или шпионский код.

    <Продолжение следует...>

    3_14dar, 27 Ноября 2016

    Комментарии (107)
  5. bash / Говнокод #21735

    −1

    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
    available_docker_storage() {
        avail=$(docker info | grep 'Data Space Available' | cut -d' ' -f'5,6')
        # Some Docker drivers don't provide this info
        if [ -z "$avail" ]; then
            available_disk_space
        else
            num=$(echo "$avail" | cut -d' ' -f1)
            magnitude=1
            correction=1
            case $avail in
                *GB) magnitude=1000000000 ;;
                *MB) magnitude=1000000 ;;
                *KB) magnitude=1000 ;;
            esac
            # Prey to Poseidon they don't use scientific notation
            exponent=(${num//./ })
            exponent=${exponent[1]}
            exponent_length=${#exponent}
            correction=$((10**exponent_length))
            num=$(echo "$num" | tr -d '.')
            result=$((magnitude*num))
            result=$((result/correction))
            echo $result
        fi
    }

    Плавающий питух. bc не установлен. Ничего вообще не установлено. Только баш. Вроде работает.

    wvxvw, 27 Ноября 2016

    Комментарии (107)
  6. bash / Говнокод #21032

    +2

    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
    #!/bin/bash
    
    docker images  | \
        grep $1 | \
        awk '{ print $1":"$2 }' | \
        xargs -I{} docker history --human=false {} | \
        grep -P '^[0-9a-f]{12}' | \
        sed -r 's/([^ ]+).+\s([^ ]+\s+)$/\1 \2/' | \
        sort -u | \
        grep -v ' 0' | \
        awk '{ print $2 }' | \
        xargs | \
        sed -e 's/\ /+/g' | \
        bc | xargs -I{} echo '({} / (1024.0 * 1024.0))' | bc

    Считает общий объем занимаемый всеми имиджами Докера с определенным тагом.

    wvxvw, 29 Августа 2016

    Комментарии (60)
  7. bash / Говнокод #20830

    +146

    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
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    guest@localhost ~ $ for i in `seq 13000 14500`; do echo "i=$i"; curl -s "http://govnokod.ru/user/$i" | grep "title>Личная кабинка пользователя" ; done  | tee newbs.txt
    
    guest@localhost ~ $ grep -B1 bot_number newbs.txt
    i=14276
        <title>Личная кабинка пользователя bot_number_0 —  Говнокод.ру</title>
    i=14277
        <title>Личная кабинка пользователя bot_number_00 —  Говнокод.ру</title>
    i=14278
        <title>Личная кабинка пользователя bot_number_000 —  Говнокод.ру</title>
    i=14279
        <title>Личная кабинка пользователя bot_number_0000 —  Говнокод.ру</title>
    i=14280
        <title>Личная кабинка пользователя bot_number_00000 —  Говнокод.ру</title>
    i=14281
        <title>Личная кабинка пользователя bot_number_000000 —  Говнокод.ру</title>
    i=14282
        <title>Личная кабинка пользователя bot_number_0000000 —  Говнокод.ру</title>
    i=14283
        <title>Личная кабинка пользователя bot_number_00000000 —  Говнокод.ру</title>
    i=14284
        <title>Личная кабинка пользователя bot_number_000000000 —  Говнокод.ру</title>
    i=14285
        <title>Личная кабинка пользователя bot_number_000000001 —  Говнокод.ру</title>
    i=14286
        <title>Личная кабинка пользователя bot_number_000000002 —  Говнокод.ру</title>
    i=14346
        <title>Личная кабинка пользователя bot_number_9 —  Говнокод.ру</title>
    i=14347
        <title>Личная кабинка пользователя bot_number_99 —  Говнокод.ру</title>
    i=14348
        <title>Личная кабинка пользователя bot_number_999 —  Говнокод.ру</title>
    i=14349
        <title>Личная кабинка пользователя bot_number_9999 —  Говнокод.ру</title>
    i=14350
        <title>Личная кабинка пользователя bot_number_99999 —  Говнокод.ру</title>
    i=14351
        <title>Личная кабинка пользователя bot_number_999999 —  Говнокод.ру</title>
    i=14352
        <title>Личная кабинка пользователя bot_number_9999999 —  Говнокод.ру</title>
    i=14353
        <title>Личная кабинка пользователя bot_number_99999999 —  Говнокод.ру</title>
    i=14354
        <title>Личная кабинка пользователя bot_number_999999991 —  Говнокод.ру</title>
    i=14355
        <title>Личная кабинка пользователя bot_number_999999992 —  Говнокод.ру</title>
    i=14356
        <title>Личная кабинка пользователя bot_number_999999999 —  Говнокод.ру</title>
    
    guest@localhost ~ $ grep -c bot_number newbs.txt
    22
    
    guest@localhost ~ $ echo $((13+9))
    22

    Занимательная нумерология. После void_main было зарегестрировано 22 пользователя с нехитрыми именами bot_number*
    Сегодня днём все посты опускались на -13.
    Теперь Благодетель поднимает их на +9.
    9+13 = 22
    И теперь он кукарекает про модерку.

    CHayT, 17 Августа 2016

    Комментарии (96)
  8. bash / Говнокод #18555

    +745

    1. 1
    2. 2
    root@server:/var/www/project# supervisorctl restop gunicorn
    *** Unknown syntax: restop gunicorn

    krokodil_910, 31 Июля 2015

    Комментарии (31)
  9. bash / Говнокод #18532

    +343

    1. 1
    test "$(whoami)" != 'root' && (echo you are using a non-privileged account; exit 1)

    Real Programmers
    Most programmers will prefer to use the test built-in command, which is equivalent to using square brackets for comparison, like this

    http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html#sect_07_01_02_03

    Вот такие они, real programmers.
    Подсказка: Круглые скобки в шелле запускают саб-шелл

    Elvenfighter, 26 Июля 2015

    Комментарии (71)
  10. bash / Говнокод #17641

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    if (( $(true; echo $?) != 0 )); then
        echo >&2 "Oops, we're running on a non-existing platform."
        exit 1 # Хм, а вдруг здесь 1 == EXIT_SUCCESS?...
    fi

    (c) anonymous
    https://www.linux.org.ru/forum/development/11317153?cid=11318931

    Elvenfighter, 13 Февраля 2015

    Комментарии (188)