From ebc0c6585e6132170b7f222c1bb518f28baf8850 Mon Sep 17 00:00:00 2001 From: andre Date: Mon, 14 Oct 2024 11:02:48 +0200 Subject: [PATCH] 1 Minitools/bashrc aktualisiert --- 1 Minitools/bashrc | 1127 +++++++++++++++++++++++--------------------- 1 file changed, 577 insertions(+), 550 deletions(-) diff --git a/1 Minitools/bashrc b/1 Minitools/bashrc index ad7f27a..182cd25 100644 --- a/1 Minitools/bashrc +++ b/1 Minitools/bashrc @@ -1,75 +1,187 @@ -#VERSION 58 -#DATUM 05.02.2019 +### +### Version vom 2. September 2024 (1) +### +# +# set +o history; source <(curl -k https://tools.andregeissler.de/bashrc) ; set -o history; history -c +# -# source <(curl https://andre:mesh-assort2@config.andregeissler.de/bashrc1) -# curl https://andre:mesh-assort2@config.andregeissler.de/bashrc1 > ~/.bashrc - -# apt-get install iproute2 dnsutils curl -# source <(curl https://andre:mesh-assort2@config.andregeissler.de/bashrc1) +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*:__*" alias ll='ls -haltr' alias ppm="sudo perl -MCPAN -e 'shell'" -alias upall='apt-get update -y ; apt-get upgrade -y --allow-unauthenticated ; apt-get autoremove -y' -alias nst='netstat -an | grep -i listen' -alias iptables_s='iptables -nvL' -alias sud='sudo -E -H bash' -alias snmp3A='snmpwalk -v3 -a SHA -A K01v1kk0! -u fote98 -l authnopriv $1 $2' -alias snmp3AP='snmpwalk -v3 -a SHA -A K01v1kk0! -x AES -X K01v1kk0 -u fote98 -l authpriv $1 $2' -alias snmp3a='snmpwalk -v3 -a SHA -A AuthPass01 -u SNMPUser -l authnopriv $1 $2' -alias snmp3ap='snmpwalk -v3 -a SHA -A AuthPass01 -x AES -X PrivPass01 -u SNMPUser -l authpriv $1 $2' -alias grepv='grep -v grep | grep' -alias update_bashrc='curl -s -H "Cache-Control: no-cache" https://andre:mesh-assort2@config.andregeissler.de/bashrc1 > ~/.bashrc' -alias assh='ssh -X -l andre $1' -alias cssh='ssh -X -l conetadm $1' -alias rssh='ssh -X -l rancid $1' -alias r11='rssh 10.101.0.11' -alias ovn='sudo openvpn --script-security 2 --config /home/andre/Nextcloud/client.ovpn' +alias __activate_bashrc='set +o history; source <(curl -k https://tools.andregeissler.de/bashrc) ; set -o history ; history -c' +alias __backup_bashrc='set +o history; scp -P 2222 ~/.bashrc andregeissler@vesta.agserver.de:~/web/tools.andregeissler.de/public_html/bashrc ; set -o history' +alias __restore_bashrc='set +o history; scp -P 2222 andregeissler@vesta.agserver.de:~/web/tools.andregeissler.de/public_html/bashrc ~/.bashrc ; set -o history' + +alias __backup_ssh_host_config='set +o history; scp -P 2222 ~/.ssh/config andregeissler@vesta.agserver.de:~/web/tools.andregeissler.de/public_html/ssh_host_config ; set -o history' +alias __restore_ssh_host_config='set +o history; scp -P 2222 andregeissler@vesta.agserver.de:~/web/tools.andregeissler.de/public_html/ssh_host_config ~/.ssh/config ; set -o history' +alias __ssh_host_config=__restore_ssh_host_config +alias __ssh_h='egrep "^# " .ssh/config' + +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' if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + export GREP_COLORS='1;37;41' + alias ls='ls --color=auto' - alias grep='grep --color=auto' - alias fgrep='fgrep --color=auto' - alias egrep='egrep --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 SSHK="ssh-dss AAAAB3NzaC1kc3MAAACBAMNkMHw/xuJcU3Vhg7qHynpwMFo4Lx6D/0OA1dkhLiENtW4GZTjKT2Vt+kmt9t2tpNUrZnFVPbVbTKDDkFCrc9tXM74SkE9xBxssZ4fUyQVmWMzIkMcgw6cqgNODwJOmtFdxg7KNCi5Xi2YGol8yexxzcKNd4uv3KxeyjdOsc2wZAAAAFQDiWmZgli+aNmpYDWn43KRNyK4qSQAAAIEAiBz9Jj2TfRqAQRTEUahUkSRVU9gms1g9MWmGArIH51fi71raZc7iApybSSEgV93VySaRZ+jq7W4j23JNF9WHDQn1oqPAqw+3pNtgdeQb7i4Ic7oEJ6gYxrXuvhweiJKceC9o84yv41bLSw5QELIQ9tr/JKaa7/lHDVYgWiPhWeEAAACBAK0b5iNzqitsSs3+H/QkOPYrdSNPb68wbImxD+Zber7nHYMjxpwxCAORarxNL6Gfaxz0Ghs/T0IhO9cQ9inY8QWe9kS3ZVxfuZrTvR0ZVnstePo1AsQ6cPCJ9BUVsIGfOF8PNwXf16EUDaulTjBm1DHiLuNdcVU81MfZg914/z67 andre@debian" -export SSHKE="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVlToAoVM6DH3UU/duHc31IknfvFoOsV7DPEh+xnP2XY70l70I+RNiXEWYJ6wgBmlml2txhNG9BPLmZLN/8sfR0W7nM+1nc+Qx0FQcj/3mEWQhhAXcRwbBucCGlbIr4viBnSVYPN6JI4yS5VG4xQXGjD2ZyA9/v8ubx+Cv7lQyG66XcE8nUzENyUP4ntcvdou9O7mRStAzihJo/I7P+PnvMokz2kiP+pehll7zO/b5gliEzhQq/Bsavj5FlQwMhOmZXxR9rafJ08R1SAAE2U2Gus6nmD+iR0rqv8/ugHCKkMCX+DFxJP6iTRbuStl8WZf8utxym83YnM3wqGeeUdMP andre@debian" - +export SSHUSER=ageissler +export SSHPASS=G0ttAmH3rd export GPGKEY=13FAA6FC export EDITOR=vi # export PERL_MB_OPT="--install_base \"/home/andre/perl5\"" # export PERL_MM_OPT="INSTALL_BASE=/home/andre/perl5" export PERL_MM_USE_DEFAULT=1 -export PATH=$PATH:.:~:/install/:/opt/Oracle_Java/jre1.7.0_79/bin:/home/andre/scripts/: -export SSH_PERS_ENV_FILES=".bashrc" -export PROMPT_DIRTRIM=2 +export PATH=$PATH:.:~:/install/:/home/andre/scripts/: +export PROMPT_DIRTRIM=10 color_prompt=yes -PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \n\[\033[01;33m\]\t \[\033[01;34m\]\$\[\033[00m\] ' -export HISTCONTROL="ignorespace" -export HISTFILESIZE= -export HISTSIZE= -export HISTTIMEFORMAT="%F %T " +# $- 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 -arg_help() { - echo "Aliases -ll ppm sb upall nst iptables_s sud snmp3A snmp3AP snmp3a snmp3ap grepv update_bashrc -assh cssh rssh +__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 + +__my_versions() { + files='~/.bashrc ~/.ssh/config' + for file in `echo $files` + do + cmd="grep '### Version' $file | grep -v grep | tr -d '#'" + version=`eval $cmd` + printf "%-20s :%s\n" "$file" "$version" + done +} + +__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_help() { + echo " +Aliases + ll ppm grep egrep + +Weitere Aliases und Funktionen haben ein vorangestelltes __ + +Aliases + backup_bashrc restore_bashrc backup_ssh_host_config restore_ssh_host_config extip Funktionen -arg_help sshcl(clogin) sshh(hop) sshl(local) sshll(list local) asdm asdmns svncom screen_h sudo_h iptables_h -init.d_h install_ssh_key delete_files_older update_ssh_personal_environment -ssh_personal_config install_ssh_personal_config logrotate cping eping mount_all rdp -setjava setjava6|7|8 sysinfo + arg_help svncom screen_h sudo_h iptables_h ssh_h + init.d_h delete_files_older logrotate rotate + ssh_perconal_environment ssh_personal_config eping + sysinfo pw update_git AddTimeDateToPanasonicPictures + my_versions prompt_confirm conv_owi + +wetter + zeigt Wettervorhersagen an +wi + startet vi und erstellt zuvor Sicherungsdatei + +ssh_host_config + schreibt Verbindungs-Parameter in .ssh/config + +install_ssh_keypair_files + speichert Schlüsselpaar in ~/.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 ~/.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 + +ssh -o \"ProxyJump HOST\" user@server + ssh via JumpHost HOST der kann in ~/.ssh/config vordefiniert werden " } @@ -109,7 +221,54 @@ BG_LIGHTCYAN="\e[48;5;14m" BG_WHITE="\e[48;5;15m" BG_NO="\e[0;00m" -sysinfo() { + +__AddTimeDateToPanasonicPictures () { + echo + echo betrachtet alle Dateien P*.JPG als Panasonic Bilder + echo Weitermachen? + echo "+ Abbruch Weiter" + read + + for J in `ls P*.JPG` + 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 '\$ModifyDate' "$J" || exiftool -m -p '\$DateTimeOriginal' "$J" || exiftool -m -p '\$DateTimeModify' "$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-Bold -fill red -undercolor black -annotate +0+0 "Datum $DAY. $MONTH $YEAR Zeit $TIME" $J; + done +} + +__sysinfo() { if [ "$USER" != "root" ]; then echo -e $C_RED$BG_WHITE"Not root"$C_NO return @@ -157,169 +316,7 @@ sysinfo() { echo -n "free "; free -m | grep Swap | awk '{ print $4 }' } -rdp() { - OUTPUT=$(zenity --forms --title="Remote Desktop" --text="Connection Settings" \ - --add-entry="Server" \ - --add-entry="User" \ - --add-password="Password" \ - --add-entry="Domain") - - ip=$(awk -F'|' '{print $1}' <<<$OUTPUT) - us=$(awk -F'|' '{print $2}' <<<$OUTPUT) - pa=$(awk -F'|' '{print $3}' <<<$OUTPUT) - do=$(awk -F'|' '{print $4}' <<<$OUTPUT) - - if [ "$ip" == "" ] || [ "$us" == "" ] || [ "$pa" == "" ] || [ "$do" == "" ] - then - echo Angaben unvollständig! - else - rdesktop -D -a24 -g 1680x950 -u $us -d $do -p $pa $ip & - fi - ip= - us= - pa= - do= - OUTPUT= -} - -setjava6() { - setjava 6 -} - -setjava7() { - setjava 7 -} - -setjava8() { - setjava 8 -} - -setjava() { - export J=$1 - export P=`update-alternatives --list java | grep oracle | grep java-$J` - sudo update-alternatives --set java $P - - export P=`update-alternatives --list javaws | grep oracle | grep java-$J` - sudo update-alternatives --set javaws $P -} - -pptail() { -# PortProblemTail -tail -f $1 | grep -E "LINK-3-UPDOWN|PORT-5-IF_DOWN_LINK_FAILURE|LINEPROTO-5-UPDOWN|PORT-5-IF_UP|CANNOT_BUNDLE|SNMP-4-HIGHCPU|Excessive Broadcast|Excessive CRC|Duplex Mismatch|Excessive late|Excessive link state|High collision|Excessive undersized|Excessive jabbering" -} - -sshcl() { -# ssh clogin - ENV=$1 - HOSTNAME=$2 - COMMAND=$3 - if [ "$1" == "ksa" ]; then - IP=10.140.8.100 - PAT="/var/lib/rancid/bin" - fi - if [ "$1" == "flw" ]; then - IP=10.140.8.100 - PAT="/var/lib/rancid/bin" - fi - if [ "$1" == "con" ]; then - IP=10.101.0.11 - PAT="/home/rancid/bin" - fi - - if [ "$3" != "" ]; then - ssh -l rancid $IP "$PAT/clogin -c \"$3\" $2" - else - ssh -l rancid $IP "$PAT/clogin $2" - fi -} - -sshh() { -# ssh hops - HOPS="" - HOPS=$@ - append="" - comd="" - for h in $HOPS - do - append="ssh -A -X -t $h " - comd=$comd$append - append="" - done - echo $comd - $comd -} - -sshl() { -# ssh local - if [ "$1" == "home" ]; then - echo "" - echo "ssh 127.0.0.1:822 -> ssh://debian1:22/" - echo "observium 127.0.0.1:880 -> http://debian1:80/" - echo "ssh 127.0.0.1:1322 -> ssh://omv3:22/" - echo "omv3 127.0.0.1:1380 -> http://omv3:80/" - echo "pyLoad 127.0.0.1:1388 -> http://omv3:8888/" - echo "asa 127.0.0.1:2443 -> https://asa:443/" - echo "phpvboxweb 127.0.0.1:580 -> http://server:80/phpvirtualbox" - echo "" - - sudo ssh -L 822:192.168.100.8:22 -L 880:192.168.100.8:80 -L 1322:192.168.100.13:22 -L 1380:192.168.100.13:80 -L 1388:192.168.100.13:8888 -L 2443:192.168.100.2:443 -L 580:192.168.100.5:80 andre@vpn-andregeissler.ddns.net -p 54321 - elif [ "$5" == "" ]; then - echo sshl LOKALER_PORT REMOTE_HOST REMOTE_PORT PROXYUSER PROXYSERVER - echo "Beispiel:" - echo " sshl 2222 192.168.100.13 8888 andre vpn-andregeissler.ddns.net" - echo " ermöglicht connect auf localhost:2222 um vom user andre auf " - echo " vpn-andregeissler.ddns.net auf 192.168.100.13:8888" - echo " getunnelt zu werden" - elif [ "$6" == "" ]; then - echo kein Port angegeben - ssh -L $1:$2:$3 $4@$5 - else - echo Port angegeben - ssh -L $1:$2:$3 S4@S% -p $6 - fi -} - -sshll() { -# listet die per ssh tunnel geöffneten lokalen ports auf - sudo lsof -i -n | grep ssh | grep 127.0.0.1 | grep LISTEN -} - -asdm() { - echo "https://$1" >> /home/andre/.java/deployment/security/exception.sites - javaws "https://$1/admin/public/asdm.jnlp" & -} - -asdmns() { - echo "Ermittele IP von Host $1 über DNS Server $2" - IP=`nslookup $1 $2 | tail -n2 | grep Address | cut -d':' -f2 | tr -d [:blank:]` - if [ "$IP" != "" ]; then - echo "IP ist $IP" - javaws "https://$IP/admin/public/asdm.jnlp" & - else - echo "IP ist unbekannt!" - fi -} - -svncom() { - if [ "$1" == "" ]; then - echo "Keine Datei angegeben" - return - fi - COMMIT=`cat $1 | grep "#SVN:"` - if [ "$COMMIT" == "" ]; then - echo "Geben Sie einen Kommentar ein:" - read INPUT - if [ "$INPUT" == "" ]; then - COMMIT="add #SVN: somewhere to your file to use this line as commit message." - else - COMMIT="#SVN:$INPUT" - fi - fi - echo "Übertrage mit Kommentar '$COMMIT'" - svn commit -m "$COMMIT" $1 -} - -screen_h() { +__screen_h() { echo " Ctrl+a c(reate) Ctrl+a n(ext) @@ -329,115 +326,86 @@ screen_h() { Ctrl+a \" (liste) Ctrl+a K(ill) screen -r(eattach) - # Scrollen, Markieren, Einfügen + # 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 + Ctrl+a ] fÃŒgt markierten Bereich ein " } -sudo_h() { +__sudo_h() { echo " /etc/sudoers andre ALL=(ALL) NOPASSWD: ALL " } -iptables_h() { +__iptables_h() { echo " - # Policy für Chain setzen + # 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) + # 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) + # 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) + # RÃŒcksprung aus Chain (nicht zwingend notwendig) iptables -A NEW_CHAIN -j RETURN - #Chain aus Chain entfernen + # Chain aus Chain entfernen iptables -D INPUT -j NEW_CHAIN - #Chain leeren (-F) / löschen (-X) + # 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 + " } -init.d_h() { - echo " - #!/bin/bash - ### BEGIN INIT INFO - # Provides: - # Required-Start: $local_fs $remote_fs $network - # Required-Stop: $local_fs $remote_fs $network - # Should-Start: - # Should-Stop: - # Default-Start: 2 3 4 5 - # Default-Stop: 0 1 6 - # Short-Description: - ### END INIT INFO - ACTION=$1 - PIDDIR=\"/var/run\" - PIDFILE=\"provides\" - VAR=\"\" - - function funktion { - if [ \"$1\" == \"START\" ]; then - fi - if [ \"$1\" == \"STOP\" ]; then - fi - } - - case $ACTION in - start) - funktion START - ;; - stop) - funktion STOP - ;; - reload) - funktion STOP - funktion START - ;; - status) - if [ -f $PIDDIR/$PIDFILE.pid ]; then - echo \"aktiv\" - exit - fi - echo \"nicht aktiv\" - ;; - esac - " -} - -install_ssh_key() { - echo $SSHK > /tmp/KEYFILE - echo $SSHKE >> /tmp/KEYFILE - scp /tmp/KEYFILE root@$1:/home/$USER/.ssh/authorized_keys - rm /tmp/KEYFILE -} - -delete_files_older() { +__delete_files_older() { if [ "$4" == "" ]; then echo "" echo "$0 " 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 "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" @@ -446,18 +414,18 @@ delete_files_older() { do if [ $3 == "f" ]; then if [ -f $I ]; then - echo "Lösche Datei $I" + 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" + 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)" + echo "Lösche Verzeichnis $I (nicht rekursiv)" rmdir $I fi fi @@ -466,12 +434,12 @@ delete_files_older() { fi } -delete_old_logs() { +__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 } -update_ssh_personal_environment() { +__ssh_personal_environment() { if [ $# -gt 0 -a "$1" = "--debug" ] ; then export SSH_PERS_ENV_DEBUG=1 shift @@ -489,18 +457,18 @@ update_ssh_personal_environment() { fi } -ssh_personal_config() { - echo "append to /etc/ssh/ssh_config" +__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" + 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" + 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" @@ -521,40 +489,7 @@ ssh_personal_config() { echo "" } -install_ssh_personal_config() { - #echo "append to /etc/ssh/ssh_config" - echo "# this content comes from the ssh-personal-environment package" >> /etc/ssh/ssh_config - echo "SendEnv SSH_PERS_ENV_DATA SSH_PERS_ENV_FILES SSH_PERS_ENV_DEBUG" >> /etc/ssh/ssh_config - echo "# end of content from the ssh-personal-environment package" >> /etc/ssh/ssh_config - - #echo "append to /etc/ssh/sshd_config" - echo "# this content comes from the ssh-personal-environment package" >> /etc/ssh/sshd_config - echo "AcceptEnv SSH_PERS_ENV_DATA SSH_PERS_ENV_FILES SSH_PERS_ENV_DEBUG" >> /etc/ssh/sshd_config - echo "# end of content from the ssh-personal-environment package" >> /etc/ssh/sshd_config - - #echo "insert into /etc/ssh/sshrc" - echo "#!/bin/sh" > /etc/ssh/sshrc - echo "if which xauth >/dev/null 2>&1 && read proto cookie && test \"\$DISPLAY\" ; then" >> /etc/ssh/sshrc - echo " if test \"\$(expr substr \"\$DISPLAY\" 1 10)\" = localhost: ; then" >> /etc/ssh/sshrc - echo " # X11UseLocalhost=yes" >> /etc/ssh/sshrc - echo " echo add unix:\"\$(expr substr \"\$DISPLAY\" 11 99)\" \$proto \$cookie" >> /etc/ssh/sshrc - echo " else" >> /etc/ssh/sshrc - echo " # X11UseLocalhost=no" >> /etc/ssh/sshrc - echo " echo add \"\$DISPLAY\" \$proto \$cookie" >> /etc/ssh/sshrc - echo " fi | xauth -q -" >> /etc/ssh/sshrc - echo "fi" >> /etc/ssh/sshrc - echo "# unpack personal environment" >> /etc/ssh/sshrc - echo "if test \"\$SSH_PERS_ENV_DATA\" ; then" >> /etc/ssh/sshrc - echo " if [ ! \"\$USER\" = \"root\" ] ; then" >> /etc/ssh/sshrc - echo " test \"\$SSH_PERS_ENV_DEBUG\" && echo \"Unpacking SSH Personal Environment Data...\"" >> /etc/ssh/sshrc - echo " echo \"\$SSH_PERS_ENV_DATA\" | base64 -d | tar \${SSH_PERS_ENV_DEBUG:+-v} -xzC ~" >> /etc/ssh/sshrc - echo " fi" >> /etc/ssh/sshrc - echo "fi" >> /etc/ssh/sshrc - chmod +x /etc/ssh/sshrc - /etc/init.d/ssh restart -} - -logrotate() { +__logrotate() { if [ "$1" == "" ] then echo "" @@ -576,251 +511,343 @@ logrotate() { tar -cvzf $date.tar.gz *.log # archiv verschieben mv $date.tar.gz $oldlogdir - # alte logs löschen + # alte logs löschen rm *.log popd } -cping() { - if [ "$1" == "" ] +__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 "" - echo "Aufruf:" - echo "" - echo "[RET=x] cping " - echo "" - echo "x: Anzahl Wiederholungen, E für endlos" + echo "rotate " 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 [ "$RET" == "" ] + if [ -f $file ] then - RET=1 - elif [ "$RET" == "E" ] - then - RET=2 - END=1 + 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 - echo "" - - for ((i=0; i < $RET; i++)) - do - ping -c1 -W1 $1 >/dev/null - RV=$? - if [ $RV -eq 0 ] - then - echo -e "\e[42;30m$1 is up\e[0m" - else - echo -e "\e[41m$1 is down\e[m" - fi - sleep 1; - if [ "$END" == "1" ] - then - i=$i-1 - fi - done - echo "" } -eping() { - if [ "$1" == "" ] - then - echo "" - echo "Aufruf:" - echo "" - echo "[RET=x] eping [IP2 [IP3 [IP4 [IP5 [IP6]]]]]" - echo "" - echo "x: Anzahl Wiederholungen, E für endlos" - echo "pingt bis zu 6 Adressen an und zeigt das Ergebnis in einer Tabelle" - echo "" - return - fi - - if [ "$RET" == "" ] - then - RET=1 - elif [ "$RET" == "E" ] - then - RET=2 - END=1 - fi - - CT=0 - for ((i=0; i < $RET; i++)) - do - N=$(($CT % 5)) - if [ "$(($CT % 20))" == "0" ] - then - echo "" - date - if [ "$1" != "" ] - then - echo -e "$1\t\c" - fi - - if [ "$2" != "" ] - then - echo -e "$2\t\c" - fi - - if [ "$3" != "" ] - then - echo -e "$3\t\c" - fi - - if [ "$4" != "" ] - then - echo -e "$4\t\c" - fi - - if [ "$5" != "" ] - then - echo -e "$5\t\c" - fi - - if [ "$6" != "" ] - then - echo -e "$6\t\c" - fi - - echo "" - fi - CT=$(($CT+1)) - - if [ "$1" != "" ] - then - ping -c1 -W1 $1 >/dev/null - RV1=$? - fi - - if [ "$2" != "" ] - then - ping -c1 -W1 $2 >/dev/null - RV2=$? - fi - - if [ "$3" != "" ] - then - ping -c1 -W1 $3 >/dev/null - RV3=$? - fi - - if [ "$4" != "" ] - then - ping -c1 -W1 $4 >/dev/null - RV4=$? - fi - - if [ "$5" != "" ] - then - ping -c1 -W1 $5 >/dev/null - RV5=$? - fi - - if [ "$6" != "" ] - then - ping -c1 -W1 $6 >/dev/null - RV6=$? - fi - - if [ "$1" != "" ] - then - if [ $RV1 -eq 0 ] - then - echo -e "\e[42;30mup\e[0m\t\t\c" - else - echo -e "\e[41mdown\e[m\t\t\c" - fi - fi - - if [ "$2" != "" ] - then - if [ $RV2 -eq 0 ] - then - echo -e "\e[42;30mup\e[0m\t\t\c" - else - echo -e "\e[41mdown\e[m\t\t\c" - fi - fi - - if [ "$3" != "" ] - then - if [ $RV3 -eq 0 ] - then - echo -e "\e[42;30mup\e[0m\t\t\c" - else - echo -e "\e[41mdown\e[m\t\t\c" - fi - fi - - if [ "$4" != "" ] - then - if [ $RV4 -eq 0 ] - then - echo -e "\e[42;30mup\e[0m\t\t\c" - else - echo -e "\e[41mdown\e[m\t\t\c" - fi - fi - - if [ "$5" != "" ] - then - if [ $RV5 -eq 0 ] - then - echo -e "\e[42;30mup\e[0m\t\t\c" - else - echo -e "\e[41mdown\e[m\t\t\c" - fi - fi - - if [ "$6" != "" ] - then - if [ $RV6 -eq 0 ] - then - echo -e "\e[42;30mup\e[0m\t\t\c" - else - echo -e "\e[41mdown\e[m\t\t\c" - fi - fi - - sleep 1; - if [ "$END" == "1" ] - then - i=$i-1 - fi - echo "" - done - echo "" +__wetter () { + c=$1 + curl wttr.in/$c } -mount_all() { - mkdir -p ~/mnt-homes - mkdir -p ~/mnt-alle - sudo mount //192.168.100.13/homes ~/mnt-homes/ -o user=andre - sudo mount //192.168.100.13/alle ~/mnt-alle/ -o user=andre - - #sudo umount /mnt/hidrive - - #sudo mkdir -p /mnt/hidrive - #sudo chown $USER:$USER -R /mnt/ - - #ID=`id -u` - #sudo mount -t cifs //10.1.1.4/data/ /mnt/idefix/ -ouid=$ID,gid=$ID,username=ageissler,domain=conacc,password=K01v1kk0! - #sudo mount -t cifs //dlink/1TB /mnt/dlink/ -ouid=$ID,gid=$ID,username=root,password=K01v1kk0! - #sudo mount -t cifs //dlink/User /mnt/dlink2/ -ouid=$ID,gid=$ID,username=root,password=K01v1kk0! +__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 } -mkdir -p ~/.ssh/ -touch ~/.ssh/authorized_keys -if [[ -f ~/.ssh/authorized_keys ]] ; then - cat ~/.ssh/authorized_keys | grep "$SSHK" > /dev/null 2>&1 - if [[ $? == "1" ]] ; then - echo "$SSHK" >> ~/.ssh/authorized_keys - fi - cat ~/.ssh/authorized_keys | grep "$SSHKE" > /dev/null 2>&1 - if [[ $? == "1" ]] ; then - echo "$SSHKE" >> ~/.ssh/authorized_keys - fi +__ssh_env () { + u=$1 + s=$2 + + ssh-copy-id -oStrictHostKeyChecking=no -i ~/.ssh/id_ed25519 $u@$s > /dev/null 2>&1 + scp ~/.bashrc $u@$s:~/.bash_profile + + ssh -q -X -oStrictHostKeyChecking=no $u@$s +} + +__crossword () { + grep -hi "^$1\$" /usr/share/dict/* | sort | uniq +} + +__install_ssh_keypair_files () { + mkdir ~/.ssh/ + echo "-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACAZREl5zjYh3/3Gs1WXI7Yt4spiWHMCbx3PK+jnexG+hwAAAKDS7Hi00ux4 +tAAAAAtzc2gtZWQyNTUxOQAAACAZREl5zjYh3/3Gs1WXI7Yt4spiWHMCbx3PK+jnexG+hw +AAAECdSCzE3tYW7sk3s8P6BQSvf8c52Jtz8n3bC963bJtj9hlESXnONiHf/cazVZcjti3i +ymJYcwJvHc8r6Od7Eb6HAAAAGGFnZWlzc2xlci50dXguMjIxMjE0MTAwMgECAwQF +-----END OPENSSH PRIVATE KEY-----" > ~/.ssh/id_ed25519 + chmod 0600 ~/.ssh/id_ed25519 + + echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlESXnONiHf/cazVZcjti3iymJYcwJvHc8r6Od7Eb6H ageissler.tux.2212141002" > ~/.ssh/id_ed25519.pub + chmod 0600 ~/.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-----" > ~/.ssh/ansible_id_rsa + chmod 0600 ~/.ssh/ansible_id_rsa + + echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/gz8mIcQmAxOVbajBb0nO7jWI09TXfHn6kNg6E/43bSzu10qq3hatTPuuXgaU6Y/KMkGF0nt6nsufP3P9u1FrCtq5j175z3GCQjk6Mb5QOO9iKLO9fQV08d6j3C7YGc1+6SZlTKdReyfBy7lQAfeUMuvFT4KevMExzyzvAtgQ8ZtLHwEUWBW5F/0YIGZyr6cMNe09RT2WTYJIbQCTzfVuWbOPw2SFzvd4ls7TnLK3EU4kjujnzBsTOAJLkbaWFVm6i+W6M3N+TutrtoDcW12Q9CK5eQtVwQrMWS1JbAAIGke1TKeizgDt5EuWk4k5YovXv6wrcWT9SahgeKDVtCLx ansible" > ~/.ssh/ansible_id_rsa.pub + chmod 0600 ~/.ssh/ansible_id_rsa.pub +} + +__install_ssh_authorized_key () { + if [ "$1" == "" ] + then + echo "Installiert ssh-ed25519 in ~/.ssh/authorized_keys" + __prompt_confirm "Weiter?" || return 0 + echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlESXnONiHf/cazVZcjti3iymJYcwJvHc8r6Od7Eb6H ageissler.tux.2212141002" >> ~/.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="/home/andre/perl5/bin${PATH:+:${PATH}}"; export PATH; +PERL5LIB="/home/andre/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB; +PERL_LOCAL_LIB_ROOT="/home/andre/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT; +PERL_MB_OPT="--install_base \"/home/andre/perl5\""; export PERL_MB_OPT; +PERL_MM_OPT="INSTALL_BASE=/home/andre/perl5"; export PERL_MM_OPT; + +rm -f ~/.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) + + if [ "$OS" == "" ]; then + if [ ! -f ~/bike.jpg ]; then + timeout 3 scp -o ConnectTimeout=2 -P 2222 andregeissler@vesta.agserver.de:~/web/tools.andregeissler.de/public_html/bike.jpg ~/bike.jpg + fi + if [ ! -f ~/ascii-image-converter ]; then + timeout 3 scp -o ConnectTimeout=2 -P 2222 andregeissler@vesta.agserver.de:~/web/tools.andregeissler.de/public_html/ascii-image-converter ~/ascii-image-converter + fi + if echo "$-" | grep i > /dev/null; then + echo ; ~/ascii-image-converter -C ~/bike.jpg -d 80,23 | tr "@" " " ; echo + fi + fi fi -