K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / lib / byobu /
server ip : 104.21.89.46

your ip : 172.70.80.63

H O M E


Filename/usr/lib/byobu/rcs_cost
Size3.55 kb
Permissionrwxr-xr-x
Ownerroot : root
Create time27-Apr-2025 09:55
Last modified31-Mar-2014 19:24
Last accessed06-Jul-2025 09:52
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
#!/bin/sh -e
#
# rcs_cost: approximate Rackspace Cloud Server cost (USD) of the current instance
#
# Copyright (C) 2009-2010 Jon Bernard
# Copyright (C) 2011-2014 Dustin Kirkland
#
# Author(s): Jon Bernard <[email protected]>
# Dustin Kirkland <[email protected]>
#
# Derived from byobu's ec2_cost written by Dustin Kirkland, see
# Byobu's project page: http://byobu.co for more information
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.

__rcs_cost_detail() {
DETAIL=1
__rcs_cost
}

__rcs_cost() {
# Approximate Instance Cost Basis
# Memory US
# 256MB $0.015/h
# 512MB $0.030/h
# 1024MB $0.060/h
# 2048MB $0.120/h
# 4096MB $0.240/h
# 8192MB $0.480/h
# 15872MB $0.960/h

# Instance memory
memory=`grep "^MemTotal:" /proc/meminfo | awk '{print $2}'`

# Round memory down to the nearest multiple of 64MB
memory=$((${memory} - (${memory} % (64 * 1024))))

# Apply the going rate
INCREMENTS="256 512 1024 2048 4096 8192 16384 32768 65536"
for X in ${INCREMENTS}; do
test "$((${X} * 1024 + 65536))" -ge ${memory} && break
done
MEMORY_RATE=`printf "%s" "$X" | awk '{printf "%f", $1 / 256 * 15 / 1000}'`

# Data Transfer Cost Basis
# Incoming $0.08/GB
# Outgoing $0.22/GB
RX_RATE="0.08"
TX_RATE="0.22"

# Auto detect network interface
[ -r "/proc/net/route" ] || return
IF=$(tail -n1 /proc/net/route | awk '{print $1}')

ifconfig_out=`LC_ALL=C /sbin/ifconfig "$IF"`

# Calculate bandwidth cost
tx_gb=${ifconfig_out#*RX bytes:}
tx_gb=$(printf "%s" ${tx_gb%% *} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }')
rx_gb=${ifconfig_out#*TX bytes:}
rx_gb=$(printf "%s" ${rx_gb%% *} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }')
network_cost=`printf "%s" "$tx_gb" "$TX_RATE" "$rx_gb" "$RX_RATE" | awk '{printf "%f %f", $1*$2, $3*$4}' | awk '{printf "%f", $1 + $2}'`

# Calculate uptime cost
hours=$(((`date +%s` - `stat --printf %Z /etc/hostname`) / 60 / 60 + 1))
uptime_cost=`printf "%s" "$hours" | awk "{printf \"%f\", "$MEMORY_RATE" * $hours}"`
total_cost=`printf "%s %s" "$network_cost" "$uptime_cost" | awk '{printf "%.2f", $1 + $2}'`

if [ "$DETAIL" = "1" ]; then
echo "=========================================================="
echo "Estimated cost in Rackspace Cloud Server since last reboot"
echo "=========================================================="
echo " Network sent: $tx_gb GB @ \$$RX_RATE/GB"
echo " Network recv: $rx_gb GB @ \$$TX_RATE/GB"
echo " Network cost: \$$network_cost"
echo "----------------------------------------------------------"
echo " Uptime: $hours hr @ \$$MEMORY_RATE/hr"
echo " Uptime cost: \$$uptime_cost"
echo "----------------------------------------------------------"
echo "Total cost: ~\$$total_cost"
echo "=========================================================="
return
fi

[ -n "$total_cost" ] || return
color K G; printf "R\$%s"; color -; color b K G; printf "%s" "$total_cost"; color --
}

# vi: syntax=sh ts=4 noexpandtab