note/tech/get_vps_usage.sh
2025-11-19 10:16:05 +08:00

97 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
# define username and password
# define token and refresh token
USER="maxwellxzy@gmail.com"
PASSWD="sSZSTSWz.xhik8P"
USER_PASSWD="{
\"username\": \"maxwellxzy@gmail.com\",
\"password\": \"sSZSTSWz.xhik8P\"
}"
JSON_TOKEN=$(
curl 'https://vps.hosting/api/login' \
-d username=$USER\
-d password=$PASSWD)
token=`echo $JSON_TOKEN|jq -r '.token'`
refresh_token=`echo $JSON_TOKEN|jq -r '.refresh'`
curl 'https://vps.hosting/api/login' -d username=$USER -d password=$PASSWD
##Set dir
SCRIPT_DIR=$(dirname "$0")
cd "$SCRIPT_DIR"
##########
# Function
# to get token
# 1.read config file; if no config file or no token, getting token;jump to 3;
# 2. judging token is repired;
# if token is repired, get new token and new refresh token;
# if token is not repired, return old token;
# 3. update config file (new token and new refresh token);
# 4. return new token;
#
get_token(){
# Define the get_token function
# Set the config file path
CONFIG_FILE="config.txt"
# Check if the config file exists and has a token value
if [ -f "$CONFIG_FILE" ] && [ -n "$(grep token $CONFIG_FILE)" ]; then
# Read the token value from the config file
TOKEN=$(grep token $CONFIG_FILE | cut -d '=' -f 2)
# Check if the token is expired
if [ "$(date +%s)" -gt "$(grep expiry $CONFIG_FILE | cut -d '=' -f 2)" ]; then
# Use the API to get a new token and refresh token
API_RESPONSE=$(curl -X POST https://example.com/api/token)
# Extract the new token and refresh token from the API response
NEW_TOKEN=$(echo $API_RESPONSE | jq '.token')
REFRESH_TOKEN=$(echo $API_RESPONSE | jq '.refresh_token')
# Write the new token and refresh token to the config file
echo "token=$NEW_TOKEN" > $CONFIG_FILE
echo "refresh_token=$REFRESH_TOKEN" >> $CONFIG_FILE
# Return the new token
echo $NEW_TOKEN
else
# Return the existing token
echo $TOKEN
fi
else
# Use the API to get a new token and refresh token
API_RESPONSE=$(curl -X POST https://example.com/api/token)
# Extract the new token and refresh token from the API response
NEW_TOKEN=$(echo $API_RESPONSE | jq '.token')
REFRESH_TOKEN=$(echo $API_RESPONSE | jq '.refresh_token')
# Write the new token and refresh token to the config file
echo "token=$NEW_TOKEN" > $CONFIG_FILE
echo "refresh_token=$REFRESH_TOKEN" >> $CONFIG_FILE
# Return the new token
echo $NEW_TOKEN
fi
}
tmp_token=`curl -s -X POST "https://vps.hosting/api/login" \
-H "Content-Type: application/json" \
-d "$1"`
}
##########
# Function
# to refresh token
# 1.read config file; if no config file or no refresh token, use function get_token;
# 2. use refresh token to get new token;
# if refresh token is repired, use function get_token; exit;
# 3. update config file;
#
get_refresh_token(){
}
## get services