Compare commits
144 Commits
fd1effa00e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 2a7248134c | |||
| 9143f963ec | |||
| 6feb6c1b8e | |||
| 9f771ff2ab | |||
| ee964aed89 | |||
| 5952c420ad | |||
| 4e75614ab5 | |||
| 9d41dce4e4 | |||
| 4195df9655 | |||
| 1aaa5359e3 | |||
| b62d19d211 | |||
| b93afef350 | |||
| a2abf7978f | |||
| 68a27e2912 | |||
| d14290ba17 | |||
| 4da8e4447f | |||
| f462553901 | |||
| 11667d32b7 | |||
| 57ddc6ad40 | |||
| 9659070473 | |||
| 9afb203f97 | |||
| be96f9818a | |||
| f90c66598d | |||
| 1198a9af33 | |||
| 7efbb28ac4 | |||
| 148b1ed39e | |||
| 1bfd69d9a0 | |||
| efc5f719fc | |||
| b61edcd9f7 | |||
| ba17833609 | |||
| df804a3e15 | |||
| 3f6845e0d9 | |||
| a62435a002 | |||
| eb05d5d7cd | |||
| 20c8f06a76 | |||
| 09d812bfd0 | |||
| 4b36911408 | |||
| 4c3da24e36 | |||
| d93e5a3b55 | |||
| 8cfaaa3932 | |||
| 2fb6f53a8f | |||
| 9665754b3e | |||
| 1b5c1a8441 | |||
| acc0cb2f87 | |||
| c1d9f7d6e5 | |||
| 2e5ef5615f | |||
| d9ec350e5b | |||
| 270f09b801 | |||
| 0cd6c272e1 | |||
| d010f37c4a | |||
| 102eb2ee21 | |||
| 672bbe009c | |||
| c277cbbf35 | |||
| 3d0a84d533 | |||
| 8096166d57 | |||
| c31d0316ed | |||
| d5a64ae3a3 | |||
| db48915322 | |||
| e77122f7c7 | |||
| 1c9a2ef0b9 | |||
| 8856de889c | |||
| 457bd31614 | |||
| 2059ae595e | |||
| a3786b84da | |||
| a46c01158d | |||
| 6953b4f80f | |||
| 2561a790ec | |||
| 1ec5e48223 | |||
| 1cd30dc830 | |||
| f36acc7dfc | |||
| 35c35c10db | |||
| 826ef798e2 | |||
| c4e41f4db0 | |||
| bd61a52048 | |||
| 0376cc9f27 | |||
| c362866a8e | |||
| 50ba92d00c | |||
| 0ddd3196fc | |||
| fb6489c925 | |||
| aeec088d14 | |||
| 5f82587196 | |||
| 1f023121da | |||
| faf9f0a3c1 | |||
| eaad5c3a0c | |||
| 0892da3971 | |||
| 6fd73cff74 | |||
| 841d229e26 | |||
| 02195dac92 | |||
| f44e62dd62 | |||
| a90b46fffb | |||
| 8fa7e501a8 | |||
| 059a33a988 | |||
| 8976ade8c2 | |||
| b2528558cb | |||
| 31d4f0a7aa | |||
| 20942d9cb1 | |||
| 667f331ce7 | |||
| cf2aa8352d | |||
| a7f64d366c | |||
| e38d35266e | |||
| 9887ade30b | |||
| 9ebd76045b | |||
| 215781ab36 | |||
| 5008d3042c | |||
| 96e8a999dd | |||
| 557d6b8af5 | |||
| cdcf538780 | |||
| 7c9bc71489 | |||
| 5ad1054825 | |||
| 660a84d7cd | |||
| 24609df730 | |||
| 33fed6afac | |||
| 6cad538832 | |||
| ccf0c11241 | |||
| 522c04a70c | |||
| 5c29e93a72 | |||
| fc32bf7138 | |||
| 0a0e702a5e | |||
| 10c7900722 | |||
| 055f82f923 | |||
| 08b020b345 | |||
| dc653b6093 | |||
| 41776109fe | |||
| 7f74549ff8 | |||
| 1b2fad60ad | |||
| 754c0602f3 | |||
| cd397820ec | |||
| e6039bf42a | |||
| 6605bf1e06 | |||
| 36268721e1 | |||
| d4bb7dc700 | |||
| 2739529af3 | |||
| 044e59366e | |||
| d012debb94 | |||
| eda0139d82 | |||
| 65d946a039 | |||
| 3de950869a | |||
| 4e5cfd8b2d | |||
| 074db5f041 | |||
| 34921bc200 | |||
| a909b0573e | |||
| 91473802c5 | |||
| 6b9f5b75b8 | |||
| ca72e87b8b |
5
READ.ME
5
READ.ME
@@ -3,7 +3,8 @@ Verzeichnis anlegen, Besitz anpassen, git clone
|
||||
|
||||
sudo mkdir -p /opt/git-sync
|
||||
sudo chown andre:andre /opt/git-sync
|
||||
sudo -u andre git clone http://c71a0c8e7e22b29018cbe9f02244d02765678b21@rdfhrn.synology.me:8418/andre/git-sync.git /opt/git-sync/
|
||||
|
||||
sudo -u andre git clone http://f65f0933836d845768e15ccbec40581ade496118@rdfhrn.synology.me:8418/andre/git-sync.git /opt/git-sync/
|
||||
#neu f65f0933836d845768e15ccbec40581ade496118
|
||||
#alt c71a0c8e7e22b29018cbe9f02244d02765678b21
|
||||
chmod +x /opt/git-sync/rootfs/home/andre/git-sync-install.sh
|
||||
bash /opt/git-sync/rootfs/home/andre/git-sync-install.sh
|
||||
@@ -6,10 +6,10 @@ _devices_rancid() {
|
||||
|
||||
if [ -f ~/router.db ];
|
||||
then
|
||||
# COMPREPLY=($(compgen -W "$(sed -n 's/\([^;]*\);.*$/\1/p' ~/router.db | sort -u)" -- $curw))
|
||||
# COMPREPLY=($(compgen -W "$(sed -n 's/\([^;]*\);.*$/\1/p' $HOME/router.db | sort -u)" -- $curw))
|
||||
# Verknüpft die auf Hostnamen reduzierte Ausgaben der Zeilen in router.db und der hosts
|
||||
# die Gesamtliste wird unique sortiert und für die completion verwendet
|
||||
COMPREPLY=($(compgen -W "$( (sed -n 's/\([^;]*\);.*$/\1/p' ~/router.db ; sed -n 's/^[^#]* \([^ ]*\)/\1/p' /etc/hosts) | sort -u )" -- $curw))
|
||||
COMPREPLY=($(compgen -W "$( (sed -n 's/\([^;]*\);.*$/\1/p' $HOME/router.db ; sed -n 's/^[^#]* \([^ ]*\)/\1/p' /etc/hosts) | sort -u )" -- $curw))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$( sed -n 's/^[^#]* \([^ ]*\)/\1/p' /etc/hosts | sort -u )" -- $curw))
|
||||
fi
|
||||
@@ -18,4 +18,5 @@ _devices_rancid() {
|
||||
complete -F _devices_rancid -o dirnames clogin
|
||||
complete -F _devices_rancid -o dirnames ping
|
||||
complete -F _devices_rancid -o dirnames ssh
|
||||
complete -F _devices_rancid -o dirnames __eping
|
||||
complete -F _devices_rancid -o dirnames cy-ssh
|
||||
complete -F _devices_rancid -o dirnames eping
|
||||
|
||||
@@ -19,6 +19,7 @@ ff02::2 ip6-allrouters
|
||||
192.168.100.5 openarchiver.lan
|
||||
192.168.100.5 paperless.lan
|
||||
192.168.100.5 portainer.lan
|
||||
192.168.100.5 gitea.lan
|
||||
192.168.100.5 server.lan server
|
||||
|
||||
192.168.100.129 adguard.lan
|
||||
@@ -28,6 +29,21 @@ ff02::2 ip6-allrouters
|
||||
192.168.100.134 endurain.lan
|
||||
|
||||
|
||||
192.168.100.250 synology.lan rdfhrn.synology.me
|
||||
192.168.100.250 synology.lan synology
|
||||
#rdfhrn.synology.me
|
||||
|
||||
78.46.82.234 vesta.agserver.de vesta
|
||||
|
||||
192.168.100.5 endurain.rproxy.home
|
||||
192.168.100.5 garmin.rproxy.home grafana.rproxy.home
|
||||
192.168.100.5 git.rproxy.home gitea.rproxy.home
|
||||
192.168.100.5 nas.rproxy.home synology.rproxy.home
|
||||
192.168.100.5 npm.rproxy.home proxy.rproxy.home rproxy.rproxy.home
|
||||
192.168.100.5 openarchiver.rproxy.home
|
||||
192.168.100.5 paperless.rproxy.home
|
||||
192.168.100.5 portainer.rproxy.home
|
||||
192.168.100.5 wallabag.rproxy.home
|
||||
192.168.100.5 adguard.rproxy.home
|
||||
192.168.100.5 ha.rproxy.home homeassistant.rproxy.home
|
||||
192.168.100.5 matter.rproxy.home
|
||||
192.168.100.5 observium.rproxy.home
|
||||
@@ -3,6 +3,6 @@ Description=Synchronize files from Git repository
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User=andre
|
||||
User=root
|
||||
WorkingDirectory=/opt/git-sync/
|
||||
ExecStart=/usr/local/bin/git-sync.sh
|
||||
ExecStart=bash /usr/local/bin/git-sync.sh
|
||||
9
rootfs/etc/systemd/system/home-sync.service
Normal file
9
rootfs/etc/systemd/system/home-sync.service
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Home Sync Script
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User=andre
|
||||
ExecStart=bash /home/andre/home-sync.sh
|
||||
18
rootfs/etc/systemd/system/home-sync.timer
Normal file
18
rootfs/etc/systemd/system/home-sync.timer
Normal file
@@ -0,0 +1,18 @@
|
||||
[Unit]
|
||||
Description=Run home-sync 5 minutes after boot and daily
|
||||
|
||||
[Timer]
|
||||
# 5 Minuten nach jedem Boot
|
||||
OnBootSec=5min
|
||||
|
||||
# 1x täglich
|
||||
OnCalendar=daily
|
||||
|
||||
# Falls der Rechner zur geplanten Zeit aus war,
|
||||
# wird es beim nächsten Start nachgeholt
|
||||
Persistent=true
|
||||
|
||||
Unit=home-sync.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -1,39 +1,27 @@
|
||||
###
|
||||
### Version vom 29. November 2025 (1)
|
||||
###
|
||||
#
|
||||
# set +o history; source <(curl -k https://tools.andregeissler.de/bashrc) ; set -o history; history -c
|
||||
#
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
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 RDPC='RDP 10.101.0.236'
|
||||
|
||||
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 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 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 mysudo='sudo bash --rcfile $HOMEDIR/.bashrc'
|
||||
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
test -r $HOMEDIR/.dircolors && eval "$(dircolors -b $HOMEDIR/.dircolors)" || eval "$(dircolors -b)"
|
||||
export GREP_COLORS='1;37;41'
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
@@ -49,19 +37,20 @@ fi
|
||||
export SSHUSER=ageissler
|
||||
export SSHPASS=G0ttAmH3rd
|
||||
export GPGKEY=13FAA6FC
|
||||
export MYSERVER=vesta.agserver.de
|
||||
|
||||
export EDITOR=vi
|
||||
# export PERL_MB_OPT="--install_base \"/home/andre/perl5\""
|
||||
# export PERL_MM_OPT="INSTALL_BASE=/home/andre/perl5"
|
||||
# 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/:/home/andre/scripts/:/home/andre/bin/:
|
||||
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`
|
||||
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
|
||||
@@ -78,17 +67,139 @@ shopt -s cmdhist
|
||||
shopt -s dotglob
|
||||
shopt -s interactive_comments
|
||||
shopt -s expand_aliases
|
||||
shopt -s extglob
|
||||
|
||||
__RDP() {
|
||||
cy-ssh() {
|
||||
set -euo pipefail
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "Usage: $0 <host> [ssh-options...]"
|
||||
return 0
|
||||
fi
|
||||
|
||||
HOST="$1"
|
||||
shift || true
|
||||
|
||||
# Defaults
|
||||
DOMAIN1="conadm.de"
|
||||
DOMAIN2="conacc.local"
|
||||
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" == con* ]]; then
|
||||
CYBERARK_USER="ageissler@root@${HOST}"
|
||||
fi
|
||||
|
||||
if [[ "$HOST" == conlxvmhub* ]]; then
|
||||
SSH_HOSTNAME="hosting"
|
||||
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" >/dev/null 2>&1 ; then
|
||||
# Versuche alternativen Hostname
|
||||
SSH_HOSTNAME_DOM="${SSH_HOSTNAME}.${DOMAIN1}"
|
||||
if ! getent hosts "$SSH_HOSTNAME_DOM" >/dev/null 2>&1; then
|
||||
SSH_HOSTNAME_DOM="${SSH_HOSTNAME}.${DOMAIN2}"
|
||||
if ! getent hosts "$SSH_HOSTNAME_DOM" >/dev/null 2>&1; then
|
||||
echo "
|
||||
! cy-ssh Fehler: \"${SSH_HOSTNAME}\" und \"${SSH_HOSTNAME}.${DOMAIN1}\" und \"${SSH_HOSTNAME}.${DOMAIN2}\" nicht auflösbar" >&2
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
SSH_HOSTNAME=$SSH_HOSTNAME_DOM
|
||||
fi
|
||||
|
||||
echo "Nutze $SSH_HOSTNAME"
|
||||
|
||||
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
|
||||
set +e
|
||||
"${CMD[@]}"
|
||||
|
||||
local exit_code=$?
|
||||
if [ $exit_code -ne 0 ]; then
|
||||
echo "
|
||||
! cy-ssh Fehler: SSH-Verbindung fehlgeschlagen."
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
RDP() {
|
||||
if [ "$1" == "" ]
|
||||
then
|
||||
echo 'call with __RDP <IP>'
|
||||
echo 'call with RDP <IP>'
|
||||
else
|
||||
xfreerdp /cert:ignore '/u:conacc\ageissler' '/p:FranziskaR439!' /dynamic-resolution /v:$1 &
|
||||
xfreerdp3 /cert:ignore /d:conacc /u:ageissler /p:Jaron2016! /dynamic-resolution /v:$1 &
|
||||
#xfreerdp /cert:ignore '/u:conacc\ageissler' '/p:FranziskaR439!' /dynamic-resolution /v:$1 &
|
||||
fi
|
||||
}
|
||||
|
||||
__prompt_confirm() {
|
||||
prompt_confirm() {
|
||||
while true; do
|
||||
read -r -n 1 -p "${1:-Weiter?} [j/n]: " REPLY
|
||||
case $REPLY in
|
||||
@@ -100,17 +211,7 @@ __prompt_confirm() {
|
||||
}
|
||||
# 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() {
|
||||
conv_owi() {
|
||||
IMG=$1
|
||||
PNG=${IMG}.png
|
||||
|
||||
@@ -155,45 +256,36 @@ __conv_owi() {
|
||||
fi
|
||||
}
|
||||
|
||||
__arg_help() {
|
||||
arg_h() {
|
||||
echo "
|
||||
Aliases
|
||||
ll ppm grep egrep
|
||||
|
||||
Weitere Aliases und Funktionen haben ein vorangestelltes __
|
||||
Aliases"
|
||||
cat $HOMEDIR/.bashrc | egrep "alias " | grep -v "#alias" | awk -F'=' '{print $1}' | awk '{print $2}' | sort | uniq | tr "\n" " "
|
||||
|
||||
Aliases
|
||||
backup_bashrc restore_bashrc backup_ssh_host_config restore_ssh_host_config extip
|
||||
echo "
|
||||
|
||||
Funktionen
|
||||
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
|
||||
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
|
||||
|
||||
ssh_host_config
|
||||
schreibt Verbindungs-Parameter in .ssh/config
|
||||
|
||||
install_ssh_keypair_files
|
||||
speichert Schlüsselpaar in ~/.ssh/id_ed25519[.pub]
|
||||
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 ~/.bash_profile
|
||||
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
|
||||
|
||||
ssh -o \"ProxyJump HOST\" user@server
|
||||
ssh via JumpHost HOST der kann in ~/.ssh/config vordefiniert werden
|
||||
"
|
||||
}
|
||||
|
||||
@@ -233,13 +325,41 @@ 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
|
||||
}
|
||||
|
||||
AddTimeDateToPictures () {
|
||||
AddGPSToPicture() {
|
||||
J=$1
|
||||
echo
|
||||
echo fügt Datum, Zeit und GPS Position aus den EXIF Daten ins Bild ein
|
||||
echo
|
||||
# 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}')
|
||||
|
||||
@@ -255,44 +375,7 @@ AddTimeDateToPictures () {
|
||||
DATETIMEFILEMOD=$(exiftool -m -p '$FileModifyDate' "$J")
|
||||
DATETIMEMOD=$(exiftool -m -p '$ModifyDate' "$J")
|
||||
|
||||
echo "Bild: $J"
|
||||
echo "1) $DATETIMEFILEMOD"
|
||||
echo "2) $DATETIME"
|
||||
echo "3) $DATETIMECREATE"
|
||||
echo "4) $DATETIMEORIG"
|
||||
echo "*) $DATETIMEMOD"
|
||||
|
||||
read -p "? " A
|
||||
case $A in
|
||||
1)
|
||||
DATETIME=$DATETIMEFILEMOD
|
||||
;;
|
||||
2)
|
||||
DATETIME=$DATETIME
|
||||
;;
|
||||
3)
|
||||
DATETIME=$DATETIMECREATE
|
||||
;;
|
||||
4)
|
||||
DATETIME=$DATETIMEORIG
|
||||
;;
|
||||
*)
|
||||
if [ "$A" == "" ]; then
|
||||
DATETIME=$DATETIMEMOD
|
||||
else
|
||||
DATETIME=$A
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
POSITION=$(exiftool -m -p '$GPSPosition' "$J" -c \"%+.6f\")
|
||||
if [ -z "$POSITION" ]; then
|
||||
echo Position fehlt
|
||||
return
|
||||
fi
|
||||
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}')
|
||||
|
||||
@@ -314,12 +397,13 @@ AddTimeDateToPictures () {
|
||||
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;
|
||||
}
|
||||
|
||||
# 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;
|
||||
FS2=$(bc -l <<< "$FS+25" | awk -F. '{print $1}')
|
||||
convert $J -gravity North -pointsize $FS -font Courier-Bold -fill red -undercolor black -annotate +0+$FS2 "Position $POSITION" $J;
|
||||
|
||||
AddTimestampToPictures() {
|
||||
for file in "$@"; do
|
||||
AddTimestampToPicture $file
|
||||
done
|
||||
}
|
||||
|
||||
AddTimeDateToPicturesMenu() {
|
||||
@@ -393,7 +477,6 @@ print "$s";
|
||||
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;
|
||||
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;
|
||||
@@ -401,7 +484,7 @@ print "$s";
|
||||
}
|
||||
|
||||
|
||||
__sysinfo() {
|
||||
sysinfo() {
|
||||
if [ "$USER" != "root" ]; then
|
||||
echo -e $C_RED$BG_WHITE"Not root"$C_NO
|
||||
return
|
||||
@@ -428,10 +511,10 @@ __sysinfo() {
|
||||
|
||||
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
|
||||
sudo dmidecode | grep Base -A 10 | grep Manufact
|
||||
sudo dmidecode | grep Base -A 10 | grep Product
|
||||
sudo dmidecode | grep Base -A 10 | grep Version
|
||||
sudo dmidecode | grep Base -A 10 | grep Serial
|
||||
|
||||
echo ""
|
||||
echo -e $C_LIGHTGREEN"Memory Info"$C_NO
|
||||
@@ -449,7 +532,7 @@ __sysinfo() {
|
||||
echo -n "free "; free -m | grep Swap | awk '{ print $4 }'
|
||||
}
|
||||
|
||||
__screen_h() {
|
||||
screen_h() {
|
||||
echo "
|
||||
Ctrl+a c(reate)
|
||||
Ctrl+a n(ext)
|
||||
@@ -467,14 +550,14 @@ __screen_h() {
|
||||
"
|
||||
}
|
||||
|
||||
__sudo_h() {
|
||||
sudo_h() {
|
||||
echo "
|
||||
/etc/sudoers
|
||||
andre ALL=(ALL) NOPASSWD: ALL
|
||||
"
|
||||
}
|
||||
|
||||
__iptables_h() {
|
||||
iptables_h() {
|
||||
echo "
|
||||
# Policy fÃŒr Chain setzen
|
||||
iptables -P INPUT ACCEPT
|
||||
@@ -530,7 +613,7 @@ COMMIT
|
||||
}
|
||||
|
||||
|
||||
__delete_files_older() {
|
||||
delete_files_older() {
|
||||
if [ "$4" == "" ]; then
|
||||
echo ""
|
||||
echo "$0 <Pfad> <Tage> <d|f> <r|n>"
|
||||
@@ -567,12 +650,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
|
||||
}
|
||||
|
||||
__ssh_personal_environment() {
|
||||
ssh_personal_environment() {
|
||||
if [ $# -gt 0 -a "$1" = "--debug" ] ; then
|
||||
export SSH_PERS_ENV_DEBUG=1
|
||||
shift
|
||||
@@ -590,7 +673,7 @@ __ssh_personal_environment() {
|
||||
fi
|
||||
}
|
||||
|
||||
__ssh_personal_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"
|
||||
@@ -622,7 +705,7 @@ __ssh_personal_config() {
|
||||
echo ""
|
||||
}
|
||||
|
||||
__logrotate() {
|
||||
logrotate() {
|
||||
if [ "$1" == "" ]
|
||||
then
|
||||
echo ""
|
||||
@@ -649,7 +732,7 @@ __logrotate() {
|
||||
popd
|
||||
}
|
||||
|
||||
__e1ping() {
|
||||
e1ping() {
|
||||
while (( "$#" ))
|
||||
do
|
||||
ping -W 1 -O -i 1 -c 1 $1 >/dev/null
|
||||
@@ -666,7 +749,7 @@ __e1ping() {
|
||||
echo
|
||||
}
|
||||
|
||||
__eping() {
|
||||
eping() {
|
||||
P=""
|
||||
while (( "$#" ))
|
||||
do
|
||||
@@ -683,28 +766,28 @@ __eping() {
|
||||
I=0
|
||||
date
|
||||
fi
|
||||
__e1ping $P
|
||||
e1ping $P
|
||||
sleep 1
|
||||
I=`expr $I + 1`
|
||||
done
|
||||
}
|
||||
|
||||
__find_local_port() {
|
||||
find_local_port() {
|
||||
N=$(($RANDOM + 10000))
|
||||
echo $N
|
||||
}
|
||||
|
||||
__find_local_ip() {
|
||||
find_local_ip() {
|
||||
I=$(($RANDOM % 250))
|
||||
echo $I
|
||||
}
|
||||
|
||||
__find_session_id() {
|
||||
find_session_id() {
|
||||
S=`date +"%s"`
|
||||
echo $S
|
||||
}
|
||||
|
||||
__update_git() {
|
||||
update_git() {
|
||||
echo "Gehe durch Unterverzeichnisse für git pulls"
|
||||
for DIR in `ls`
|
||||
do
|
||||
@@ -716,7 +799,7 @@ __update_git() {
|
||||
done
|
||||
}
|
||||
|
||||
__pw() {
|
||||
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'
|
||||
@@ -836,7 +919,7 @@ rm ziffern
|
||||
|
||||
}
|
||||
|
||||
__rotate () {
|
||||
rotate() {
|
||||
file=$1
|
||||
if [ "$file" == "" ]
|
||||
then
|
||||
@@ -866,12 +949,12 @@ __rotate () {
|
||||
fi
|
||||
}
|
||||
|
||||
__wetter () {
|
||||
wetter() {
|
||||
c=$1
|
||||
curl wttr.in/$c
|
||||
}
|
||||
|
||||
__wi () {
|
||||
wi() {
|
||||
f=$1
|
||||
d=$(date "+%Y-%m-%d")
|
||||
rotate $f.bu.$d > /dev/null 2>&1
|
||||
@@ -879,113 +962,50 @@ __wi () {
|
||||
vi -c ":syntax on" -c "set number" $f
|
||||
}
|
||||
|
||||
__ssh_env () {
|
||||
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-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 () {
|
||||
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
|
||||
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;
|
||||
|
||||
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
|
||||
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)
|
||||
if getent hosts ${MYSERVER} >/dev/null && nc -z -w1 ${MYSERVER} 2222 >/dev/null 2>&1; then
|
||||
if [ ! -f $HOMEDIR/bike.jpg ]; then
|
||||
timeout 3 scp -o ConnectTimeout=2 -P 2222 andregeissler@${MYSERVER}:/home/andregeissler/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@${MYSERVER}:/home/andregeissler/web/tools.andregeissler.de/public_html/ascii-image-converter $HOMEDIR/ascii-image-converter
|
||||
fi
|
||||
else
|
||||
echo "${MYSERVER} nicht erreichbar"
|
||||
fi
|
||||
|
||||
### 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 ~/bash_extensions/*.bash`
|
||||
do
|
||||
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 ~/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
|
||||
if [ -f $HOMEDIR/ascii-image-converter ] && [ -f $HOMEDIR/bike.jpg ]; then
|
||||
echo; $HOMEDIR/ascii-image-converter -C $HOMEDIR/bike.jpg -d 80,23 | tr "@" " " ; echo
|
||||
fi
|
||||
fi
|
||||
@@ -1,4 +1,4 @@
|
||||
[includeIf "gitdir:/home/andre/gits/conet/"]
|
||||
[includeIf "gitdir:/home/andre/git/conet/"]
|
||||
path = ~/.gitconfig-conet
|
||||
[user]
|
||||
name = Andre Geißler
|
||||
|
||||
@@ -6,3 +6,6 @@
|
||||
[user]
|
||||
name = Andre Geißler
|
||||
email = ageissler@conet.de
|
||||
|
||||
[url "https://ageissler:K01v1kk0!@gitlab.rproxy.conet-services.de/"]
|
||||
insteadOf = https://gitlab.rproxy.conet-services.de/
|
||||
@@ -24,7 +24,7 @@ Host jj
|
||||
User conetadm
|
||||
Host jjj
|
||||
HostKeyAlias jjj
|
||||
User conetadm
|
||||
User andre
|
||||
|
||||
Host ?l_jj ?d_jj svn_jj
|
||||
HostKeyAlias jj
|
||||
@@ -113,7 +113,7 @@ Host con* conlx* conmail*
|
||||
#ProxyCommand ssh -qW %h:%p jj
|
||||
UserKnownHostsFile /dev/null
|
||||
|
||||
Host switch-admin-*
|
||||
#Host switch-admin-*
|
||||
## Zeile notwendig wenn in Admin Umgebung
|
||||
# ProxyCommand none
|
||||
## In Finance Umgebung muss Proxy 'jj' genutzt werden
|
||||
@@ -130,13 +130,18 @@ Host switch-* router-* asa-* sophos-*
|
||||
PreferredAuthentications keyboard-interactive,password
|
||||
KbdInteractiveAuthentication yes
|
||||
PasswordAuthentication yes
|
||||
Ciphers aes128-cbc,aes256-cbc,aes192-ctr
|
||||
Ciphers +aes128-cbc,aes256-cbc,aes192-ctr
|
||||
KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
|
||||
HostKeyAlgorithms +ssh-rsa
|
||||
StrictHostKeyChecking no
|
||||
ForwardX11 no
|
||||
ProxyCommand ssh -qW %h:%p jj
|
||||
|
||||
Host gitlab.rproxy.conet-services.de
|
||||
User ageissler
|
||||
HostName gitlab.rproxy.conet-services.de
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
IdentitiesOnly yes
|
||||
|
||||
# set username
|
||||
Host a?_*
|
||||
User admin
|
||||
@@ -169,3 +174,5 @@ Host *
|
||||
CheckHostIP no
|
||||
ForwardX11 yes
|
||||
NoHostAuthenticationForLocalhost yes
|
||||
ServerAliveInterval 60
|
||||
ServerAliveCountMax 2
|
||||
@@ -6,9 +6,9 @@ bind S set-window-option synchronize-panes \; display-message "synchronize-panes
|
||||
set -g status-right "[#{?synchronize-panes,SYNC ON,SYNC OFF}] [%Y-%m-%d %H:%M:%S]"
|
||||
|
||||
# Hintergrundfarbe aller (inaktiven) Panes
|
||||
set -g window-style "bg=black"
|
||||
set -g window-style "bg=colour238"
|
||||
|
||||
# Hintergrundfarbe des aktiven Panes
|
||||
set -g window-active-style "bg=colour238"
|
||||
set -g window-active-style "bg=black"
|
||||
|
||||
set -g history-limit 20000
|
||||
|
||||
32
rootfs/home/andre/.vimrc
Normal file
32
rootfs/home/andre/.vimrc
Normal file
@@ -0,0 +1,32 @@
|
||||
" =========================
|
||||
" Basis-Einstellungen
|
||||
" =========================
|
||||
|
||||
" 1) Syntax-Highlighting / Syntax-Check aktivieren
|
||||
syntax on
|
||||
filetype plugin indent on
|
||||
|
||||
" Optional: automatische Syntaxprüfung mit :make (wenn Compiler/Linter konfiguriert ist)
|
||||
set autowrite
|
||||
set makeprg=
|
||||
|
||||
" 2) Mausunterstützung komplett abschalten
|
||||
set mouse=
|
||||
|
||||
" 3) Visuellen Modus deaktivieren
|
||||
nnoremap v <Nop>
|
||||
nnoremap V <Nop>
|
||||
nnoremap <C-v> <Nop>
|
||||
|
||||
" 4) Syntax per Ctrl+Shift+S toggeln
|
||||
function! ToggleSyntax()
|
||||
if exists("g:syntax_on")
|
||||
syntax off
|
||||
echo "Syntax OFF"
|
||||
else
|
||||
syntax on
|
||||
echo "Syntax ON"
|
||||
endif
|
||||
endfunction
|
||||
|
||||
nnoremap <F6> :call ToggleSyntax()<CR>
|
||||
@@ -2,6 +2,8 @@
|
||||
# Damit wird die Zertifikateprüfung nicht aufgehoben und es ist etwas sicherer ob das korrekte (dieses) Skript verwendet wird
|
||||
# source <(curl -s https://tools.andregeissler.de/modules/arg_ssh.bash)
|
||||
|
||||
MYSERVER=vesta.agserver.de
|
||||
|
||||
arg_ssh_tools () {
|
||||
curl -k -s https://tools.andregeissler.de/ssh/ageissler.tux.2212141001 > /tmp/okpri
|
||||
curl -k -s https://tools.andregeissler.de/ssh/ageissler.tux.2212141001.pub > /tmp/okpub
|
||||
@@ -24,7 +26,9 @@ arg_ssh_tools () {
|
||||
nows=$(date +"%Y.%m.%d_%H.%M.%S")
|
||||
}
|
||||
|
||||
if getent hosts ${MYSERVER} >/dev/null && nc -z -w1 ${MYSERVER} 2222 >/dev/null 2>&1; then
|
||||
arg_ssh_tools
|
||||
fi
|
||||
#cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.BU.$today
|
||||
|
||||
echo "#############################################################################################################"
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
sudo cp /opt/git-sync/rootfs/usr/local/bin/git-sync.sh /usr/local/bin/git-sync.sh
|
||||
sudo chmod +x /usr/local/bin/git-sync.sh
|
||||
cp /opt/git-sync/rootfs/usr/local/bin/git-sync.sh /usr/local/bin/git-sync.sh
|
||||
chmod +x /usr/local/bin/git-sync.sh
|
||||
|
||||
sudo cp /opt/git-sync/rootfs/etc/systemd/system/git-sync.service /etc/systemd/system/git-sync.service
|
||||
sudo chmod +x /etc/systemd/system/git-sync.service
|
||||
cp /opt/git-sync/rootfs/etc/systemd/system/git-sync.service /etc/systemd/system/git-sync.service
|
||||
chmod +x /etc/systemd/system/git-sync.service
|
||||
|
||||
sudo cp /opt/git-sync/rootfs/etc/systemd/system/git-sync.timer /etc/systemd/system/git-sync.timer
|
||||
sudo chmod +x /etc/systemd/system/git-sync.timer
|
||||
cp /opt/git-sync/rootfs/etc/systemd/system/git-sync.timer /etc/systemd/system/git-sync.timer
|
||||
chmod +x /etc/systemd/system/git-sync.timer
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now git-sync.timer
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now git-sync.timer
|
||||
|
||||
systemctl start git-sync.service
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "#22"
|
||||
3
rootfs/home/andre/git-sync.READ.ME
Normal file
3
rootfs/home/andre/git-sync.READ.ME
Normal file
@@ -0,0 +1,3 @@
|
||||
tmux: Ctrl+b Shift+s toggled SYNC zwischen den Fenstern
|
||||
|
||||
vim: <F6> toggled Syntax-Check
|
||||
@@ -6,12 +6,16 @@ SRC="/home/${USR}/"
|
||||
DEST="${USR}@${NAS}:/volume1/homes/${USR}/tux-home/"
|
||||
RSYNC_OPTS="-az --delete --partial --timeout=20"
|
||||
|
||||
echo "Prüfe ob NAS erreichbar ist"
|
||||
# Ping check (optional, verhindert lange Timeouts)
|
||||
ping -c1 ${NAS} >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "$(date): NAS unreachable"
|
||||
echo "$(date): NAS nicht erreichbar"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "NAS erreichbar. Starte rsync"
|
||||
# Sync starten
|
||||
rsync $RSYNC_OPTS "$SRC" "$DEST"
|
||||
|
||||
echo "Fertig"
|
||||
91
rootfs/home/andre/init.sh
Normal file
91
rootfs/home/andre/init.sh
Normal file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
$HOMEDIR=/home/andre
|
||||
|
||||
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 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlESXnONiHf/cazVZcjti3iymJYcwJvHc8r6Od7Eb6H ageissler.tux.2212141002" >> $HOMEDIR/.ssh/authorized_keys
|
||||
else
|
||||
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlESXnONiHf/cazVZcjti3iymJYcwJvHc8r6Od7Eb6H ageissler.tux.2212141002" >> $HOMEDIR/.ssh/authorized_keys
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
mkdir -p $HOMEDIR/Nextcloud
|
||||
mkdir -p $HOMEDIR/Nextcloud/adfc
|
||||
mkdir -p $HOMEDIR/Nextcloud/agserver
|
||||
mkdir -p $HOMEDIR/Nextcloud/conet
|
||||
mkdir -p $HOMEDIR/bin
|
||||
mkdir -p $HOMEDIR/git
|
||||
mkdir -p $HOMEDIR/svn
|
||||
mkdir -p $HOMEDIR/.ssh
|
||||
rm -f $HOMEDIR/.bash_profile
|
||||
|
||||
install_ssh_authorized_key
|
||||
install_ssh_keypair_files
|
||||
|
||||
sudo apt update -y
|
||||
sudo apt install jq git subversion imagemagick exiftool
|
||||
|
||||
cd $HOMEDIR/git
|
||||
git clone http://vpnafgeissler.selfhost.co:8418/andre/git-sync.git git-sync
|
||||
|
||||
|
||||
cd $HOMEDIR/svn
|
||||
svn co svn+ssh://rancid@10.101.0.11/home/rancid/basedir/SVN
|
||||
|
||||
echo "als root ausführen!!!
|
||||
cd /opt
|
||||
git clone http://vpnafgeissler.selfhost.co:8418/andre/git-sync.git git-sync
|
||||
bash /opt/git-sync/git-sync.sh
|
||||
"
|
||||
|
||||
|
||||
|
||||
2
rootfs/home/git-sync-version
Normal file
2
rootfs/home/git-sync-version
Normal file
@@ -0,0 +1,2 @@
|
||||
Stand: 04.03.2026 20:52
|
||||
|
||||
@@ -6,9 +6,14 @@ TARGET="/"
|
||||
# sicherstellen dass Repo existiert
|
||||
if [ ! -d "$REPO/.git" ]; then
|
||||
echo "Git-Repo nicht gefunden: $REPO"
|
||||
mkdir -p /opt/
|
||||
cd /opt
|
||||
echo "Klone Git-Repo nach /opt"
|
||||
git clone http://vpnafgeissler.selfhost.co:8418/andre/git-sync.git
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Aktualisiere Git-Repo"
|
||||
# Aktualisieren
|
||||
cd "$REPO" || exit 1
|
||||
git stash push -m "auto-sync"
|
||||
@@ -16,13 +21,26 @@ git pull --rebase
|
||||
git stash pop
|
||||
|
||||
|
||||
echo "Verteile Dateien"
|
||||
# Dateien verteilen (rootfs → /)
|
||||
sudo rsync -a rootfs/ "$TARGET"
|
||||
#sudo rsync --no-o --no-g -a rootfs/ "$TARGET"
|
||||
rsync -rltpD rootfs/ "$TARGET"
|
||||
|
||||
echo "Setze Besitz und Berechtigungen"
|
||||
chmod +x /usr/local/bin/*.sh
|
||||
chmod +x /home/andre/*.sh
|
||||
|
||||
chown andre:andre /home/andre/
|
||||
chown andre:andre /home/andre/* -R
|
||||
chown andre:andre /home/andre/.* -R
|
||||
chmod +x /home/andre/*.sh
|
||||
chmod 600 /home/andre/.ssh/*
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
echo "Systemd Daemon Reload"
|
||||
systemctl daemon-reload
|
||||
|
||||
echo "Services aktivieren"
|
||||
systemctl enable git-sync.timer
|
||||
systemctl enable home-sync.timer
|
||||
|
||||
echo "Fertig"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user