05-08-2024
This commit is contained in:
138
ovh_api.sh
Executable file
138
ovh_api.sh
Executable file
@@ -0,0 +1,138 @@
|
||||
#!/bin/bash
|
||||
|
||||
source ovh_secrets.txt
|
||||
|
||||
HTTP_QUERY="https://api.ovh.com/1.0/domain"
|
||||
TIME=$(curl -s https://api.ovh.com/1.0/auth/time)
|
||||
|
||||
ZONE_FILE="zone.photos-nas.ovh"
|
||||
ZONE="photos-nas.ovh"
|
||||
|
||||
# zone export
|
||||
|
||||
export_zone() {
|
||||
HTTP_METHOD="GET"
|
||||
HTTP_BODY=""
|
||||
HTTP_QUERY="https://eu.api.ovh.com/v1/domain/zone/$ZONE/export"
|
||||
|
||||
CLEAR_SIGN="$OVH_APP_SECRET+$OVH_CONSUMER_KEY+$HTTP_METHOD+$HTTP_QUERY+$HTTP_BODY+$TIME"
|
||||
SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 | sed -e 's/^.* //')
|
||||
|
||||
curl --silent -X $HTTP_METHOD -H "Content-Type:application/json;charset=utf-8" -H "X-Ovh-Application:$OVH_APP_KEY" -H "X-Ovh-Timestamp:$TIME" -H "X-Ovh-Signature:$SIG" -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY" --data "$HTTP_BODY" $HTTP_QUERY | sed 's/\\n/\n/g' | sed 's/\"//g' | grep 'CNAME'> $ZONE_FILE
|
||||
#curl --silent -X $HTTP_METHOD -H "Content-Type:application/json;charset=utf-8" -H "X-Ovh-Application:$OVH_APP_KEY" -H "X-Ovh-Timestamp:$TIME" -H "X-Ovh-Signature:$SIG" -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY" --data "$HTTP_BODY" $HTTP_QUERY | sed 's/\\n/\n/g' | grep 'CNAME'
|
||||
# |sed 's/,//g' |sed 's/\\n/\'$'\n''/g'
|
||||
# | sed 's/\\n/\n/g'
|
||||
echo $?
|
||||
if [ $? == 0 ]; then
|
||||
echo "$ZONE_FILE have been created !"
|
||||
fi
|
||||
}
|
||||
|
||||
export_zone
|
||||
cat $ZONE_FILE
|
||||
|
||||
refresh() {
|
||||
HTTP_BODY=""
|
||||
HTTP_QUERY="https://eu.api.ovh.com/v1/domain/zone/$ZONE/refresh"
|
||||
|
||||
CLEAR_SIGN="$OVH_APP_SECRET+$OVH_CONSUMER_KEY+$HTTP_METHOD+$HTTP_QUERY+$HTTP_BODY+$TIME"
|
||||
SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 | sed -e 's/^.* //')
|
||||
|
||||
curl --silent -X $HTTP_METHOD -H "Content-Type:application/json;charset=utf-8" -H "X-Ovh-Application:$OVH_APP_KEY" -H "X-Ovh-Timestamp:$TIME" -H "X-Ovh-Signature:$SIG" -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY" --data "$HTTP_BODY" $HTTP_QUERY
|
||||
echo $? # 0
|
||||
if [ $? == 0 ]; then
|
||||
echo "Zone $ZONE have been successfully refresh !"
|
||||
else
|
||||
echo "Error while refreshing zone $ZONE !"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# ajout d'un cname
|
||||
|
||||
add_cname() {
|
||||
HTTP_METHOD="POST"
|
||||
HTTP_BODY="{\"fieldType\": \"CNAME\",\"subDomain\": \"$1\",\"target\": \"photos-nas.ovh.\",\"ttl\": 0}"
|
||||
HTTP_QUERY="https://eu.api.ovh.com/v1/domain/zone/$ZONE/record"
|
||||
|
||||
CLEAR_SIGN="$OVH_APP_SECRET+$OVH_CONSUMER_KEY+$HTTP_METHOD+$HTTP_QUERY+$HTTP_BODY+$TIME"
|
||||
SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 | sed -e 's/^.* //')
|
||||
|
||||
curl --silent -X $HTTP_METHOD -H "Content-Type:application/json;charset=utf-8" -H "X-Ovh-Application:$OVH_APP_KEY" -H "X-Ovh-Timestamp:$TIME" -H "X-Ovh-Signature:$SIG" -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY" --data "$HTTP_BODY" $HTTP_QUERY
|
||||
echo $? # null
|
||||
if [ $? == 0 ]; then
|
||||
echo "CNAME $1 have been successfully added !"
|
||||
else
|
||||
echo "Error adding CNAME $1 !"
|
||||
fi
|
||||
|
||||
HTTP_BODY=""
|
||||
HTTP_QUERY="https://eu.api.ovh.com/v1/domain/zone/$ZONE/refresh"
|
||||
|
||||
CLEAR_SIGN="$OVH_APP_SECRET+$OVH_CONSUMER_KEY+$HTTP_METHOD+$HTTP_QUERY+$HTTP_BODY+$TIME"
|
||||
SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 | sed -e 's/^.* //')
|
||||
|
||||
curl --silent -X $HTTP_METHOD -H "Content-Type:application/json;charset=utf-8" -H "X-Ovh-Application:$OVH_APP_KEY" -H "X-Ovh-Timestamp:$TIME" -H "X-Ovh-Signature:$SIG" -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY" --data "$HTTP_BODY" $HTTP_QUERY
|
||||
echo $? # 0
|
||||
if [ $? == 0 ]; then
|
||||
echo "Zone $ZONE have been successfully refresh !"
|
||||
else
|
||||
echo "Error while refreshing zone $ZONE !"
|
||||
fi
|
||||
}
|
||||
|
||||
#add_cname "example_cname"
|
||||
|
||||
|
||||
remove_cname() {
|
||||
record=""
|
||||
|
||||
HTTP_METHOD="GET"
|
||||
HTTP_BODY=""
|
||||
HTTP_QUERY="https://eu.api.ovh.com/v1/domain/zone/$ZONE/record?fieldType=CNAME&subDomain=$1"
|
||||
|
||||
CLEAR_SIGN="$OVH_APP_SECRET+$OVH_CONSUMER_KEY+$HTTP_METHOD+$HTTP_QUERY+$HTTP_BODY+$TIME"
|
||||
SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 | sed -e 's/^.* //')
|
||||
|
||||
record=$(curl --silent -X $HTTP_METHOD -H "Content-Type:application/json;charset=utf-8" -H "X-Ovh-Application:$OVH_APP_KEY" -H "X-Ovh-Timestamp:$TIME" -H "X-Ovh-Signature:$SIG" -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY" --data "$HTTP_BODY" $HTTP_QUERY | sed 's/.//;s/.$//')
|
||||
#echo $? # 0
|
||||
if [ $? == 0 ] && [ -n "$record" ]; then
|
||||
echo "Record number for CNAME $1 is $record !"
|
||||
|
||||
HTTP_METHOD="DELETE"
|
||||
HTTP_BODY=""
|
||||
HTTP_QUERY="https://eu.api.ovh.com/v1/domain/zone/$ZONE/record/$record"
|
||||
|
||||
CLEAR_SIGN="$OVH_APP_SECRET+$OVH_CONSUMER_KEY+$HTTP_METHOD+$HTTP_QUERY+$HTTP_BODY+$TIME"
|
||||
SIG='$1$'$(echo -n $CLEAR_SIGN | openssl dgst -sha1 | sed -e 's/^.* //')
|
||||
|
||||
curl --silent -X $HTTP_METHOD -H "Content-Type:application/json;charset=utf-8" -H "X-Ovh-Application:$OVH_APP_KEY" -H "X-Ovh-Timestamp:$TIME" -H "X-Ovh-Signature:$SIG" -H "X-Ovh-Consumer:$OVH_CONSUMER_KEY" --data "$HTTP_BODY" $HTTP_QUERY
|
||||
#echo $? # 0
|
||||
if [ $? == 0 ]; then
|
||||
echo "CNAME $1 have been successfully deleted !"
|
||||
else
|
||||
echo "Error while deleting CNAME $1 !"
|
||||
fi
|
||||
|
||||
else
|
||||
echo "No record number found for CNAME $1 !"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
remove_cname "kuma"
|
||||
|
||||
|
||||
#curl -X POST "https://eu.api.ovh.com/v1/domain/zone/photos-nas.ovh/record" \
|
||||
# -H "accept: application/json"\
|
||||
# -H "authorization: Bearer eyJhbGciOiJFZERTQSIsImtpZCI6IkVGNThFMkUxMTFBODNCREFEMDE4OUUzMzZERTk3MDhFNjRDMDA4MDEiLCJraW5kIjoib2F1dGgyIiwidHlwIjoiSldUIn0.eyJBY2Nlc3NUb2tlbiI6ImY4MGU5NmQwZmFiZmM3ZWY0MmMzZjZjNjcxNjZiOWUzNWQwMDc3NTJiOTFhNGQ0NDQyNmY3NTM1MzhiM2M5N2EiLCJpYXQiOjE3MjIyNTk0NzF9.C4MFvrgfF53n87q3h1xny7NBYAOozwzA5t8ty9TqNprMTfWz0Fx5JwvFaCVi8jzDvjzwIYd4MLNm-WqTfLfsAw"\
|
||||
# -H "content-type: application/json" \
|
||||
# -d '{"fieldType":"CNAME","subDomain":"api-test","target":"photos-nas.ovh.","ttl":0}' \
|
||||
|
||||
|
||||
# {"fieldType": "CNAME","subDomain": "api-test","target": "photos-nas.ovh.","ttl": 0}
|
||||
|
||||
# refresh
|
||||
|
||||
# curl -X POST "https://eu.api.ovh.com/v1/domain/zone/photos-nas.ovh/refresh" \
|
||||
# -H "authorization: Bearer eyJhbGciOiJFZERTQSIsImtpZCI6IkVGNThFMkUxMTFBODNCREFEMDE4OUUzMzZERTk3MDhFNjRDMDA4MDEiLCJraW5kIjoib2F1dGgyIiwidHlwIjoiSldUIn0.eyJBY2Nlc3NUb2tlbiI6ImY4MGU5NmQwZmFiZmM3ZWY0MmMzZjZjNjcxNjZiOWUzNWQwMDc3NTJiOTFhNGQ0NDQyNmY3NTM1MzhiM2M5N2EiLCJpYXQiOjE3MjIyNTk0NzF9.C4MFvrgfF53n87q3h1xny7NBYAOozwzA5t8ty9TqNprMTfWz0Fx5JwvFaCVi8jzDvjzwIYd4MLNm-WqTfLfsAw"
|
||||
42
update_container.sh
Executable file
42
update_container.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# Our function to update containers based on their base image
|
||||
update_container() {
|
||||
local image=$1
|
||||
docker pull $image
|
||||
local updated_containers=0
|
||||
|
||||
# Loop through all running containers
|
||||
for container in $(docker ps --format "{{.Names}}"); do
|
||||
local container_image=$(docker inspect --format '{{.Config.Image}}' "$container")
|
||||
|
||||
# We check if the current container's image matches the updated image
|
||||
if [[ "$container_image" == "$image" ]]; then
|
||||
local latest=$(docker inspect --format "{{.Id}}" $image)
|
||||
local running=$(docker inspect --format "{{.Image}}" $container)
|
||||
|
||||
if [[ "$running" != "$latest" ]]; then
|
||||
echo "Upgrading $container"
|
||||
#docker rm -f $container
|
||||
# docker run --name $container $image
|
||||
((updated_containers++))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ $updated_containers -eq 0 ]]; then
|
||||
echo "No containers updated for $image"
|
||||
else
|
||||
echo "$updated_containers container(s) updated for $image"
|
||||
fi
|
||||
}
|
||||
|
||||
# Our main script starts here
|
||||
# Check for updates to all images used by running containers
|
||||
for image in $(docker ps --format '{{.Image}}' | sort | uniq); do
|
||||
echo "Checking updates for $image"
|
||||
update_container $image
|
||||
done
|
||||
|
||||
echo "Container update check complete."
|
||||
76
wget-url-check.sh
Executable file
76
wget-url-check.sh
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
italic="\033[3m"
|
||||
underline="\033[4m"
|
||||
ita_under="\033[3;4m"
|
||||
bgd="\033[1;4;31m"
|
||||
red="\033[1;31m"
|
||||
bold="\033[1m"
|
||||
bold_ita="\033[1;3m"
|
||||
box="\033[1;41m"
|
||||
redbold="\033[1;31m"
|
||||
redbox="\033[1;41m"
|
||||
green="\033[0;32m"
|
||||
greenbold="\033[1;32m"
|
||||
reset="\033[0m"
|
||||
|
||||
: << 'COMMENTS'
|
||||
echo "toto"
|
||||
COMMENTS
|
||||
|
||||
cat < /dev/null > /dev/tcp/1.1.1.1/53
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo -e "\n${red}No Internet connection !${reset}"
|
||||
echo -e "Exit !"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#urls=("https://clicclac.info" "https://clicclac.info/wordpress" "https://sur-le-sentier.fr" "https://maboiteverte.fr"
|
||||
# "https://ds923.photos-nas.ovh" "https://portainer.photos-nas.ovh/" "https://dockge.photos-nas.ovh/" "https://kuma.photos-nas.ovh/")
|
||||
urls=()
|
||||
|
||||
while read -r line
|
||||
do
|
||||
urls+=("$line")
|
||||
done < urls_list.txt
|
||||
|
||||
check() {
|
||||
website=$(echo "$1" | awk -F "\/\/" '{print $2}')
|
||||
|
||||
# https://developer.mozilla.org/fr/docs/Web/HTTP/Status
|
||||
|
||||
if wget --no-verbose --tries=1 --spider "$1" 2>&1 | grep -w "200\|301" ; then
|
||||
#echo -e "${greenbold}$1 is up${reset}\n"
|
||||
echo -e "${greenbold}$website is up${reset}\n"
|
||||
else
|
||||
echo -e "${redbold}$1 is down${reset}\n"
|
||||
fi
|
||||
}
|
||||
|
||||
check2() {
|
||||
website=$(echo "$1" | awk -F "\/\/" '{print $2}')
|
||||
response=$(curl --write-out '%{http_code}' --silent --output /dev/null "$1")
|
||||
|
||||
if [ $(grep -w "200\|301\|302\|303" <<< "$response") ];then
|
||||
echo -e "${greenbold}$website is up${reset} ($response)\n"
|
||||
else
|
||||
echo -e "${redbold}$1 is down${reset} ($response)\n"
|
||||
fi
|
||||
}
|
||||
|
||||
info_cn() {
|
||||
cn=$(echo | openssl s_client -connect $1 2>/dev/null | openssl x509 -noout -subject -dates -issuer)
|
||||
}
|
||||
|
||||
: << 'COMMENTS2'
|
||||
COMMENTS2
|
||||
|
||||
for url in "${!urls[@]}"
|
||||
do
|
||||
#check "${urls[$url]}"
|
||||
check2 "${urls[$url]}"
|
||||
|
||||
done
|
||||
|
||||
|
||||
# curl --write-out "%{json}" https://nextcloud.photos-nas.ovh | jq
|
||||
Reference in New Issue
Block a user