1064 lines
33 KiB
Bash
1064 lines
33 KiB
Bash
###
|
|
### 12. Januar 2026
|
|
###
|
|
|
|
export HISTCONTROL=ignoreboth:erasedups
|
|
export HISTFILESIZE=20000
|
|
export HISTSIZE=5000
|
|
export HISTTIMEFORMAT="%F %T "
|
|
export HISTIGNORE="free*:exit:clear:man*:mc*:history*:set*:export*:alias*:source*:declare*:__*"
|
|
export HOMEDIR=/home/andre
|
|
|
|
alias ll='ls -haltr'
|
|
alias ppm="sudo perl -MCPAN -e 'shell'"
|
|
alias RDPC='RDP 10.101.0.236'
|
|
|
|
alias ssh_h='egrep "^# " .ssh/config'
|
|
alias ßh=ssh
|
|
alias TS='ts "%Y-%m-%d %H:%M:%S"'
|
|
alias clear_history="history -c && history -w && clear"
|
|
alias extip='echo $(curl --connect-timeout 5 -s https://ipinfo.io/ip)'
|
|
alias grep='grep --line-buffered'
|
|
alias egrep='egrep --line-buffered'
|
|
alias sudo='sudo bash --rcfile $HOMEDIR/.bashrc'
|
|
|
|
if [ -x /usr/bin/dircolors ]; then
|
|
test -r $HOMEDIR/.dircolors && eval "$(dircolors -b $HOMEDIR/.dircolors)" || eval "$(dircolors -b)"
|
|
export GREP_COLORS='1;37;41'
|
|
|
|
alias ls='ls --color=auto'
|
|
alias ll='ls -haltr --color=auto'
|
|
|
|
alias grep='grep --line-buffered --color=auto'
|
|
alias grepv='grep --line-buffered -v grep | grep --line-buffered --color=auto'
|
|
|
|
alias egrep='egrep --line-buffered --color=auto'
|
|
alias egrepv='grep --line-buffered -v grep | egrep --line-buffered --color=auto'
|
|
fi
|
|
|
|
export SSHUSER=ageissler
|
|
export SSHPASS=G0ttAmH3rd
|
|
export GPGKEY=13FAA6FC
|
|
|
|
export EDITOR=vi
|
|
# export PERL_MB_OPT="--install_base \"$HOMEDIR/perl5\""
|
|
# export PERL_MM_OPT="INSTALL_BASE=$HOMEDIR/perl5"
|
|
export PERL_MM_USE_DEFAULT=1
|
|
export PATH=$PATH:.:~:/install/:$HOMEDIR/scripts/:$HOMEDIR/bin/:
|
|
export PROMPT_DIRTRIM=10
|
|
|
|
color_prompt=yes
|
|
|
|
# $- Options set for shell
|
|
if echo "$-" | grep i > /dev/null; then
|
|
ip=`extip`
|
|
fi
|
|
|
|
# \n grün username@hostname dflt :blau workingdir dflt \n ip \n RET: grün oder rot je nach ret, ret gelb zeit dflt blau $ dflt
|
|
#PS1='\e[7\e[2A\e[16C $? \e[8 \n${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\r\u@\h\[\033[00m\]:\[\033[01;34m\]\w \[\033[00m\] \n $ip \n RET:\[\033[01;$(($?==0?32:91))m\]$? \[\033[01;33m\]\t\[\033[00m\] \[\033[01;34m\]\$\[\033[00m\] '
|
|
#export PS1="\nTime \e[0;32m\A\e[0m Date \e[0;32m\d\e[0m Rev \e[0;31m$(cd /home/rancid/var/rancid/network/configs ; svn info | grep Revision | awk '{print $2}')\e[0m \n\e[0;33m\u\e[0m@\e[1;32m\h\e[0m:\e[0;34m\w\e[0m \n\$ "
|
|
PSCHR=$(printf "%s '" ' ^ ° ! " $ % / ( ) [ ] { } = ? \ ` # + ~ < > | @ , ; . : - _ *')
|
|
PS1='\n$PSCHR\n${debian_chroot:+($debian_chroot)}\[\033[01;15m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n \[\033[01;33m\]$ip\[\033[00m\]\n \[\033[01;15m\]RET:\[\033[01;$(($?==0?32:91))m\]$? \[\033[01;33m\]\t\[\033[00m\] \[\033[01;34m\]\$\[\033[00m\] '
|
|
|
|
shopt -s histappend
|
|
shopt -s histverify
|
|
shopt -s autocd
|
|
shopt -s cdspell
|
|
shopt -s cmdhist
|
|
shopt -s dotglob
|
|
shopt -s interactive_comments
|
|
shopt -s expand_aliases
|
|
shopt -s extglob
|
|
|
|
cy-ssh() {
|
|
set -euo pipefail
|
|
|
|
if [ $# -lt 1 ]; then
|
|
echo "Usage: $0 <host> [ssh-options...]"
|
|
return 1
|
|
fi
|
|
|
|
HOST="$1"
|
|
shift || true
|
|
|
|
# Defaults
|
|
SSH_HOSTNAME="finance"
|
|
SSH_PROXY=""
|
|
|
|
|
|
|
|
###############################################################################
|
|
# Gemeinsame CyberArk-Auth-Optionen
|
|
###############################################################################
|
|
CYBERARK_USER="ageissler@ageissler@${HOST}"
|
|
CYBERARK_AUTH_OPTS="-o PreferredAuthentications=publickey,keyboard-interactive,password"
|
|
|
|
|
|
###############################################################################
|
|
# Host conlx*
|
|
###############################################################################
|
|
if [[ "$HOST" == conlx* ]]; then
|
|
CYBERARK_USER="ageissler@root@${HOST}"
|
|
fi
|
|
|
|
###############################################################################
|
|
# Host switch-catalyst-* switch-nexus-* switch-fibre-* router-*
|
|
###############################################################################
|
|
if [[ "$HOST" == switch-catalyst-* \
|
|
|| "$HOST" == switch-nexus-* \
|
|
|| "$HOST" == switch-fibre-* \
|
|
|| "$HOST" == router-* ]]; then
|
|
|
|
SSH_HOSTNAME="finance"
|
|
fi
|
|
|
|
###############################################################################
|
|
# Host switch-admin-*
|
|
###############################################################################
|
|
if [[ "$HOST" == switch-admin-* ]]; then
|
|
SSH_HOSTNAME="admin"
|
|
fi
|
|
|
|
###############################################################################
|
|
# Host router-swx-*
|
|
###############################################################################
|
|
if [[ "$HOST" == router-swx-* ]]; then
|
|
SSH_HOSTNAME="admin"
|
|
fi
|
|
|
|
# Prüfe ob Hostname auflösbar ist
|
|
if ! getent hosts "$SSH_HOSTNAME" ; then
|
|
# Versuche alternativen Hostname
|
|
SSH_HOSTNAME="finance.conadm.de"
|
|
if ! getent hosts "$SSH_HOSTNAME"; then
|
|
echo "
|
|
! cy-ssh Fehler: \"finance\" und \"finance.conadm.de\" nicht auflösbar" >&2
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
SSH_USER="$CYBERARK_USER"
|
|
SSH_AUTH_OPTS="$CYBERARK_AUTH_OPTS"
|
|
|
|
###############################################################################
|
|
# SSH-Command bauen
|
|
###############################################################################
|
|
CMD=(ssh)
|
|
|
|
if [ -n "$SSH_USER" ]; then
|
|
CMD+=(-l "$SSH_USER")
|
|
fi
|
|
|
|
CMD+=(-o ForwardX11=no -o ForwardX11Trusted=no)
|
|
CMD+=(-o HostName="$SSH_HOSTNAME")
|
|
|
|
if [ -n "$SSH_PROXY" ]; then
|
|
CMD+=(-o ProxyCommand="$SSH_PROXY")
|
|
fi
|
|
|
|
if [ -n "$SSH_AUTH_OPTS" ]; then
|
|
CMD+=($SSH_AUTH_OPTS)
|
|
fi
|
|
|
|
CMD+=("$SSH_HOSTNAME" "$@")
|
|
|
|
###############################################################################
|
|
# Optional Debug
|
|
###############################################################################
|
|
echo "DEBUG: ${CMD[*]}" >&2
|
|
|
|
"${CMD[@]}"
|
|
local exit_code=$?
|
|
if [ $exit_code -ne 0 ]; then
|
|
echo "
|
|
! cy-ssh Fehler: SSH-Verbindung fehlgeschlagen."
|
|
fi
|
|
return $exit_code
|
|
}
|
|
|
|
RDP() {
|
|
if [ "$1" == "" ]
|
|
then
|
|
echo 'call with RDP <IP>'
|
|
else
|
|
xfreerdp /cert:ignore '/u:conacc\ageissler' '/p:FranziskaR439!' /dynamic-resolution /v:$1 &
|
|
fi
|
|
}
|
|
|
|
prompt_confirm() {
|
|
while true; do
|
|
read -r -n 1 -p "${1:-Weiter?} [j/n]: " REPLY
|
|
case $REPLY in
|
|
[jJ]) echo ; return 0 ;;
|
|
[nN]) echo ; return 1 ;;
|
|
*) printf " \033[31m %s \n\033[0m" "ungültige Eingabe"
|
|
esac
|
|
done
|
|
}
|
|
# prompt_confirm "Overwrite File?" || return 0
|
|
|
|
conv_owi() {
|
|
IMG=$1
|
|
PNG=${IMG}.png
|
|
|
|
exiftool $IMG -Artist=vkue -Copyright=vkue
|
|
|
|
MAXMB=$2
|
|
if [ "$MAXMB" == "" ]
|
|
then
|
|
MAXMB=10
|
|
fi
|
|
|
|
MAXSIZE=$(expr $MAXMB \* 1000 \* 1000)
|
|
if [ -f $PNG ]
|
|
then
|
|
SIZE=$(stat --printf="%s" $PNG)
|
|
fi
|
|
|
|
if [ ! -f $PNG ] || [[ $SIZE -gt $MAXSIZE ]]
|
|
then
|
|
RATE=100
|
|
RDIFF=1
|
|
SIZE=$(expr $MAXSIZE + 1)
|
|
|
|
while [[ $SIZE -gt $MAXSIZE ]]
|
|
do
|
|
RATE=$(expr $RATE - $RDIFF)
|
|
convert -resize ${RATE}% $IMG $PNG
|
|
SIZE=$(stat --printf="%s" $PNG)
|
|
echo RATE $RATE MAX $MAXSIZE SIZE $SIZE
|
|
FAK=$(expr $SIZE \* 100 / $MAXSIZE)
|
|
echo $FAK
|
|
if [[ $FAK -gt 101 ]]; then RDIFF=2; fi
|
|
if [[ $FAK -gt 106 ]]; then RDIFF=4; fi
|
|
if [[ $FAK -gt 111 ]]; then RDIFF=8; fi
|
|
if [[ $FAK -gt 120 ]]; then RDIFF=12; fi
|
|
if [[ $FAK -gt 140 ]]; then RDIFF=17; fi
|
|
if [[ $FAK -gt 160 ]]; then RDIFF=23; fi
|
|
if [[ $FAK -gt 180 ]]; then RDIFF=30; fi
|
|
if [[ $FAK -gt 200 ]]; then RDIFF=38; fi
|
|
if [[ $FAK -gt 220 ]]; then RDIFF=47; fi
|
|
done
|
|
fi
|
|
}
|
|
|
|
arg_h() {
|
|
echo "
|
|
|
|
Aliases"
|
|
cat $HOMEDIR/.bashrc | egrep "alias " | grep -v "#alias" | awk -F'=' '{print $1}' | awk '{print $2}' | sort | uniq | tr "\n" " "
|
|
|
|
echo "
|
|
|
|
Funktionen"
|
|
cat $HOMEDIR/.bashrc | grep "() {" | grep -v cat | tr -d "{" | sort | uniq | tr -d "\n"
|
|
|
|
echo "
|
|
|
|
wetter
|
|
zeigt Wettervorhersagen an
|
|
wi
|
|
startet vi und erstellt zuvor Sicherungsdatei
|
|
|
|
install_ssh_keypair_files
|
|
speichert Schlüsselpaar in $HOMEDIR/.ssh/id_ed25519[.pub]
|
|
|
|
install_ssh_authorized_key [|user] hängt pub-key an [~]|[/home/user]/.ssh/authorized_keys an
|
|
|
|
ssh_env
|
|
1. versucht zunächst key basierte anmeldung einzurichten
|
|
2. copy der bash aufs zielsystem $HOMEDIR/.bash_profile
|
|
3. ssh per key
|
|
4. bei erfolg wird beim anmelden die zuvor angelegte datei ausgeführt und
|
|
durch einen rm am Ende dieses bashrc gelöscht
|
|
|
|
"
|
|
}
|
|
|
|
C_BLACK="\e[38;5;0m"
|
|
C_RED="\e[38;5;1m"
|
|
C_GREEN="\e[38;5;2m"
|
|
C_YELLOW="\e[38;5;3m"
|
|
C_BLUE="\e[38;5;4m"
|
|
C_PURPLE="\e[38;5;5m"
|
|
C_CYAN="\e[38;5;6m"
|
|
C_LIGHTGRAY="\e[38;5;7m"
|
|
C_GRAY="\e[38;5;8m"
|
|
C_PEACH="\e[38;5;9m"
|
|
C_LIGHTGREEN="\e[38;5;10m"
|
|
C_LIGHTYELLOW="\e[38;5;11m"
|
|
C_LIGHTBLUE="\e[38;5;12m"
|
|
C_PINK="\e[38;5;13m"
|
|
C_LIGHTCYAN="\e[38;5;14m"
|
|
C_WHITE="\e[38;5;15m"
|
|
C_NO="\e[0;00m"
|
|
|
|
BG_BLACK="\e[48;5;0m"
|
|
BG_RED="\e[48;5;1m"
|
|
BG_GREEN="\e[48;5;2m"
|
|
BG_YELLOW="\e[48;5;3m"
|
|
BG_BLUE="\e[48;5;4m"
|
|
BG_PURPLE="\e[48;5;5m"
|
|
BG_CYAN="\e[48;5;6m"
|
|
BG_LIGHTGRAY="\e[48;5;7m"
|
|
BG_GRAY="\e[48;5;8m"
|
|
BG_PEACH="\e[48;5;9m"
|
|
BG_LIGHTGREEN="\e[48;5;10m"
|
|
BG_LIGHTYELLOW="\e[48;5;11m"
|
|
BG_LIGHTBLUE="\e[48;5;12m"
|
|
BG_PINK="\e[48;5;13m"
|
|
BG_LIGHTCYAN="\e[48;5;14m"
|
|
BG_WHITE="\e[48;5;15m"
|
|
BG_NO="\e[0;00m"
|
|
|
|
Insta360Pictures() {
|
|
for instafile in `ls | egrep -i "^[0-9a-z]+_[0-9]+\.[0-9]+_[0-9]+\.jp[e]*g"`
|
|
do
|
|
timestamp=$(echo "$instafile" | sed 's/.*_\([0-9]*\)\.jpg/\1/')
|
|
timestamp_sec=$(($timestamp / 1000))
|
|
# Datum formatieren und in EXIF schreiben
|
|
#exiftool -overwrite_original -DateTimeOriginal="$(date -d @${timestamp_sec} '+%Y:%m:%d %H:%M:%S')" $instafile
|
|
mv $instafile I${timestamp}.jpg
|
|
done
|
|
}
|
|
|
|
AddGPSToPicture() {
|
|
J=$1
|
|
# höhe des bildes ermitteln
|
|
H=$(exiftool -csv -ImageHeight $J | grep -v Height | awk -F',' '{print $2}')
|
|
# 2% der Bildhöhe für die Schrift
|
|
FS=$(bc -l <<< "$H*2/100" | awk -F. '{print $1}')
|
|
FS2=$(bc -l <<< "$FS+25" | awk -F. '{print $1}')
|
|
POSITION=$(exiftool -m -p '$GPSPosition' "$J" -c \"%+.5f\")
|
|
if [ -z "$POSITION" ]; then
|
|
echo Position fehlt
|
|
return
|
|
fi
|
|
exiftool -overwrite_original -exif:gpslatituderef=N -exif:gpslongituderef=E "$J"
|
|
convert $J -gravity North -pointsize $FS -font Courier-10-Pitch-Regular -fill white -undercolor black -annotate +0+$FS2 "Position $POSITION" $J;
|
|
}
|
|
|
|
AddGPSToPictures() {
|
|
for file in "$@"; do
|
|
AddGPSToPicture $file
|
|
done
|
|
}
|
|
|
|
AddTimestampToPicture() {
|
|
J=$1
|
|
# höhe des bildes ermitteln
|
|
H=$(exiftool -csv -ImageHeight $J | grep -v Height | awk -F',' '{print $2}')
|
|
|
|
# 2% der Bildhöhe für die Schrift
|
|
FS=$(bc -l <<< "$H*2/100" | awk -F. '{print $1}')
|
|
|
|
# datetime string aus bild holen
|
|
DATETIME=$(exiftool -m -p '$FileModifyDate' "$J" || exiftool -m -p '$ModifyDate' "$J" )
|
|
|
|
DATETIMEORIG=$(exiftool -m -p '$DateTimeOriginal' "$J")
|
|
DATETIMECREATE=$(exiftool -m -p '$CreateDate' "$J")
|
|
|
|
DATETIMEFILEMOD=$(exiftool -m -p '$FileModifyDate' "$J")
|
|
DATETIMEMOD=$(exiftool -m -p '$ModifyDate' "$J")
|
|
|
|
DATETIME=$DATETIMECREATE
|
|
DATE=$(echo $DATETIME | awk -F' ' '{print $1}')
|
|
TIME=$(echo $DATETIME | awk -F' ' '{print $2}')
|
|
|
|
# date weiter aufspalten nach year, month und day
|
|
YEAR=$(echo $DATE | awk -F':' '{print $1}')
|
|
MONTH=$(echo $DATE | awk -F':' '{print $2}')
|
|
DAY=$(echo $DATE | awk -F':' '{print $3}')
|
|
|
|
# month durch monatsnamen ersetzen
|
|
if [ "$MONTH" == "01" ]; then MONTH="Januar"; fi
|
|
if [ "$MONTH" == "02" ]; then MONTH="Februar"; fi
|
|
if [ "$MONTH" == "03" ]; then MONTH="März"; fi
|
|
if [ "$MONTH" == "04" ]; then MONTH="April"; fi
|
|
if [ "$MONTH" == "05" ]; then MONTH="Mai"; fi
|
|
if [ "$MONTH" == "06" ]; then MONTH="Juni"; fi
|
|
if [ "$MONTH" == "07" ]; then MONTH="Juli"; fi
|
|
if [ "$MONTH" == "08" ]; then MONTH="August"; fi
|
|
if [ "$MONTH" == "09" ]; then MONTH="September"; fi
|
|
if [ "$MONTH" == "10" ]; then MONTH="Oktober"; fi
|
|
if [ "$MONTH" == "11" ]; then MONTH="November"; fi
|
|
if [ "$MONTH" == "12" ]; then MONTH="Dezember"; fi
|
|
convert $J -gravity North -pointsize $FS -font Courier-10-Pitch-Regular -fill white -undercolor black -annotate +0+0 "Datum $DAY. $MONTH $YEAR Zeit $TIME" $J;
|
|
}
|
|
|
|
AddTimestampToPictures() {
|
|
for file in "$@"; do
|
|
AddTimestampToPicture $file
|
|
done
|
|
}
|
|
|
|
AddTimeDateToPicturesMenu() {
|
|
LOG="/var/log/AddTimeDateToPicturesMenu.log"
|
|
date > $LOG
|
|
echo $@ >> $LOG
|
|
|
|
D=$(perl -e '$s=$ARGV[0];@a=$s=~/([a-z0-9-._\/ ]*?)([a-z0-9-._]*) +\//i;
|
|
$s=~s/$a[0]//g;
|
|
print "$a[0]";
|
|
' "$@")
|
|
cd "$D"
|
|
P=$(pwd)
|
|
echo "P $P" >> $LOG
|
|
|
|
F=$(perl -e '$s=$ARGV[0];@a=$s=~/([a-z0-9-._\/ ]*?)([a-z0-9-._]*) +\//i;
|
|
$s=~s/$a[0]//g;
|
|
print "$s";
|
|
' "$@")
|
|
echo "F $F" >> $LOG
|
|
|
|
for J in `echo $F`;
|
|
do
|
|
# höhe des bildes ermitteln
|
|
H=$(exiftool -csv -ImageHeight $J | grep -v Height | awk -F',' '{print $2}')
|
|
|
|
# 2% der Bildhöhe für die Schrift
|
|
FS=$(bc -l <<< "$H*2/100" | awk -F. '{print $1}')
|
|
|
|
# datetime string aus bild holen
|
|
DATETIME=$(exiftool -m -p '$FileModifyDate' "$J" || exiftool -m -p '$ModifyDate' "$J" )
|
|
|
|
DATETIMEORIG=$(exiftool -m -p '$DateTimeOriginal' "$J")
|
|
DATETIMECREATE=$(exiftool -m -p '$CreateDate' "$J")
|
|
|
|
DATETIMEFILEMOD=$(exiftool -m -p '$FileModifyDate' "$J")
|
|
DATETIMEMOD=$(exiftool -m -p '$ModifyDate' "$J")
|
|
|
|
DATETIME=$DATETIMEMOD
|
|
echo "$J $H $DATETIME" >> $LOG
|
|
|
|
POSITION=$(exiftool -m -p '$GPSPosition' "$J" -c \"%+.6f\")
|
|
if [ -z "$POSITION" ]; then
|
|
echo Position fehlt
|
|
return
|
|
fi
|
|
echo "$J $POSITION" >> $LOG
|
|
exiftool -overwrite_original -exif:gpslatituderef=N -exif:gpslongituderef=E "$J"
|
|
|
|
# aufspalten nach date und time
|
|
DATE=$(echo $DATETIME | awk -F' ' '{print $1}')
|
|
TIME=$(echo $DATETIME | awk -F' ' '{print $2}')
|
|
|
|
# date weiter aufspalten nach year, month und day
|
|
YEAR=$(echo $DATE | awk -F':' '{print $1}')
|
|
MONTH=$(echo $DATE | awk -F':' '{print $2}')
|
|
DAY=$(echo $DATE | awk -F':' '{print $3}')
|
|
|
|
# month durch monatsnamen ersetzen
|
|
if [ "$MONTH" == "01" ]; then MONTH="Januar"; fi
|
|
if [ "$MONTH" == "02" ]; then MONTH="Februar"; fi
|
|
if [ "$MONTH" == "03" ]; then MONTH="März"; fi
|
|
if [ "$MONTH" == "04" ]; then MONTH="April"; fi
|
|
if [ "$MONTH" == "05" ]; then MONTH="Mai"; fi
|
|
if [ "$MONTH" == "06" ]; then MONTH="Juni"; fi
|
|
if [ "$MONTH" == "07" ]; then MONTH="Juli"; fi
|
|
if [ "$MONTH" == "08" ]; then MONTH="August"; fi
|
|
if [ "$MONTH" == "09" ]; then MONTH="September"; fi
|
|
if [ "$MONTH" == "10" ]; then MONTH="Oktober"; fi
|
|
if [ "$MONTH" == "11" ]; then MONTH="November"; fi
|
|
if [ "$MONTH" == "12" ]; then MONTH="Dezember"; fi
|
|
|
|
# zusammengesetzer datums-, zeitstring in bild einfügen (mittig oben)
|
|
convert $J -gravity North -pointsize $FS -font Courier-10-Pitch-Regular -fill white -undercolor black -annotate +0+0 "Datum $DAY. $MONTH $YEAR Zeit $TIME" $J;
|
|
FS2=$(bc -l <<< "$FS+25" | awk -F. '{print $1}')
|
|
convert $J -gravity North -pointsize $FS -font Courier-10-Pitch-Regular -fill white -undercolor black -annotate +0+$FS2 "Position $POSITION" $J;
|
|
done
|
|
}
|
|
|
|
|
|
sysinfo() {
|
|
if [ "$USER" != "root" ]; then
|
|
echo -e $C_RED$BG_WHITE"Not root"$C_NO
|
|
return
|
|
fi
|
|
export LANG=us_US
|
|
echo -e $C_LIGHTGREEN"Release"$C_NO
|
|
echo -en $C_CYAN" Distributor "$C_NO; lsb_release -ad 2>&1 | grep -v modules | grep "Distributor" | awk -F: '{print $2}' | sed 's/[^A-Za-z0-9]//i' 2>&1
|
|
echo -en $C_CYAN" Description "$C_NO; lsb_release -ad 2>&1 | grep -v modules | grep "Description" | awk -F: '{print $2}' | sed 's/[^A-Za-z0-9]//i' 2>&1
|
|
echo -en $C_CYAN" Release "$C_NO; lsb_release -ad 2>&1 | grep -v modules | grep "Release" | awk -F: '{print $2}' | sed 's/[^A-Za-z0-9]//i' 2>&1
|
|
echo -en $C_CYAN" Codename "$C_NO; lsb_release -ad 2>&1 | grep -v modules | grep "Codename" | awk -F: '{print $2}' | sed 's/[^A-Za-z0-9]//i' 2>&1
|
|
|
|
echo ""
|
|
echo -e $C_LIGHTGREEN"CPU Info"$C_NO
|
|
echo -en $C_CYAN" Architecture "$C_NO; lscpu | grep "Architecture:" | awk -F: '{print $2}' | sed 's/[^A-Za-z0-9]//i'
|
|
echo -en $C_CYAN" CPUs "$C_NO; lscpu | grep -v NUMA | grep "CPU(s):" | awk -F: '{print $2}' | sed 's/[0-9]*$//i'
|
|
echo -en $C_CYAN" Threads "$C_NO; lscpu | grep "Thread(s)" | awk -F: '{print $2}' | sed 's/[0-9]$//i'
|
|
echo -en $C_CYAN" Cores "$C_NO; lscpu | grep "Core(s)" | awk -F: '{print $2}' | sed 's/[0-9]$//i'
|
|
echo -en $C_CYAN" Model "$C_NO; lscpu | grep "Model name:" | awk -F: '{print $2}' | sed 's/[^A-Za-z0-9]//i'
|
|
MIN=$(lscpu | grep "CPU min")
|
|
MAX=$(lscpu | grep "CPU max")
|
|
MHZ=$(lscpu | grep "CPU MHz")
|
|
echo -en $C_CYAN" CPU Speed (min/max/now) "$C_NO; echo "$MIN/$MAX/$MHZ"
|
|
echo -en $C_CYAN" Bogo "$C_NO; lscpu | grep "Bogo" | awk -F: '{print $2}' | sed 's/[^A-Za-z0-9]//i'
|
|
|
|
echo ""
|
|
echo -e $C_LIGHTGREEN"System Info"$C_NO
|
|
dmidecode | grep Base -A 10 | grep Manufact
|
|
dmidecode | grep Base -A 10 | grep Product
|
|
dmidecode | grep Base -A 10 | grep Version
|
|
dmidecode | grep Base -A 10 | grep Serial
|
|
|
|
echo ""
|
|
echo -e $C_LIGHTGREEN"Memory Info"$C_NO
|
|
echo -n "total "; free -m | grep Mem | awk '{ print $2 }'
|
|
echo -n "used "; free -m | grep Mem | awk '{ print $3 }'
|
|
echo -n "free "; free -m | grep Mem | awk '{ print $4 }'
|
|
echo -n "shared "; free -m | grep Mem | awk '{ print $5 }'
|
|
echo -n "buff/cache "; free -m | grep Mem | awk '{ print $6 }'
|
|
echo -n "avail "; free -m | grep Mem | awk '{ print $7 }'
|
|
|
|
echo ""
|
|
echo -e $C_LIGHTGREEN"Swap Info"$C_NO
|
|
echo -n "total "; free -m | grep Swap | awk '{ print $2 }'
|
|
echo -n "used "; free -m | grep Swap | awk '{ print $3 }'
|
|
echo -n "free "; free -m | grep Swap | awk '{ print $4 }'
|
|
}
|
|
|
|
screen_h() {
|
|
echo "
|
|
Ctrl+a c(reate)
|
|
Ctrl+a n(ext)
|
|
Ctrl+a 0-9
|
|
Ctrl+a A (rename)
|
|
Ctrl+a d(etach)
|
|
Ctrl+a \" (liste)
|
|
Ctrl+a K(ill)
|
|
screen -r(eattach)
|
|
# Scrollen, Markieren, EinfÃŒgen
|
|
Ctrl+a [ wechselt in den Copy Mode
|
|
Mit den Pfeil-, Maustasten scrollen
|
|
Mit Enter Anfang der Markierung setzen, mit zweitem Enter das Ende setzen
|
|
Ctrl+a ] fÃŒgt markierten Bereich ein
|
|
"
|
|
}
|
|
|
|
sudo_h() {
|
|
echo "
|
|
/etc/sudoers
|
|
andre ALL=(ALL) NOPASSWD: ALL
|
|
"
|
|
}
|
|
|
|
iptables_h() {
|
|
echo "
|
|
# Policy fÃŒr Chain setzen
|
|
iptables -P INPUT ACCEPT
|
|
iptables -P INPUT DROP
|
|
|
|
#Neue Chain anlegen
|
|
iptables -N NEW_CHAIN
|
|
|
|
# NEW_CHAIN an INPUT anhÀngen (-A) / am Anfang von INPUT einfÌgen (-I)
|
|
iptables -A/-I INPUT -j NEW_CHAIN
|
|
|
|
# Regeln an neue Chain anhÀngen (-A) / am Anfang einfÌgen (-I) oder löschen (-D)
|
|
iptables -A/-I/-D NEW_CHAIN -p tcp --dport 22 -j ACCEPT
|
|
iptables -A/-I/-D NEW_CHAIN -p udp --dport 53 -j ACCEPT
|
|
iptables -A/-I/-D NEW_CHAIN -s 10.0.0.0/8 -j DROP
|
|
iptables -A/-I/-D NEW_CHAIN -d 127.0.0.0/8 -j ACCEPT
|
|
iptables -A/-I/-D NEW_CHAIN -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|
|
|
# RÃŒcksprung aus Chain (nicht zwingend notwendig)
|
|
iptables -A NEW_CHAIN -j RETURN
|
|
|
|
# Chain aus Chain entfernen
|
|
iptables -D INPUT -j NEW_CHAIN
|
|
|
|
# Chain leeren (-F) / löschen (-X)
|
|
iptables -F NEW_CHAIN
|
|
|
|
# Kommentare als weitere Parameter in der Regel einfÃgen
|
|
-m comment --comment "Kommentar"
|
|
|
|
# Logging, ACCEPT o DROP als Regel dahinter definieren
|
|
iptables .... -j LOG
|
|
"
|
|
echo "Beispielkonfig
|
|
|
|
*filter
|
|
:INPUT DROP [0:0]
|
|
:FORWARD DROP [0:0]
|
|
:OUTPUT ACCEPT [13057:10612758]
|
|
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
|
|
-A INPUT -s 10.0.0.0/8 -i eth0 -j ACCEPT
|
|
-A INPUT -s 192.168.0.0/16 -i eth0 -j ACCEPT
|
|
-A INPUT -s 172.16.0.0/12 -i eth0 -j ACCEPT
|
|
-A INPUT -s 195.20.133.0/24 -i eth1 -j ACCEPT
|
|
-A INPUT -s 149.13.94.0/24 -i eth1 -j ACCEPT
|
|
-A INPUT -s 92.50.110.208/29 -i eth1 -j ACCEPT
|
|
-A INPUT -s 127.0.0.0/8 -j ACCEPT
|
|
-A INPUT -p icmp -j ACCEPT
|
|
-A INPUT -j LOG
|
|
-A INPUT -j DROP
|
|
COMMIT
|
|
"
|
|
}
|
|
|
|
|
|
delete_files_older() {
|
|
if [ "$4" == "" ]; then
|
|
echo ""
|
|
echo "$0 <Pfad> <Tage> <d|f> <r|n>"
|
|
echo ""
|
|
echo "Pfad gibt an aus welchem Verzeichnis gelöscht werden soll"
|
|
echo "Tage gibt an ab welchem Alter Verzeichnisse und Dateien gelöscht werden"
|
|
echo "d Verzeichnisse löschen, f Dateien löschen"
|
|
echo "r rekursiv löschen, n nicht rekursiv löschen. Bei Dateilöschungen ist egal was hier angegeben wird"
|
|
echo ""
|
|
else
|
|
echo "Wechsle in Verzeichnis $1"
|
|
cd $1
|
|
for I in `find $1 -mtime +$2`
|
|
do
|
|
if [ $3 == "f" ]; then
|
|
if [ -f $I ]; then
|
|
echo "Lösche Datei $I"
|
|
rm $I
|
|
fi
|
|
elif [ $3 == "d" ]; then
|
|
if [ $4 == "r" ]; then
|
|
if [ -d $I ]; then
|
|
echo "Lösche Verzeichnis $I rekursiv"
|
|
rm -fR $I
|
|
fi
|
|
elif [ $4 == "n" ]; then
|
|
if [ -d $I ]; then
|
|
echo "Lösche Verzeichnis $I (nicht rekursiv)"
|
|
rmdir $I
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
}
|
|
|
|
delete_old_logs() {
|
|
find /var/log -name "*.gz" -o -name "*.1" -o -name "*.2" -o -name "*.old" | xargs rm
|
|
find /var/log -mtime +7 | xargs rm
|
|
}
|
|
|
|
ssh_personal_environment() {
|
|
if [ $# -gt 0 -a "$1" = "--debug" ] ; then
|
|
export SSH_PERS_ENV_DEBUG=1
|
|
shift
|
|
fi
|
|
if test -n "$SSH_PERS_ENV_FILES" -o "$#" -gt 0 ; then
|
|
export SSH_PERS_ENV_FILES=$(
|
|
eval echo $@ $SSH_PERS_ENV_FILES | \
|
|
tr " " "\n" | \
|
|
sort -u | \
|
|
tr "\n" " "
|
|
) # pattern expansion
|
|
test "${SSH_PERS_ENV_DEBUG:-}" && \
|
|
echo "Packing as SSH Personal Environment: $SSH_PERS_ENV_FILES" 1>&2
|
|
export SSH_PERS_ENV_DATA=$(tar -C ~ -cz $SSH_PERS_ENV_FILES | base64)
|
|
fi
|
|
}
|
|
|
|
ssh_personal_config() {
|
|
echo "append to /etc/ssh/ssh_config on ssh client"
|
|
echo "# this content comes from the ssh-personal-environment package"
|
|
echo "SendEnv SSH_PERS_ENV_DATA SSH_PERS_ENV_FILES SSH_PERS_ENV_DEBUG"
|
|
echo "# end of content from the ssh-personal-environment package"
|
|
echo ""
|
|
echo "append to /etc/ssh/sshd_config on ssh server"
|
|
echo "# this content comes from the ssh-personal-environment package"
|
|
echo "AcceptEnv SSH_PERS_ENV_DATA SSH_PERS_ENV_FILES SSH_PERS_ENV_DEBUG"
|
|
echo "# end of content from the ssh-personal-environment package"
|
|
echo ""
|
|
echo "insert into /etc/ssh/sshrc on ssh server"
|
|
echo "#!/bin/sh"
|
|
echo "if which xauth >/dev/null 2>&1 && read proto cookie && test \"\$DISPLAY\" ; then"
|
|
echo " if test \"\$(expr substr \"\$DISPLAY\" 1 10)\" = localhost: ; then"
|
|
echo " # X11UseLocalhost=yes"
|
|
echo " echo add unix:\"\$(expr substr \"\$DISPLAY\" 11 99)\" \$proto \$cookie"
|
|
echo " else"
|
|
echo " # X11UseLocalhost=no"
|
|
echo " echo add \"\$DISPLAY\" \$proto \$cookie"
|
|
echo " fi | xauth -q -"
|
|
echo "fi"
|
|
echo "# unpack personal environment"
|
|
echo "if test \"\$SSH_PERS_ENV_DATA\" ; then"
|
|
echo " if [ ! \"\$USER\" = \"root\" ] ; then"
|
|
echo " test \"\$SSH_PERS_ENV_DEBUG\" && echo \"Unpacking SSH Personal Environment Data...\""
|
|
echo " echo \"\$SSH_PERS_ENV_DATA\" | base64 -d | tar \${SSH_PERS_ENV_DEBUG:+-v} -xzC ~"
|
|
echo " fi"
|
|
echo "fi"
|
|
echo ""
|
|
}
|
|
|
|
logrotate() {
|
|
if [ "$1" == "" ]
|
|
then
|
|
echo ""
|
|
echo "Aufruf:"
|
|
echo ""
|
|
echo "logrotate <DIR>"
|
|
echo ""
|
|
return
|
|
fi
|
|
|
|
logdir=$1
|
|
oldlogdir=$logdir/rotate
|
|
echo $oldlogdir
|
|
mkdir $oldlogdir
|
|
date=`date +"%Y-%m-%d_%H-%M"`
|
|
# alte logfiles packen
|
|
pushd .
|
|
cd $logdir
|
|
tar -cvzf $date.tar.gz *.log
|
|
# archiv verschieben
|
|
mv $date.tar.gz $oldlogdir
|
|
# alte logs löschen
|
|
rm *.log
|
|
popd
|
|
}
|
|
|
|
e1ping() {
|
|
while (( "$#" ))
|
|
do
|
|
ping -W 1 -O -i 1 -c 1 $1 >/dev/null
|
|
RV=$?
|
|
if [ $RV -eq 0 ]
|
|
then
|
|
echo -n -e "\e[42;30m$1 is up\e[m "
|
|
else
|
|
echo -n -e "\e[41m$1 is down\e[m"
|
|
fi
|
|
echo -n " "
|
|
shift
|
|
done
|
|
echo
|
|
}
|
|
|
|
eping() {
|
|
P=""
|
|
while (( "$#" ))
|
|
do
|
|
P="$P $1"
|
|
shift
|
|
done
|
|
echo ""
|
|
I=0
|
|
date
|
|
while [ 1 ]
|
|
do
|
|
if [ "$I" == "10" ]
|
|
then
|
|
I=0
|
|
date
|
|
fi
|
|
e1ping $P
|
|
sleep 1
|
|
I=`expr $I + 1`
|
|
done
|
|
}
|
|
|
|
find_local_port() {
|
|
N=$(($RANDOM + 10000))
|
|
echo $N
|
|
}
|
|
|
|
find_local_ip() {
|
|
I=$(($RANDOM % 250))
|
|
echo $I
|
|
}
|
|
|
|
find_session_id() {
|
|
S=`date +"%s"`
|
|
echo $S
|
|
}
|
|
|
|
update_git() {
|
|
echo "Gehe durch Unterverzeichnisse für git pulls"
|
|
for DIR in `ls`
|
|
do
|
|
echo
|
|
echo "########## $DIR"
|
|
cd $DIR
|
|
git pull
|
|
cd ..
|
|
done
|
|
}
|
|
|
|
pw() {
|
|
printf "\n B_uchstaben S_onderzeichen W_orte Z_iffern\n"
|
|
B='a b c d e f g h j k m n p q r s t u v w x y z A B C D E F G H J K L M N P Q R S T U V W X Y Z'
|
|
Z='1 2 3 4 5 6 7 8 9'
|
|
S='! - _ + / \ # $ % & ( ) [ ] { }'
|
|
echo -n " " ; echo B: $B
|
|
echo -n " " ; echo Z: $Z
|
|
echo -n " " ; echo S: $S
|
|
|
|
for I in `echo $B`
|
|
do
|
|
echo $I >> alphabet
|
|
done
|
|
|
|
for I in `echo $S`
|
|
do
|
|
echo $I >> zeichen
|
|
done
|
|
|
|
for I in `echo $Z`
|
|
do
|
|
echo $I >> ziffern
|
|
done
|
|
|
|
#Generiere PW in der Form xxxxx-xxxxx-xxxxx-xxxxx
|
|
curl -k -s https://pw.andregeissler.de/duden1 > duden1
|
|
curl -k -s https://pw.andregeissler.de/duden2 > duden2
|
|
C=1
|
|
|
|
DC1=`cat duden1 | wc -l`
|
|
DC1=`expr $DC1 + 1`
|
|
DC2=`cat duden2 | wc -l`
|
|
DC2=`expr $DC2 + 1`
|
|
|
|
for I in `echo 4 9`
|
|
do
|
|
printf "\n%2d) %2d W : " $C $I
|
|
for J in `seq 2 $I`
|
|
do
|
|
NR=`echo $(($RANDOM % $DC1 + 1))`
|
|
B=`cat duden1 | head -n $NR | tail -n 1`
|
|
echo -n $B"-"
|
|
done
|
|
NR=`echo $(($RANDOM % $DC1 + 1))`
|
|
B=`cat duden1 | head -n $NR | tail -n 1`
|
|
echo -n $B
|
|
C=`expr $C + 1`
|
|
done
|
|
echo
|
|
for I in `echo 4 9`
|
|
do
|
|
printf "\n%2d) %2d W : " $C $I
|
|
for J in `seq 2 $I`
|
|
do
|
|
NR=`echo $(($RANDOM % $DC2 + 1))`
|
|
B=`cat duden2 | head -n $NR | tail -n 1`
|
|
echo -n $B"-"
|
|
done
|
|
NR=`echo $(($RANDOM % $DC2 + 1))`
|
|
B=`cat duden2 | head -n $NR | tail -n 1`
|
|
echo -n $B
|
|
C=`expr $C + 1`
|
|
done
|
|
|
|
|
|
cat alphabet > menge1 ; cat alphabet > menge2 ; cat alphabet > menge3
|
|
cat ziffern >> menge2 ; cat ziffern >> menge3
|
|
cat zeichen >> menge3
|
|
|
|
AC=`cat menge1 | wc -l`
|
|
BC=`cat menge2 | wc -l`
|
|
CC=`cat menge3 | wc -l`
|
|
|
|
echo ""
|
|
# alphabet 47, zeichen 15, ziffern 9
|
|
for I in `echo 12 16 30`
|
|
do
|
|
printf "\n%2d) %2d B : " $C $I
|
|
for J in `seq 1 $I`
|
|
do
|
|
# buchstaben AC=47
|
|
NR=`echo $(($RANDOM % $AC + 1))`
|
|
B=`cat menge1 | head -n $NR | tail -n 1`
|
|
echo -n "$B"
|
|
done
|
|
|
|
C=`expr $C + 1`
|
|
printf "\n%2d) %2d BZ : " $C $I
|
|
for J in `seq 1 $I`
|
|
do
|
|
# buchstaben, ziffern BC=56
|
|
NR=`echo $(($RANDOM % $BC + 1))`
|
|
B=`cat menge2 | head -n $NR | tail -n 1`
|
|
echo -n "$B"
|
|
done
|
|
|
|
C=`expr $C + 1`
|
|
printf "\n%2d) %2d BZS : " $C $I
|
|
for J in `seq 1 $I`
|
|
do
|
|
# buchstaben, ziffern, zeichen CC=71
|
|
NR=`echo $(($RANDOM % $CC + 1))`
|
|
B=`cat menge3 | head -n $NR | tail -n 1`
|
|
echo -n "$B"
|
|
done
|
|
C=`expr $C + 1`
|
|
echo
|
|
done
|
|
|
|
rm duden1
|
|
rm duden2
|
|
rm menge1
|
|
rm menge2
|
|
rm menge3
|
|
rm alphabet
|
|
rm zeichen
|
|
rm ziffern
|
|
|
|
}
|
|
|
|
rotate() {
|
|
file=$1
|
|
if [ "$file" == "" ]
|
|
then
|
|
echo "rotate <filename>"
|
|
echo ""
|
|
return
|
|
fi
|
|
echo "Rotiere $file nach $file.1"
|
|
echo " $file.1 nach $file.2"
|
|
echo " ..."
|
|
echo " $file.8 nach $file.9"
|
|
echo "Lâsche $file.9"
|
|
|
|
if [ -f $file ]
|
|
then
|
|
if [ -f $file.9 ] ; then rm $file.9 ; fi
|
|
if [ -f $file.8 ] ; then mv $file.8 $file.9 ; fi
|
|
if [ -f $file.7 ] ; then mv $file.7 $file.8 ; fi
|
|
if [ -f $file.6 ] ; then mv $file.6 $file.7 ; fi
|
|
if [ -f $file.5 ] ; then mv $file.5 $file.6 ; fi
|
|
if [ -f $file.4 ] ; then mv $file.4 $file.5 ; fi
|
|
if [ -f $file.3 ] ; then mv $file.3 $file.4 ; fi
|
|
if [ -f $file.2 ] ; then mv $file.2 $file.3 ; fi
|
|
if [ -f $file.1 ] ; then mv $file.1 $file.2 ; fi
|
|
mv $file $file.1
|
|
touch $file
|
|
fi
|
|
}
|
|
|
|
wetter() {
|
|
c=$1
|
|
curl wttr.in/$c
|
|
}
|
|
|
|
wi() {
|
|
f=$1
|
|
d=$(date "+%Y-%m-%d")
|
|
rotate $f.bu.$d > /dev/null 2>&1
|
|
cp $1 $f.bu.$d
|
|
vi -c ":syntax on" -c "set number" $f
|
|
}
|
|
|
|
ssh_env() {
|
|
u=$1
|
|
s=$2
|
|
|
|
ssh-copy-id -oStrictHostKeyChecking=no -i $HOMEDIR/.ssh/id_ed25519 $u@$s > /dev/null 2>&1
|
|
scp $HOMEDIR/.bashrc $u@$s:$HOMEDIR/.bash_profile
|
|
|
|
ssh -q -X -oStrictHostKeyChecking=no $u@$s
|
|
}
|
|
|
|
crossword() {
|
|
grep -hi "^$1\$" /usr/share/dict/* | sort | uniq
|
|
}
|
|
|
|
install_ssh_keypair_files() {
|
|
mkdir $HOMEDIR/.ssh/
|
|
echo "-----BEGIN OPENSSH PRIVATE KEY-----
|
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
|
QyNTUxOQAAACAZREl5zjYh3/3Gs1WXI7Yt4spiWHMCbx3PK+jnexG+hwAAAKDS7Hi00ux4
|
|
tAAAAAtzc2gtZWQyNTUxOQAAACAZREl5zjYh3/3Gs1WXI7Yt4spiWHMCbx3PK+jnexG+hw
|
|
AAAECdSCzE3tYW7sk3s8P6BQSvf8c52Jtz8n3bC963bJtj9hlESXnONiHf/cazVZcjti3i
|
|
ymJYcwJvHc8r6Od7Eb6HAAAAGGFnZWlzc2xlci50dXguMjIxMjE0MTAwMgECAwQF
|
|
-----END OPENSSH PRIVATE KEY-----" > $HOMEDIR/.ssh/id_ed25519
|
|
chmod 0600 $HOMEDIR/.ssh/id_ed25519
|
|
|
|
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlESXnONiHf/cazVZcjti3iymJYcwJvHc8r6Od7Eb6H ageissler.tux.2212141002" > $HOMEDIR/.ssh/id_ed25519.pub
|
|
chmod 0600 $HOMEDIR/.ssh/id_ed25519.pub
|
|
|
|
echo "-----BEGIN OPENSSH PRIVATE KEY-----
|
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
|
|
NhAAAAAwEAAQAAAQEAv4M/JiHEJgMTlW2owW9Jzu41iNPU13x5+pDYOhP+N20s7tdKqt4W
|
|
rUz7rl4GlOmPyjJBhdJ7ep7Lnz9z/btRawrauY9e+c9xgkI5OjG+UDjvYiizvX0FdPHeo9
|
|
wu2BnNfukmZUynUXsnwcu5UAH3lDLrxU+CnrzBMc8s7wLYEPGbSx8BFFgVuRf9GCBmcq+n
|
|
DDXtPUU9lk2CSG0Ak831blmzj8Nkhc73eJbO05yytxFOJI7o58wbEzgCS5G2lhVZuovluj
|
|
Nzfk7ra7aA3FtdkPQiuXkLVcEKzFktSWwACBpHtUynos4A7eRLlpOJOWKL17+sK3Fk/Umo
|
|
YHig1bQi8QAAA8hfST8CX0k/AgAAAAdzc2gtcnNhAAABAQC/gz8mIcQmAxOVbajBb0nO7j
|
|
WI09TXfHn6kNg6E/43bSzu10qq3hatTPuuXgaU6Y/KMkGF0nt6nsufP3P9u1FrCtq5j175
|
|
z3GCQjk6Mb5QOO9iKLO9fQV08d6j3C7YGc1+6SZlTKdReyfBy7lQAfeUMuvFT4KevMExzy
|
|
zvAtgQ8ZtLHwEUWBW5F/0YIGZyr6cMNe09RT2WTYJIbQCTzfVuWbOPw2SFzvd4ls7TnLK3
|
|
EU4kjujnzBsTOAJLkbaWFVm6i+W6M3N+TutrtoDcW12Q9CK5eQtVwQrMWS1JbAAIGke1TK
|
|
eizgDt5EuWk4k5YovXv6wrcWT9SahgeKDVtCLxAAAAAwEAAQAAAQBGdpLYg9n4pm8hLrzF
|
|
lx3P/kNCObZ5Jnp2364/CDYjzI6Yvivh3F75mnaLvFqtlZXrLjx/cWcvQZfn2t/hfndBbD
|
|
f3yDGItnOsGpOVvtGoEJq7QgCH+qT0Vz20ioHNzwiV5lDTOrXhO+/v1PY04tRl+apX6Z5E
|
|
q2xl2DVPJ3u6F5ewzcKbuVYjo7AovAJ/1PeLXrPyPWroqjl1hNgcdMtG2vLAsGRz4f4HHH
|
|
mSk2kz8TVjzu8+n9rY533p1IJ82rbZiEeyxwhev304FWq6QPP+2meFP9jf767uMfpt6fwh
|
|
mgUiNCK25531DShsZ67lIGUj4DVivjL3AoZR8xYP6G81AAAAgQDeTh1Qrr31cLjajTgpe8
|
|
P0pLPiQJMnQq8eWNZpFOe2AUsXlowURy11VKUIqx6lB6vW2ZZwHjOhr2/k7d06JHCKDS7+
|
|
WRsXjcTEf2cFC4aUhPP1R9m2l3CyIl4cxQq4WBZ7ZHovn+Hh9hEPlppje7IjAqNSsSUYUS
|
|
ozssh1eqNXbgAAAIEA8FIwQxekEsUXNaHA5FJT4XmIPq0pWmqNHzVOgqzetj40lcvatgF5
|
|
3TmOFAQdNsJTBvZaFqqhAY4c7nZxtLvnml2MT8hhoZMF1ToNHTg7dhsv3wkA7pQxqwx5/8
|
|
S++8TK0GuFhIat+MsiAHWTLvQv6pPbsFU5/ZtbjUXu93wyIRMAAACBAMwB3fah8Rc7M0jq
|
|
7otanizTxEVUvJG6vwQh56kb2V5iM0MInlebGblxNrwzZq+c8F/oFGhwEwQb0QnnCp8yva
|
|
udFwOoIdCrLECMaAOCtOrObBwy7wSQH3RTbxn8Fn4tvFfD0FJKOtch+NuwtSbIC5buqrF/
|
|
0oGKMagDiaaZmHBrAAAAEmNvbmV0YWRtQGNvbmx4YW5zMQ==
|
|
-----END OPENSSH PRIVATE KEY-----" > $HOMEDIR/.ssh/ansible_id_rsa
|
|
chmod 0600 $HOMEDIR/.ssh/ansible_id_rsa
|
|
|
|
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/gz8mIcQmAxOVbajBb0nO7jWI09TXfHn6kNg6E/43bSzu10qq3hatTPuuXgaU6Y/KMkGF0nt6nsufP3P9u1FrCtq5j175z3GCQjk6Mb5QOO9iKLO9fQV08d6j3C7YGc1+6SZlTKdReyfBy7lQAfeUMuvFT4KevMExzyzvAtgQ8ZtLHwEUWBW5F/0YIGZyr6cMNe09RT2WTYJIbQCTzfVuWbOPw2SFzvd4ls7TnLK3EU4kjujnzBsTOAJLkbaWFVm6i+W6M3N+TutrtoDcW12Q9CK5eQtVwQrMWS1JbAAIGke1TKeizgDt5EuWk4k5YovXv6wrcWT9SahgeKDVtCLx ansible" > $HOMEDIR/.ssh/ansible_id_rsa.pub
|
|
chmod 0600 $HOMEDIR/.ssh/ansible_id_rsa.pub
|
|
}
|
|
|
|
install_ssh_authorized_key() {
|
|
if [ "$1" == "" ]
|
|
then
|
|
echo "Installiert ssh-ed25519 in $HOMEDIR/.ssh/authorized_keys"
|
|
prompt_confirm "Weiter?" || return 0
|
|
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlESXnONiHf/cazVZcjti3iymJYcwJvHc8r6Od7Eb6H ageissler.tux.2212141002" >> $HOMEDIR/.ssh/authorized_keys
|
|
else
|
|
echo "Installiert ssh-ed25519 in /home/$1/.ssh/authorized_keys"
|
|
prompt_confirm "Weiter?" || return 0
|
|
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlESXnONiHf/cazVZcjti3iymJYcwJvHc8r6Od7Eb6H ageissler.tux.2212141002" >> /home/$1/.ssh/authorized_keys
|
|
fi
|
|
}
|
|
|
|
PATH="$HOMEDIR/perl5/bin${PATH:+:${PATH}}"; export PATH;
|
|
PERL5LIB="$HOMEDIR/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
|
|
PERL_LOCAL_LIB_ROOT="$HOMEDIR/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
|
|
PERL_MB_OPT="--install_base \"$HOMEDIR/perl5\""; export PERL_MB_OPT;
|
|
PERL_MM_OPT="INSTALL_BASE=$HOMEDIR/perl5"; export PERL_MM_OPT;
|
|
|
|
rm -f $HOMEDIR/.bash_profile
|
|
|
|
HOSTNAME=`hostname`
|
|
if [ "$HOSTNAME" != "server" ]
|
|
then
|
|
### bash completion module
|
|
#source <(curl --connect-timeout 3 -f -s -k https://tools.andregeissler.de/completion/clogin-completion.bash)
|
|
#source <(curl --connect-timeout 3 -f -s -k https://tools.andregeissler.de/completion/owi2-completion.bash)
|
|
|
|
### bash module
|
|
#source <(curl --connect-timeout 3 -f -s -k https://tools.andregeissler.de/modules/arg_ssh.bash)
|
|
#source <(curl --connect-timeout 3 -f -s -k https://tools.andregeissler.de/modules/gps_tools.bash)
|
|
|
|
for i in `ls /etc/bash_completion.d/*.bash`
|
|
do
|
|
source $i
|
|
done
|
|
for i in `ls $HOMEDIR/bash_extensions/*.bash`
|
|
do
|
|
bash $i
|
|
done
|
|
|
|
if [ "$OS" == "" ]; then
|
|
if [ ! -f $HOMEDIR/bike.jpg ]; then
|
|
timeout 3 scp -o ConnectTimeout=2 -P 2222 andregeissler@vesta.agserver.de:$HOMEDIR/web/tools.andregeissler.de/public_html/bike.jpg $HOMEDIR/bike.jpg
|
|
fi
|
|
if [ ! -f $HOMEDIR/ascii-image-converter ]; then
|
|
timeout 3 scp -o ConnectTimeout=2 -P 2222 andregeissler@vesta.agserver.de:$HOMEDIR/web/tools.andregeissler.de/public_html/ascii-image-converter $HOMEDIR/ascii-image-converter
|
|
fi
|
|
if echo "$-" | grep i > /dev/null; then
|
|
echo ; $HOMEDIR/ascii-image-converter -C $HOMEDIR/bike.jpg -d 80,23 | tr "@" " " ; echo
|
|
fi
|
|
fi
|
|
fi |