Saniye bazında cronjob vermek

Şubat 25, 2015 § Yorum yok § Kalıcı bağlantı

Bildiğimiz gibi cronjoblar dakika olarak verilebilir.
Saniye bazında vermek için basit bir çözüm.
30 saniyede bir çalışan cronjob:

* * * * * /home/xxxx/1.sh
* * * * * (sleep 30; /home/xxxx/1.sh)

CVE-2014-6271 shellshock uygulaması

Şubat 25, 2015 § Yorum yok § Kalıcı bağlantı

Web Sitesi Performansını Ölçmek

Şubat 25, 2015 § Yorum yok § Kalıcı bağlantı

curl kullanalım
-w: write
-s: silent
-o: output

curl -w "Connect time: %{time_connect} Time to first byte: %{time_starttransfer} Total time: %{time_total} \n" -o /dev/null www.google.com
Connect time: 0.402 Time to first byte: 0.453 Total time: 0.475

Benzer şekilde curl-format dosyasi oluşturalim
içeriği:

\n
            time_namelookup:  %{time_namelookup}\n
               time_connect:  %{time_connect}\n
            time_appconnect:  %{time_appconnect}\n
           time_pretransfer:  %{time_pretransfer}\n
              time_redirect:  %{time_redirect}\n
         time_starttransfer:  %{time_starttransfer}\n
                            ----------\n
                 time_total:  %{time_total}\n
\n

daha sonra curl çalıştırırsak

curl -w "@curl-format" -o /dev/null -s http://www.google.com/
            time_namelookup:  0.416
               time_connect:  0.435
            time_appconnect:  0.000
           time_pretransfer:  0.435
              time_redirect:  0.000
         time_starttransfer:  0.488
                            ----------
                 time_total:  0.491

Process RAM kullanımını ölçmek

Şubat 25, 2015 § Yorum yok § Kalıcı bağlantı

Aşağıdaki komut bu iş için kullanılabilir:

ps -A -o pid,rss,command | grep nginx | grep -v grep | awk '{total+=$2}END{printf("nginx=%dMb\n", total/1024)}'

Burada RSS yerine VSZ’ye de bakılabilir.
RSS: Process tarafından o an kullanılan RAM miktarı.(kb cinsinden)
VSZ: Process doğduğunda ona çalışması için ayrılan RAM miktarı. (kb cinsinden)

vpnbook.com Sitesinden VPN Şifresini Otomatik Almak

Şubat 2, 2015 § Yorum yok § Kalıcı bağlantı

vpnbook güzel bir hizmet veriyor fakat şifrelerini belirsiz aralıklarla güncelliyorlar.
vpnbook.com dan şifreleri otomatik almak için ben vpnbook-utils kullanıyorum.

crontab’a aşağıdaki scripti koydum.

[root@FOZTURK vpnbook-utils-master]# crontab -l
9 */3 * * * /root/vpnbook.sh

vpnbook programının kodu:

[root@FOZTURK vpnbook-utils-master]# cat vpnbook 
#!/bin/sh
# The MIT License (MIT)
# Copyright (c) 2014 Tobias Bell <tobias.bell@gmail.com>

PROGRAM="vpnbook"
# URL to the site containing user and password
SITE="http://www.vpnbook.com/freevpn"
# URL to the site containing OpenVPN configs
OPENVPN_SITE="http://www.vpnbook.com"
# File where VPNBook credentials get stored
AUTH_FILE="./vpnbook.auth"
# Path to temporary file
AUTH_FILE_TMP="/tmp/vpnbook.$$"
# Folder where OpenVPN configs are created
CONFIG_FOLDER="./"
# Path to temporary folder for config generation
CONFIG_FOLDER_TEMP="/tmp/vpnbook-config.$$"

cleanup() {
        rm -f "$AUTH_FILE_TMP"
        rm -rf "$CONFIG_FOLDER_TEMP"
}

trap cleanup HUP INT TERM

usage() {
        cat << EOF
Usage: $PROGRAM <command> [parameter]

Commands are
    config  Generate OpenVPN configs for non-interactive usage based on configs provided
            on $OPENVPN_SITE
    auth    Extract user and password from $OPENVPN_SITE and save to auth-user-pass file
            (default: $AUTH_FILE)

Parameters are
    -a <file>    Path to the auth_user_pass file (default: $AUTH_FILE)
    -c <folder>  Folder where OpenVPN configs are generated (default: $CONFIG_FOLDER)
    -h           Show this help
EOF
}

download_site() {
        local site="$1"
        wget "$site" -q -O -
}

extract_credentials() {
        awk -F '[<>]' '
        BEGIN { exit_value = 1 }
        /Username:/ && !user_found { print $5; user_found = 1; next }
        /Password:/ && user_found { print $5; exit_value = 0; exit } 
        END { exit exit_value }
        '
}

extract_config_urls() {
        local site="$1"
        awk -F '[<>]' -v site=$site '
        /free-openvpn-account/ { split($4, a, /"/); print site a[2] }
        '
}

generate_auth() {
        local data="$1"
        if (echo "$data" | extract_credentials) > "$AUTH_FILE_TMP"; then
                mv "$AUTH_FILE_TMP" "$AUTH_FILE"
                chmod 600 "$AUTH_FILE"
        fi
}

generate_vpn_config() {
        awk -v auth_file="$AUTH_FILE" '
        # Remove windows newline
        { sub(/\r$/, "") }
        # Add both ports in config file and let OpenVPN select them remote-random
        /^remote/ {
                host = $2; print
                print $1, host, 25000
                if (!remote_random_printed) {
                        print "remote-random"
                        remote_random_printed = 1
                }
                next
        }
        # Switch authentication from interactive to file based
        /^auth-user-pass/ {
                print $1, auth_file
                print "auth-retry nointeract"
                next
        }
        # Let OpenVPN check the remote certificate
        /^<ca>/ {
                print "ns-cert-type server"
        }
        # Output everything else unchanged
        { print }
        '
}

generate_config() {
        local data="$1"
        mkdir "$CONFIG_FOLDER_TEMP" || return
        #Bu alanı ben kaldirdim
        cd /root/vpnbook_config/
        for url in $(echo "$site_data" | extract_config_urls "$OPENVPN_SITE"); do
                local file="$CONFIG_FOLDER_TEMP/${url##*/}"
                local conf_file="vpnbook-${file##*-}"
                conf_file=${conf_file%.zip}.ovpn
                conf_file="$CONFIG_FOLDER/$(echo $conf_file | tr 'A-Z' 'a-z')"
                wget "$url" -O "$file" -q
                unzip -p "$file"  '*udp53*.ovpn' | generate_vpn_config > "$conf_file"
        done

        wget "http://www.vpnbook.com/free-openvpn-account/VPNBook.com-OpenVPN-Euro1.zip"
        wget "http://www.vpnbook.com/free-openvpn-account/VPNBook.com-OpenVPN-Euro2.zip"

        unzip VPNBook.com-OpenVPN-Euro1.zip
        unzip VPNBook.com-OpenVPN-Euro2.zip
        rm -f VPNBook.com-OpenVPN-Euro1.zip
        rm -f VPNBook.com-OpenVPN-Euro2.zip
        generate_auth "$data"
}

main() {
        case $1 in
                config | auth )
                        generator_func="generate_$1"
                        ;;
                * )
                        usage
                        exit 1
                        ;;
        esac
        shift

        while getopts 'a:c:h' options; do
                case $options in
                        a )
                                auth_file=$OPTARG
                                ;;
                        c )
                                config_folder=$OPTARG
                                ;;
                        h | \?)
                                usage
                                exit 1
                                ;;
                esac
        done

        AUTH_FILE=${auth_file:-$AUTH_FILE}
        CONFIG_FOLDER=${config_folder:-$CONFIG_FOLDER}

        local site_data="$(download_site "$SITE")"
        $generator_func "$site_data"
        retval=$?
        cleanup
        return $retval
}

if [ "$PROGRAM" = ${0##*/} ]; then
        main "$@"
        exit $?
fi

Neredeyim ben!?

Şubat, 2015 arşivinde geziniyorsun.