~ubuntu-branches/debian/squeeze/byobu/squeeze

« back to all changes in this revision

Viewing changes to bin/ec2_cost

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler, Chow Loong Jin and Dustin Kirkland, Dustin Kirkland, Reinhard Tartler
  • Date: 2009-07-30 12:58:26 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20090730125826-r8wf0j8bgljrqh71
Tags: 2.24-1
[ Chow Loong Jin and Dustin Kirkland ]
* byobu, byobu-launcher, byobu-select-profile: check $STY rather than
  $TERM, to determine if we're already inside of a screen session, per
  screen's manpage; wrap $STY in double quotes; use -n rather than -z;
  LP: #403988, LP: #403809

[ Dustin Kirkland ]
* debian/rules: fix update-pot section of rules file; previous code
  was only actually gathering messages from the last file input
  (byobu-config); this joins the code properly
* bin/wifi_quality: actually evaluate the wifi quality, fixes broken
  quality percentage

[ Reinhard Tartler ]
* upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
#
 
3
#    ec2_cost: approximate EC2 cost (USD) of the current instance
 
4
#    Copyright (C) 2008 Canonical Ltd.
 
5
#
 
6
#    Authors: Dustin Kirkland <kirkland@canonical.com>
 
7
#
 
8
#    This program is free software: you can redistribute it and/or modify
 
9
#    it under the terms of the GNU General Public License as published by
 
10
#    the Free Software Foundation, version 3 of the License.
 
11
#
 
12
#    This program is distributed in the hope that it will be useful,
 
13
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
#    GNU General Public License for more details.
 
16
#
 
17
#    You should have received a copy of the GNU General Public License
 
18
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
19
 
 
20
DETAIL=0
 
21
PKG="byobu"
 
22
 
 
23
for arg in $@; do
 
24
        case "$arg" in
 
25
                -d|--detail)
 
26
                        DETAIL=1
 
27
                ;;
 
28
        esac
 
29
done
 
30
 
 
31
# Approximate Instance Cost Basis
 
32
#                       US              Europe
 
33
# Small  (1cpu, 32bit)  $0.10/h         $0.11/h
 
34
# Medium (2cpu, 32bit)  $0.20/h         $0.22/h
 
35
# Large  (4cpu, 64bit)  $0.40/h         $0.44/h
 
36
# XLarge (8cpu, 64bit)  $0.80/h         $0.88/h
 
37
 
 
38
# Count CPUs
 
39
cpu_count=`grep -c "^processor.*:" /proc/cpuinfo`
 
40
[ -z "$cpu_count" ] && cpu_count=1
 
41
# Apply the going rate
 
42
CPU_RATE=`echo "$cpu_count" | awk '{printf "%f", 0.10*$1}'`
 
43
# BUG: Some logic needed here to add 10% cost for Europe instances?
 
44
 
 
45
# Data Transfer Cost Basis
 
46
# Incoming      $0.10/GB
 
47
# Outgoing      $0.17/GB
 
48
# (This gets more complex if you use >1TB/mo)
 
49
RX_RATE="0.10"
 
50
TX_RATE="0.17"
 
51
 
 
52
# Auto detect network interface
 
53
IF=`tail -n1 /proc/net/route  | awk '{print $1}'`
 
54
 
 
55
ifconfig_out=`/sbin/ifconfig "$IF"`
 
56
 
 
57
# Calculate bandwidth cost
 
58
tx_gb=`echo "$ifconfig_out" | grep "TX bytes:" | sed "s/^.*TX bytes://" | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }'`
 
59
rx_gb=`echo "$ifconfig_out" | grep "RX bytes:" | sed "s/^.*RX bytes://" | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }'`
 
60
network_cost=`echo "$tx_gb" "$TX_RATE" "$rx_gb" "$RX_RATE" | awk '{printf "%f %f", $1*$2, $3*$4}' | awk '{printf "%f", $1 + $2}'`
 
61
 
 
62
# Calculate uptime cost
 
63
# BUG: This will only calculate uptime since boot!
 
64
#      Some additional input will be required to account for reboots!!!
 
65
hours=`awk '{printf "%f", 1 + $1 / 60 / 60 }' /proc/uptime | sed 's/\..*$//' `
 
66
uptime_cost=`echo "$hours" | awk "{printf \"%f\", "$CPU_RATE" * $hours}"`
 
67
total_cost=`echo "$network_cost" "$uptime_cost" | awk '{printf "%.2f", $1 + $2}'`
 
68
 
 
69
if [ "$DETAIL" = "1" ]; then
 
70
        echo "================================================"
 
71
        echo "Estimated cost in Amazon's EC2 since last reboot"
 
72
        echo "================================================"
 
73
        echo "  Network sent:  $tx_gb GB   @ \$$RX_RATE/GB"
 
74
        echo "  Network recv:  $rx_gb GB   @ \$$TX_RATE/GB"
 
75
        echo "  Network cost:  \$$network_cost"
 
76
        echo "------------------------------------------------"
 
77
        echo "  Uptime:        $hours hr  @ \$$CPU_RATE/hr"
 
78
        echo "  Uptime cost:   \$$uptime_cost"
 
79
        echo "------------------------------------------------"
 
80
        echo "Total cost:      ~\$$total_cost"
 
81
        echo "================================================"
 
82
        exit 0
 
83
fi
 
84
 
 
85
printf "\005{= KG}~\$\005{-}\005{=b KG}%s\005{-} " $total_cost