add old scripts
This commit is contained in:
parent
5db0aab718
commit
9fd9d1d5d6
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
if (! scalar @ARGV ) {
|
||||
print "Usage: htpasswd-b passwordfile user password\n";
|
||||
print "(this program automatically creates the pw file if needed.)\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
@saltsource = ('a'..'z', 'A'..'Z', '0'..'9','.','/');
|
||||
$randum_num = int(rand(scalar @saltsource));
|
||||
$salt = $saltsource[$randum_num];
|
||||
$randum_num = int(rand(scalar @saltsource));
|
||||
$salt .= $saltsource[$randum_num];
|
||||
|
||||
print "salt: $salt";
|
||||
|
||||
$outf=$ARGV[0];
|
||||
$user=$ARGV[1];
|
||||
$passwd=$ARGV[2];
|
||||
|
||||
if ($user && $passwd) {
|
||||
$encrypted = crypt($passwd, "$salt");
|
||||
|
||||
if (-f $outf) {
|
||||
open(OUT, ">>$outf") || die "htpasswd-b error: $!\n";
|
||||
} else {
|
||||
open(OUT, ">$outf") || die "htpasswd-b error: $!\n";
|
||||
}
|
||||
print OUT "$user:$encrypted\n";
|
||||
close(OUT);
|
||||
|
||||
exit 0;
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
find $1 -type f -printf '%s %p\n'| sort -nr | head -30
|
|
@ -0,0 +1,77 @@
|
|||
#!/bin/bash
|
||||
# script to close a LUKS encrypted container file (use open_container.sh to open)
|
||||
# -must be run with root privileges
|
||||
# -start it without any or with 3 arguments: ./open_container.sh /path/to/container mapper_filename /path/to/mount_point
|
||||
# written by Christian Ulrich (based on a script from http://wiki.ubuntuusers.de/LUKS/Containerdatei)
|
||||
# version: 0.2
|
||||
# date: 2011/09/13
|
||||
|
||||
run=1
|
||||
choice=
|
||||
|
||||
if test $# -ne 0; then
|
||||
if test $# -ne 3; then
|
||||
echo "Aufruf des Skripts entweder ohne Argumante oder: ./close_container /Pfad/zum/Container mapper_filename /Pfad/zum/Mountpoint"
|
||||
exit 1
|
||||
else
|
||||
SAFE=$1
|
||||
CRYPTNAME=$2
|
||||
MNT=$3
|
||||
fi
|
||||
else
|
||||
SAFE=/home/christian/privat/encrypted
|
||||
CRYPTNAME=container
|
||||
MNT=/home/christian/mnt
|
||||
fi
|
||||
LOOPDEV=`losetup -a | grep "$SAFE" | sed "s/: .*//"`
|
||||
|
||||
echo "close_container.sh v0.2 (by Christian Ulrich)
|
||||
---------------------------------------------"
|
||||
|
||||
while [ $run -ne 0 ]; do
|
||||
echo
|
||||
echo "Bitte wählen:"
|
||||
echo "-------------"
|
||||
echo "[1] Pfad zum Container ändern ($SAFE)"
|
||||
echo "[2] Dateiname in /dev/mapper/ ändern ($CRYPTNAME)"
|
||||
echo "[3] Mount-Pfad ändern ($MNT)"
|
||||
echo "---------------------------------------------------"
|
||||
echo "[c] Container schließen"
|
||||
echo "[q] Script beenden"
|
||||
read choice
|
||||
case $choice in
|
||||
1 ) echo "Neuen Pfad eingeben oder <return> um abzubrechen (aktueller Pfad: $SAFE):"
|
||||
SAFE_tmp=
|
||||
read SAFE_tmp
|
||||
if [[ -n "$SAFE_tmp" ]]; then #if only <return> was pressed
|
||||
SAFE=$SAFE_tmp
|
||||
fi
|
||||
;;
|
||||
2 ) echo "Neuen Dateinamen eingeben oder <return> um abzubrechen (aktueller Dateiname: $CRYPTNAME):"
|
||||
CRYPTNAME_tmp=
|
||||
read CRYPTNAME_tmp
|
||||
if [[ -n "$CRYPTNAME_tmp" ]]; then
|
||||
CRYPTNAME=$CRYPTNAME_tmp
|
||||
fi
|
||||
;;
|
||||
3 ) echo "Neuen Mount-Pfad eingeben oder <return> um abzubrechen (aktueller Pfad: $MNT):"
|
||||
MNT_tmp=
|
||||
read MNT_tmp
|
||||
if [[ -n "$MNT_tmp" ]]; then
|
||||
MNT=$MNT_tmp
|
||||
fi
|
||||
;;
|
||||
'c' ) run=0
|
||||
if [ "`losetup -a | grep -c "$SAFE"`" != "1" ]; then
|
||||
echo "nicht eingehängt"
|
||||
exit
|
||||
fi
|
||||
umount $MNT
|
||||
cryptsetup luksClose $CRYPTNAME
|
||||
losetup -d $LOOPDEV
|
||||
echo "Container geschlossen"
|
||||
;;
|
||||
'q' ) run=0;;
|
||||
* ) echo "Falsche Eingabe!";;
|
||||
esac
|
||||
done
|
|
@ -0,0 +1,89 @@
|
|||
#!/bin/bash
|
||||
# script to open a LUKS encrypted container file (use close_container.sh to close)
|
||||
# -must be run with root privileges
|
||||
# -start it without any or with 2 arguments: ./open_container.sh /path/to/container /path/to/mount_point
|
||||
# written by Christian Ulrich (based on a script from http://wiki.ubuntuusers.de/LUKS/Containerdatei)
|
||||
# version: 0.2
|
||||
# date: 2011/09/13
|
||||
|
||||
run=1
|
||||
choice=
|
||||
CRYPTNAME=container
|
||||
FS=ext4
|
||||
LOOPDEV=`losetup -f`
|
||||
|
||||
if test $# -ne 0; then
|
||||
if test $# -ne 2; then
|
||||
echo "Aufruf des Skripts entweder ohne Argumante oder: ./open_container /Pfad/zum/Container /Pfad/zum/Mountpoint"
|
||||
exit 1
|
||||
else
|
||||
SAFE=$1
|
||||
MNT=$2
|
||||
fi
|
||||
else
|
||||
SAFE=/home/christian/privat/encrypted
|
||||
MNT=/home/christian/mnt
|
||||
fi
|
||||
|
||||
echo "open_container.sh v0.2 (by Christian Ulrich)
|
||||
---------------------------------------------"
|
||||
|
||||
while [ $run -ne 0 ]; do
|
||||
echo
|
||||
echo "Bitte wählen:"
|
||||
echo "-------------"
|
||||
echo "[1] Pfad zum Container ändern ($SAFE)"
|
||||
echo "[2] Dateiname in /dev/mapper/ ändern ($CRYPTNAME)"
|
||||
echo "[3] Mount-Pfad ändern ($MNT)"
|
||||
echo "[4] Dateisystem ändern ($FS)"
|
||||
echo "---------------------------------------------------"
|
||||
echo "[o] Container öffnen"
|
||||
echo "[q] Script beenden"
|
||||
read choice
|
||||
case $choice in
|
||||
1 ) echo "Neuen Pfad eingeben oder <return> um abzubrechen (aktueller Pfad: $SAFE):"
|
||||
SAFE_tmp=
|
||||
read SAFE_tmp
|
||||
if [[ -n "$SAFE_tmp" ]]; then #if only <return> was pressed
|
||||
SAFE=$SAFE_tmp
|
||||
fi
|
||||
;;
|
||||
2 ) echo "Neuen Dateinamen eingeben oder <return> um abzubrechen (aktueller Dateiname: $CRYPTNAME):"
|
||||
CRYPTNAME_tmp=
|
||||
read CRYPTNAME_tmp
|
||||
if [[ -n "$CRYPTNAME_tmp" ]]; then
|
||||
CRYPTNAME=$CRYPTNAME_tmp
|
||||
fi
|
||||
;;
|
||||
3 ) echo "Neuen Mount-Pfad eingeben oder <return> um abzubrechen (aktueller Pfad: $MNT):"
|
||||
MNT_tmp=
|
||||
read MNT_tmp
|
||||
if [[ -n "$MNT_tmp" ]]; then
|
||||
MNT=$MNT_tmp
|
||||
fi
|
||||
;;
|
||||
4 ) echo "Neues Dateisystem eingeben oder <return> um abzubrechen (aktuelles Dateisystem: $FS)"
|
||||
FS_tmp=
|
||||
read FS_tmp
|
||||
if [[ -n "$FS_tmp" ]]; then
|
||||
FS=$FS_tmp
|
||||
fi
|
||||
;;
|
||||
'o' ) run=0
|
||||
echo "Container öffnen"
|
||||
if [ "`losetup -a | grep -c "$SAFE"`" != "0" ]; then
|
||||
echo "bereits eingehängt"
|
||||
exit
|
||||
fi
|
||||
losetup $LOOPDEV $SAFE
|
||||
cryptsetup luksOpen $LOOPDEV $CRYPTNAME
|
||||
mount -t $FS /dev/mapper/$CRYPTNAME $MNT
|
||||
echo "Verschlüsseltes Dateisystem ist jetzt unter $MNT gemountet und kann mit dem Skript close_container.sh wieder unmountet werden. Aufruf wie folgt:"
|
||||
echo "######################## cut here ###########################"
|
||||
echo "sudo ./close_container.sh $SAFE $CRYPTNAME $MNT"
|
||||
echo "######################## cut here ###########################"
|
||||
;;
|
||||
'q' ) run=0;;
|
||||
* ) echo "Falsche Eingabe!";;
|
||||
esac
|
||||
done
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
lsof | awk '$5 == "DEL" { print }'
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
for i in `find /sys/ -name modalias -exec cat {} \;`; do
|
||||
/sbin/modprobe --config /dev/null --show-depends $i ;
|
||||
done | rev | cut -f 1 -d '/' | rev | sort -u
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
find /lib/modules/4.0.5-gentoo/ -type f -iname '*.o' -or -iname '*.ko' | less
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
for i in /var/db/pkg/*/*; do if ! grep gentoo $i/repository >/dev/null; then echo -e "`basename $i`\t`cat $i/repository`"; fi; done
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
while read i ; do
|
||||
[ -n "$(ldd -r "$i" | grep 'libstdc++')" ] && qfile "$i" >> rebuild.packages
|
||||
done < <(find $(echo $PATH | tr ':' ' ') -type f -executable)
|
||||
cut -d ' ' -f1 rebuild.packages | sort -u -o rebuild.packages
|
||||
emerge -1av $(cat rebuild.packages)
|
|
@ -0,0 +1,5 @@
|
|||
#! /bin/sh
|
||||
echo $1 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
|
||||
echo $2 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
|
||||
echo "start_charging_thresh = $(cat /sys/devices/platform/smapi/BAT0/start_charge_thresh)"
|
||||
echo "stop_charging_thresh = $(cat /sys/devices/platform/smapi/BAT0/stop_charge_thresh)"
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
emerge --ask --update --deep --with-bdeps=y --keep-going=y --newuse --jobs world
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
emerge --ask --update --deep --with-bdeps=y --newuse world
|
|
@ -0,0 +1,11 @@
|
|||
virt-install \
|
||||
--memory 7680 \
|
||||
--accelerate \
|
||||
--name christian_vm \
|
||||
--vcpus 6 \
|
||||
--disk size=450,format=raw \
|
||||
--noautoconsole \
|
||||
--graphics vnc,listen=0.0.0.0,port=5900 \
|
||||
--network bridge=br0,model=virtio \
|
||||
--os-variant=debian8 \
|
||||
--cdrom=/var/lib/libvirt/images/grml64-small_2014.11.iso
|
|
@ -0,0 +1,105 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Script to add/delete users or change their passwords for
|
||||
# Dovecot/Postfix using Virtual Users
|
||||
|
||||
USAGE="Usage: $0 OPTION EMAIL [BASEDIR]\n\nOptions:\n\t-a: add user\n\t-d: delete user\n\t-c: change password"
|
||||
|
||||
if [ ! -n "$2" ]
|
||||
then
|
||||
echo -e $USAGE
|
||||
exit 1
|
||||
fi
|
||||
|
||||
USERNAME=$(echo "$2" | cut -f1 -d@);
|
||||
DOMAIN=$(echo "$2" | cut -f2 -d@);
|
||||
MAIL_REGEX="^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"
|
||||
|
||||
if [[ ! "$2" =~ $MAIL_REGEX ]]; then
|
||||
echo "ERROR: Invalid email address."
|
||||
exit 2
|
||||
fi
|
||||
ADDRESS=$2
|
||||
|
||||
if [ -n "$3" ]
|
||||
then
|
||||
if [ ! -d "$3" ]; then
|
||||
echo -e $USAGE
|
||||
echo "ERROR: BASEDIR must be a valid directory!"
|
||||
echo "I would have tried $(postconf | grep ^virtual_mailbox_base | cut -f3 -d' ')"
|
||||
exit 2
|
||||
else
|
||||
BASEDIR="$3"
|
||||
fi
|
||||
else
|
||||
BASEDIR="$(postconf | grep ^virtual_mailbox_base | cut -f3 -d' ')"
|
||||
fi
|
||||
|
||||
VMAILBOX="/etc/postfix/vmailbox"
|
||||
PASSWD="$BASEDIR/$DOMAIN/passwd"
|
||||
SHADOW="$BASEDIR/$DOMAIN/shadow"
|
||||
|
||||
[ -d "$BASEDIR/$DOMAIN" ] || (mkdir "$BASEDIR/$DOMAIN" && chown vmail:vmail "$BASEDIR/$DOMAIN")
|
||||
[ -f "$VMAILBOX" ] || (touch $VMAILBOX && echo "Warning: $VMAILBOX not existent. Creating it.")
|
||||
|
||||
case $(echo $1 | cut -f2 -d-) in
|
||||
# Add user
|
||||
'a')
|
||||
grep_ret=1
|
||||
paths=("$PASSWD" "$SHADOW")
|
||||
for p in $paths; do
|
||||
grep "$USERNAME:" $p > /dev/null 2>&1
|
||||
grep_ret=$(($grep_ret && $?))
|
||||
done
|
||||
grep "$ADDRESS" $VMAILBOX > /dev/null 2>&1
|
||||
if [ 1 -ne $(($grep_ret && $?)) ]; then
|
||||
echo "ERROR: User $ADDRESS already exists."
|
||||
exit 3
|
||||
fi
|
||||
if [ -f $VMAILBOX ]
|
||||
then
|
||||
echo "Adding Postfix user configuration..."
|
||||
echo $ADDRESS $DOMAIN/$USERNAME/ >> $VMAILBOX
|
||||
postmap $VMAILBOX
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Adding Dovecot user configuration..."
|
||||
echo $USERNAME::5000:5000::$BASEDIR/$DOMAIN/$USERNAME >> $PASSWD
|
||||
echo $USERNAME":"$(doveadm pw -s SHA512-CRYPT) >> $SHADOW
|
||||
chown vmail:vmail $PASSWD && chmod 600 $PASSWD
|
||||
chown vmail:vmail $SHADOW && chmod 600 $SHADOW
|
||||
/etc/init.d/postfix reload
|
||||
fi
|
||||
|
||||
fi
|
||||
;;
|
||||
|
||||
# Delete user
|
||||
'd')
|
||||
echo "Deleting user $ADDRESS. Remove user's mail directory? [y/n]: "
|
||||
sed -i "/$ADDRESS.*/d" $VMAILBOX
|
||||
postmap $VMAILBOX
|
||||
sed -i "/$USERNAME.*/d" $PASSWD
|
||||
sed -i "/$USERNAME.*/d" $SHADOW
|
||||
rm -rI "$BASEDIR/$DOMAIN/$USERNAME" > /dev/null 2>&1
|
||||
if [ ! -s $SHADOW ] && [ ! -s $PASSWD ] && [ $(find $BASEDIR/$DOMAIN -maxdepth 0 -type d 2>/dev/null) ]; then
|
||||
echo "Remove empty directory $BASEDIR/$DOMAIN? [y/n]: "
|
||||
rm -rI "$BASEDIR/$DOMAIN" > /dev/null 2>&1
|
||||
fi
|
||||
/etc/init.d/postfix reload
|
||||
;;
|
||||
|
||||
# Change user's password
|
||||
'c')
|
||||
echo "Changing password for $ADDRESS"
|
||||
sed -i "s#$USERNAME:.*#$USERNAME:$(doveadm pw -s SHA512-CRYPT)#" $SHADOW
|
||||
;;
|
||||
|
||||
*)
|
||||
echo -e $USAGE
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,8 @@
|
|||
[Desktop Entry]
|
||||
Name=Remote-Zugriff erlauben
|
||||
Terminal=true
|
||||
Exec=/usr/local/bin/open_door.sh
|
||||
Type=Application
|
||||
Terminal=false
|
||||
#Icon=/path/icon.png
|
||||
Categories=Utility;
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
SSH_HOST=strangeplace.net
|
||||
SSH_PORT=2200
|
||||
SSH_USER=karin
|
||||
gsettings set org.gnome.Vino enabled true
|
||||
gsettings set org.gnome.Vino prompt-enabled false
|
||||
/usr/lib/vino/vino-server 2>/dev/null &
|
||||
vino_pid="$!"
|
||||
#echo $! > /tmp/open_door_vino.pid
|
||||
ssh -C -N -R 5900:localhost:5900 -p $SSH_PORT $SSH_USER@$SSH_HOST &
|
||||
ssh_pid="$!"
|
||||
#echo $! > /tmp/open_door_ssh.pid
|
||||
zenity --info --text "Fernzugriff aktiv!" --ok-label="Beenden"
|
||||
kill $vino_pid
|
||||
kill $ssh_pid
|
||||
gsettings set org.gnome.Vino enabled false
|
||||
gsettings set org.gnome.Vino prompt-enabled true
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
upnpc -s | grep ^ExternalIPAddress | cut -c21-
|
|
@ -0,0 +1,124 @@
|
|||
#! /bin/sh
|
||||
###################################################################################
|
||||
# Choose and enable wifi-interface with uci
|
||||
# Usage: choose_wifi.sh [ssid]
|
||||
# when argument is passed, script tries to activate wifi interface with that ssid
|
||||
# else script tries to activate first match from iwlist scanning results
|
||||
#
|
||||
# author: Christian Ulrich
|
||||
# version: 0.1
|
||||
###################################################################################
|
||||
|
||||
|
||||
# function search_ssid( ssid, number_of_ifaces )
|
||||
#################################################
|
||||
search_ssid(){
|
||||
found=false
|
||||
current=0
|
||||
index_to_return=0
|
||||
while [ $found = false -a $current -lt $2 ]
|
||||
do
|
||||
uci_result=`uci get wireless.@wifi-iface[$current].ssid 2>&1`
|
||||
if [ $uci_result = $1 ]; then
|
||||
index_to_return=`expr $current + 1`
|
||||
found=true
|
||||
fi
|
||||
current=`expr $current + 1` #increment counter
|
||||
done
|
||||
return $index_to_return
|
||||
}
|
||||
|
||||
# Count interfaces in /etc/config/wireless (result in $iface_counter)
|
||||
# and check if any of them is enabled
|
||||
######################################################################
|
||||
uci_result="0"
|
||||
value_exists=true
|
||||
iface_counter=0
|
||||
enabled_iface_exists=false
|
||||
while [ $value_exists = true ]
|
||||
do
|
||||
uci_result=`uci get wireless.@wifi-iface[$iface_counter].ssid 2>&1`
|
||||
if [ $? -eq 0 ]; then
|
||||
#iface_counter=`expr $iface_counter + 1` #increment iface_counter
|
||||
#uci_result=`uci get wireless.@wifi-iface[$iface_counter].disabled 2>/dev/null`
|
||||
if [ `uci get wireless.@wifi-iface[$iface_counter].disabled 2>/dev/null` = 0 ]; then
|
||||
enabled_iface_exists=true
|
||||
fi
|
||||
iface_counter=`expr $iface_counter + 1` #increment iface_counter
|
||||
else
|
||||
value_exists=false
|
||||
fi
|
||||
done
|
||||
|
||||
# Get Wifi interface
|
||||
#####################
|
||||
#wifi_iface=$(cat /proc/net/wireless | grep : )
|
||||
#wifi_iface=$(echo $wifi_iface | cut -c1-$(expr $(expr index "$wifi_iface" :) - 1 ))
|
||||
|
||||
# Check commandline options and start searching
|
||||
################################################
|
||||
if [ $# -eq 0 ]; then
|
||||
if [ $enabled_iface_exists = false ]; then # if no interface is enabled, enable first one
|
||||
uci set wireless.@wifi-iface[0].disabled=0
|
||||
/etc/init.d/network reload
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
#scan_result=`iwlist ${wifi_iface} scanning | grep ESSID`
|
||||
scan_result=`iwlist scanning 2>/dev/null | grep ESSID`
|
||||
if [ $? -eq 1 ]; then
|
||||
sleep 1
|
||||
scan_result=`iwlist scanning 2>/dev/null | grep ESSID`
|
||||
fi
|
||||
#echo ${scan_result[1]}
|
||||
scan_result=`echo $scan_result | tr -d 'ESSID:"'`
|
||||
#scan_result=`echo $scan_result | tr -d '" '`
|
||||
|
||||
index_of_ssid_to_activate=0
|
||||
for j in $scan_result
|
||||
do
|
||||
if [ $index_of_ssid_to_activate -eq 0 ]; then
|
||||
search_ssid $j $iface_counter
|
||||
index_of_ssid_to_activate=$?
|
||||
if [ $index_of_ssid_to_activate -ne 0 ]; then
|
||||
#ssid=$j
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
elif [ $# -eq 1 ]; then
|
||||
index_of_ssid_to_activate=0
|
||||
search_ssid $1 $iface_counter
|
||||
index_of_ssid_to_activate=$?
|
||||
|
||||
else
|
||||
echo "usage: choose_wifi.sh [ssid]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# Evaluate results and enable the right interface with uci
|
||||
###########################################################
|
||||
|
||||
if [ $index_of_ssid_to_activate -eq 0 ]; then
|
||||
echo "Network with SSID ${1} not defined in /etc/config/wireless."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
i=1
|
||||
while [ $i -le $iface_counter ]
|
||||
do
|
||||
if [ $i -eq $index_of_ssid_to_activate ]; then
|
||||
uci set wireless.@wifi-iface[`expr $i - 1`].disabled=0
|
||||
ssid=$(uci get wireless.@wifi-iface[`expr $i - 1`].ssid)
|
||||
else
|
||||
uci set wireless.@wifi-iface[`expr $i - 1`].disabled=1
|
||||
fi
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
|
||||
# Activate interface
|
||||
##########################################
|
||||
echo "Activating wifi-interface ${ssid}..."
|
||||
/etc/init.d/network reload
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/sh
|
||||
|
||||
ttl=300
|
||||
ip=${1}
|
||||
|
||||
second_level_domain="$domain"
|
||||
subdomain="{@}"
|
||||
|
||||
depth=$(echo "$domain" | grep -o "[.]" | wc -l)
|
||||
|
||||
if [ "$depth" -ge 2 ]; then
|
||||
second_level_domain=$(echo "$domain" | cut -s -d '.' -f ${depth}-)
|
||||
subdomain=$(echo "$domain" | cut -s -d '.' -f -$((depth - 1)))
|
||||
fi
|
||||
|
||||
echo "second_level_domain = ${second_level_domain}"
|
||||
echo "subdomain = ${subdomain}"
|
||||
|
||||
curl -fs -o /dev/null -X PUT -H "Content-Type: application/json" \
|
||||
-H "X-Api-Key: ${password}" \
|
||||
-d "{\"rrset_ttl\": ${ttl}, \"rrset_values\": [\"${ip}\"]}" \
|
||||
"https://dns.api.gandi.net/api/v5/domains/${second_level_domain}/records/${subdomain}/A"
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
< /dev/urandom tr -dc _.:=\;A-Z-a-z-0-9 | head -c${1:-32};echo;
|
Loading…
Reference in New Issue