GleSYS API kan användas till mycket – bland annat till att uppgradera minnet på en virtuell server. Nedan visar vi hur du kan skapa skript som kontrollerar hur mycket minne som är använt på servern. Vid 90% användning uppgraderas minnet till 2048 MB. Om detta läggs upp som ett cronjob får du en automatisk uppgradering av minne på din server om minnet skulle slå i taket.
Skripten körs lämpligen från crontab varje minut (anpassa skripten efter behov). Med lite utökning är det enkelt att få till uppgradering samt nedgradering i flera steg, skicka mail till sysadmin vid förändring, uppgradering av antal CPU-kärnor osv.
Om du ändrar dessa skript eller skriver helt andra lösningar, skicka gärna in de till oss så att vi kan visa upp dem. Fina skript belönas med fina rabatter!
Mer information om GleSYS API finns på Github.
#!/bin/bash
TOTAL=`cat /proc/meminfo |grep "MemTotal" |awk {'print $2'}`
FREE=`cat /proc/meminfo |grep -E "MemFree|Cached"| awk '{s+=$2} END {print s}'`
USAGE=$((100-FREE*100/TOTAL));
if [ $USAGE -gt 90 ]; then
/usr/bin/curl -X POST -d serverid=vz123456&memorysize=2048 -k --basic -u cl12345:API-KEY https://api.glesys.com/server/edit/
fi
nano /root/adjust-memory.rb
require "net/http"
require "net/https"
require "uri"
def change_memory(memory, username, api_key, server_id)
params = { serverid: server_id, memorysize: memory }
uri = URI.parse("https://api.glesys.com/server/edit")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.request_uri)
request.basic_auth(username, api_key)
request.set_form_data(params)
response = http.request(request)
if response.code == "200"
puts "Memory changed to #{memory}"
end
end
def memory_usage
total_memory = `cat /proc/meminfo |grep -E "MemTotal"|awk {'print $2'}`.strip.to_f
free_memory = `cat /proc/meminfo |grep -E "MemFree|Cached"| awk '{s+=$2} END {print s}'`.strip.to_f
1 - (free_memory / total_memory)
end
if ARGV.size < 3
abort("required arguments: username apikey serverid")
end
username = ARGV[0]
api_key = ARGV[1]
server_id =ARGV[2]
memory_low=512
memory_high=1024
if memory_usage > 0.9
puts "Increasing Memory"
change_memory(memory_high, username, api_key, server_id)
elsif memory_usage < 0.2
puts "Decreasing Memory"
change_memory(memory_low, username, api_key, server_id)
end
chmod +x /root/adjust-memory.rb
crontab -e
* * * * * /root/adjust-memory.rb cl12345 API-KEY vz12345
Kontakta oss gärna för mer information. Vi hjälper dig att komma fram till den bästa lösningen för dina behov.