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)
Ş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)
Şubat 25, 2015 § Yorum yok § Kalıcı bağlantı
Ş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
Ş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)
Ş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