Skip to content

Instantly share code, notes, and snippets.

@renaudcerrato
Last active December 26, 2021 13:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save renaudcerrato/0e374b0f041356355ee47277c575f802 to your computer and use it in GitHub Desktop.
Save renaudcerrato/0e374b0f041356355ee47277c575f802 to your computer and use it in GitHub Desktop.
POSIX Shell Script to Update ovh dyndns.
#!/bin/sh
error () {
echo "error: $1"
usage
}
usage () {
echo "usage: $0 -u <username> -p <password> -d <domain> -i <seconds> <subdomain>";
exit 1
}
INTERVAL=0
while [ $# -gt 0 ]; do
key="$1"
case $key in
-u|--user)
USERNAME="$2"
shift
shift
;;
-p|--password)
PASSWORD="$2"
shift
shift
;;
-d|--domain)
DOMAIN="$2"
shift
shift
;;
-i|--interval)
INTERVAL="$2"
shift
shift
;;
-h|--help)
usage
;;
*)
SUBDOMAIN="$1"
shift
;;
esac
done
[ -z "${USERNAME}" ] && error "username required"
[ -z "${PASSWORD}" ] && error "password required"
[ -z "${DOMAIN}" ] && error "domain required"
[ -z "${SUBDOMAIN}" ] && error "subdomain required"
[ "$INTERVAL" -eq "$INTERVAL" ] || error "invalid interval $INTERVAL"
while true; do
wget -nv -O - --user "$DOMAIN-$USERNAME" --password "$PASSWORD" "https://www.ovh.com/nic/update?system=dyndns&hostname=${SUBDOMAIN}.$DOMAIN"
[ "$INTERVAL" -eq "0" ] && break
sleep "$INTERVAL"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment