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

    +21

    1. 1
    d:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/io.h:175:16: error: 'long long long' is too long for GCC

    lebutirate, 28 Апреля 2012

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

    −2

    1. 1
    ls -lb ${T} | tail -n$(ls | wc -l) | grep -e '^-' > file

    govnomonad, 27 Апреля 2012

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    cat *.txt | while read a
    do 
      echo $a | wc -c
    done | sort -n | tail -n 1 | sed -e 's/[^0-9]//g'

    возвращает размер самой длинной строки из всех txt-файлов в текущей папке

    ksugltronteal, 21 Апреля 2012

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

    −8

    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
    sudo apache2 -V
    Server version: Apache/2.2.20 (Ubuntu)
    Server built:   Nov  7 2011 22:48:05
    Server's Module Magic Number: 20051115:28
    Server loaded:  APR 1.4.5, APR-Util 1.3.12
    Compiled using: APR 1.4.5, APR-Util 1.3.12
    Architecture:   32-bit
    Server MPM:     Prefork
      threaded:     no
        forked:     yes (variable process count)
    Server compiled with....
     -D APACHE_MPM_DIR="server/mpm/prefork"
     -D APR_HAS_SENDFILE
     -D APR_HAS_MMAP
     -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
     -D APR_USE_SYSVSEM_SERIALIZE
     -D APR_USE_PTHREAD_SERIALIZE
     -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
     -D APR_HAS_OTHER_CHILD
     -D AP_HAVE_RELIABLE_PIPED_LOGS
     -D DYNAMIC_MODULE_LIMIT=128
     -D HTTPD_ROOT="/etc/apache2"
     -D SUEXEC_BIN="/usr/lib/apache2/suexec"
     -D DEFAULT_PIDLOG="/var/run/apache2.pid"
     -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
     -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
     -D DEFAULT_ERRORLOG="logs/error_log"
     -D AP_TYPES_CONFIG_FILE="mime.types"
     -D SERVER_CONFIG_FILE="apache2.conf"

    geniewgen, 08 Апреля 2012

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

    0

    1. 1
    MINOR_VERSION=`curl -s ${source%/*}/ | grep ${pkgname}-${pride_version%.*}.*.${ARCHIVEXT} | cut -d '>' -f 7 | cut -d '<' -f 1 | cut -c$((${#pkgname}+2))-99 | sed "s/${ARCHIVEXT}/\ ${ARCHIVEXT}/g" | cut -d ' ' -f 1 | uniq | sort -t. -k1,1n -k2,2n -k3,3n -k4,4n -k5,5n -k6,6n | tail -n 1`

    вот что я выдавил из себя, когда писал парсер проверки свежих версий софтин на fd.o %)

    fat0troll, 26 Февраля 2012

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

    0

    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
    #!/usr/bin/env bash
    
    # What should be backuped
    
    # Directories: space-separated list
    DIRS_TO_BACKUP="/var/www "
    
    # MySQL
    MYSQL_TO_BACKUP=0 # this flag means MySQL DB should be backuped
    # MySQL root credentials
    MYSQL_USER=root 
    MYSQL_PASSWORD="1111"
    
    # PostgreSQL
    # One can run pg_dumpall under postgres user.
    POSTGRES_TO_BACKUP=0 # this flag means PostgreSQL DB should be backuped
    
    # Email address for sending reports
    ADMIN_EMAIL=
    
    # AWS user credentials
    S3_ACCESS_KEY=
    S3_SECRET_KEY=
    S3_BUCKET=
    
    # !!! DON'T EDIT BELOW !!!
    
    CURRENT_TIME=`date +%F`
    BACKUP_HOSTNAME=`cat /etc/hostname`
    SCRIPT_DIR=`dirname $(readlink -f $0)`
    BACKUP_BASE_DIR=$(mktemp -d)
    
    prepareMySQLdb() {
        mkdir -p $BACKUP_BASE_DIR/mysql/
        mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD --all-databases > $BACKUP_BASE_DIR/mysql/mysql.dump
    }
    
    preparePostgreSQLdb() {
        mkdir -p $BACKUP_BASE_DIR/postgres/
        sudo -u postgres /usr/bin/pg_dumpall > $BACKUP_BASE_DIR/postgres/postgres.db
    }
    
    prepareFiles() {
        for f in $DIRS_TO_BACKUP; do
            mkdir -p $BACKUP_BASE_DIR/files/$f
            cp -R $f/* $BACKUP_BASE_DIR/files/$f
        done 
    }
    
    backup() {
        week=$(date +%U)
        weekday=$(date +%u)
    
        cd $BACKUP_BASE_DIR
        tar -cvf $BACKUP_BASE_DIR/$BACKUP_HOSTNAME-$CURRENT_TIME.tar ./*
        gzip $BACKUP_BASE_DIR/$BACKUP_HOSTNAME-$CURRENT_TIME.tar
        cd $SCRIPT_DIR
    }
    
    upload() {
        echo -n "$S3_SECRET_KEY" > $BACKUP_BASE_DIR/secret.key
        $SCRIPT_DIR/s3-put -S -k $S3_ACCESS_KEY -s $BACKUP_BASE_DIR/secret.key -T $BACKUP_BASE_DIR/$BACKUP_HOSTNAME-$CURRENT_TIME.tar.gz /$S3_BUCKET/$BACKUP_HOSTNAME/$BACKUP_HOSTNAME-$CURRENT_TIME.tar.gz > $BACKUP_BASE_DIR/upload.result
        cat $BACKUP_BASE_DIR/upload.result | grep "<Error>"
        if [[ $? == 0 ]]; then
            return 1
        else
            return 0
        fi
    }
    
    
    clean() {
        rm -rf $BACKUP_BASE_DIR
    }
    
    # $1 - msg
    # $2 - procedure
    testError() {
        if [[ $? != 0 ]]; then
            echo $1
            mail $ADMIN_EMAIL -s "BACKUP ERROR ($BACKUP_HOSTNAME)" < <(echo -e "Error occured at $2\n\nDetails:\n$(echo $1)")
            clean
            exit
        fi
    }
    
    if [ "$(ls -A $BACKUP_BASE_DIR 2>/dev/null)" ]; then
        $? = 1
        testError "$BACKUP_BASE_DIR is not empty" "Testing emptiness of BACKUP_BASE_DIR"
    fi
    
    if [[ $DIRS_TO_BACKUP != "" ]]; then
        res=$(prepareFiles 2>&1)
        testError "$res" "prepareFiles()"

    Самопальный скрипт для резервного копирования на Amazon S3

    Huligan, 30 Января 2012

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

    +1

    1. 1
    ip=$(/bin/env | grep REMOTE_ADDR | cut -f 2 -d"=")

    nexeuse, 20 Ноября 2011

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    {  
       (cd "$DIR"; ls -1);
       {  xml2 < $XML | grep '/list/files/@path=' | cut -d = -f 2 | cut -d / -f 2 | sort | uniq; }   
    } | sort | uniq --count | grep '^ *1' | awk '{print $2}' | (cd "$DIR"; xargs --no-run-if-empty rm -v)

    Удаляет из "$DIR" всё, что не описано в files.xml.

    x28cnp, 10 Ноября 2011

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

    +3

    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
    #!/bin/bash
    
    ps -eo pid,ppid,comm > data
    
    #treeNet[0]=1
    
    depth=0
    
    init=0
    tree()
    {
    
    #echo $1
    let depth=depth+1
    treeNet[$depth]=1
    
    for ((i=1;i<depth-1;i++))
    do
    # echo ${treeNet[$depth]}
    if [[ ${treeNet[$i]} -eq 0 ]]
    then
    echo -n " "
    fi
    if [[ ${treeNet[$i]} -eq 1 ]]
    then
    echo -n "¦ "
    fi
    
    done
    
    if [[ $init -ne 0 ]]
    then
    echo -n '¦====='
    else
    init=1
    fi
    #let depth=depth+1
    # treeNet[depth]=1
    #prints process name
    echo $(cat data | awk '{ if ($1 == '$1') print $3}' )
    
    
    #printing branches
    local count=0 #amount of child branches
    for i in $(cat data | awk ' {if ($2 == '$1' ) print $1 } ')
    do
    let count=count+1
    #echo $i
    done
    
    #recursive call tree()
    local n=0;
    for child in $(cat data | awk ' {if ($2 == '$1' ) print $1 } ')
    do
    
    let n=n+1
    # echo -n " # child no $n of $count depth $depth debug ${treeNet[1]} ${treeNet[2]} ${treeNet[3]} ${treeNet[4]}"; 
    if [[ $n -eq $count ]]
    then
    #echo -n " last " 
    treeNet[$depth]=0
    fi
    # echo
    # let n=n+1
    tree $child
    done
    treeNet[$depth]=0
    
    let depth=depth-1
    return 0
    }
    
    
    tree 1

    kurganec, 21 Октября 2011

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

    +2

    1. 1
    2. 2
    # mount /var/run or /run (DONTFIXME: obscure black magic)
    mount_directory "$timestamp_base_dir" "$chroot_env_root"'/var/run'

    монтирование /var/run или /run (в зависимости от дистрибутива) в chroot, тоже в /var/run или /run, в зависимости от дистрибутива в chroot

    Shnatsel, 11 Октября 2011

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