Compare commits

...

144 Commits

Author SHA1 Message Date
2a7248134c rootfs/etc/hosts aktualisiert 2026-03-27 21:39:29 +01:00
9143f963ec rootfs/etc/hosts aktualisiert 2026-03-27 21:06:30 +01:00
6feb6c1b8e rootfs/home/andre/.bashrc aktualisiert 2026-03-06 08:46:23 +01:00
9f771ff2ab rootfs/home/andre/init.sh aktualisiert 2026-03-06 08:42:25 +01:00
ee964aed89 rootfs/home/andre/init.sh aktualisiert 2026-03-06 08:41:09 +01:00
5952c420ad rootfs/home/andre/init.sh aktualisiert 2026-03-06 08:40:52 +01:00
4e75614ab5 rootfs/home/andre/.gitconfig aktualisiert 2026-03-06 08:35:45 +01:00
9d41dce4e4 rootfs/home/andre/init.sh hinzugefügt 2026-03-06 08:31:46 +01:00
4195df9655 rootfs/home/andre/.bashrc aktualisiert 2026-03-05 12:01:37 +01:00
1aaa5359e3 rootfs/home/andre/bash_extensions/arg_ssh.bash aktualisiert 2026-03-05 11:59:53 +01:00
b62d19d211 rootfs/home/andre/.bashrc aktualisiert 2026-03-05 11:50:43 +01:00
b93afef350 rootfs/home/andre/.bashrc aktualisiert 2026-03-05 11:48:53 +01:00
a2abf7978f rootfs/home/andre/.bashrc aktualisiert 2026-03-05 11:33:03 +01:00
68a27e2912 rootfs/home/andre/.bashrc aktualisiert 2026-03-05 11:20:58 +01:00
d14290ba17 rootfs/home/andre/.bashrc aktualisiert 2026-03-05 11:16:29 +01:00
4da8e4447f rootfs/home/andre/git-sync.READ.ME aktualisiert 2026-03-04 20:59:33 +01:00
f462553901 rootfs/home/andre/.vimrc aktualisiert 2026-03-04 20:59:19 +01:00
11667d32b7 rootfs/home/andre/git-sync.READ.ME hinzugefügt 2026-03-04 20:58:07 +01:00
57ddc6ad40 rootfs/home/andre/.vimrc hinzugefügt 2026-03-04 20:56:21 +01:00
9659070473 rootfs/home/git-sync-version aktualisiert 2026-03-04 20:52:49 +01:00
9afb203f97 rootfs/home/git-sync-version aktualisiert 2026-03-04 20:52:15 +01:00
be96f9818a rootfs/home/andre/git-sync-test gelöscht 2026-03-04 20:51:42 +01:00
f90c66598d rootfs/home/andre/.bashrc aktualisiert 2026-03-03 10:41:12 +01:00
1198a9af33 rootfs/home/andre/git-sync-test aktualisiert 2026-02-28 19:46:06 +01:00
7efbb28ac4 rootfs/etc/systemd/system/home-sync.service aktualisiert 2026-02-28 19:41:38 +01:00
148b1ed39e rootfs/etc/systemd/system/git-sync.service aktualisiert 2026-02-28 19:41:10 +01:00
1bfd69d9a0 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-28 19:33:31 +01:00
efc5f719fc rootfs/etc/systemd/system/home-sync.service aktualisiert 2026-02-28 19:25:12 +01:00
b61edcd9f7 rootfs/etc/systemd/system/git-sync.service aktualisiert 2026-02-28 19:24:58 +01:00
ba17833609 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-28 19:21:00 +01:00
df804a3e15 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-28 18:58:40 +01:00
3f6845e0d9 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-28 18:56:25 +01:00
a62435a002 rootfs/etc/systemd/system/git-sync.service aktualisiert 2026-02-28 18:53:46 +01:00
eb05d5d7cd rootfs/etc/systemd/system/home-sync.service aktualisiert 2026-02-28 18:53:09 +01:00
20c8f06a76 rootfs/home/andre/home-sync.sh aktualisiert 2026-02-28 18:39:17 +01:00
09d812bfd0 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-28 18:38:20 +01:00
4b36911408 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-28 18:26:51 +01:00
4c3da24e36 rootfs/etc/systemd/system/home-sync.timer hinzugefügt 2026-02-28 18:25:51 +01:00
d93e5a3b55 rootfs/etc/systemd/system/home-sync.service hinzugefügt 2026-02-28 18:24:57 +01:00
8cfaaa3932 rootfs/etc/hosts aktualisiert 2026-02-28 17:11:56 +01:00
2fb6f53a8f rootfs/home/andre/.ssh/config aktualisiert 2026-02-27 12:40:58 +01:00
9665754b3e rootfs/home/andre/.ssh/config aktualisiert 2026-02-27 11:50:15 +01:00
1b5c1a8441 rootfs/home/andre/.ssh/config aktualisiert 2026-02-27 11:48:07 +01:00
acc0cb2f87 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-27 11:34:34 +01:00
c1d9f7d6e5 rootfs/home/homedirs aktualisiert 2026-02-26 19:13:14 +01:00
2e5ef5615f rootfs/home/homedirs aktualisiert 2026-02-26 19:12:36 +01:00
d9ec350e5b rootfs/home/homedirs aktualisiert 2026-02-26 19:12:25 +01:00
270f09b801 rootfs/home/homedirs aktualisiert 2026-02-26 19:07:54 +01:00
0cd6c272e1 rootfs/home/homedirs aktualisiert 2026-02-26 18:56:02 +01:00
d010f37c4a rootfs/home/homedirs aktualisiert 2026-02-26 18:46:07 +01:00
102eb2ee21 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-26 18:45:49 +01:00
672bbe009c rootfs/etc/systemd/system/git-sync.service aktualisiert 2026-02-26 18:43:28 +01:00
c277cbbf35 rootfs/home/homedirs aktualisiert 2026-02-26 18:32:39 +01:00
3d0a84d533 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-26 18:32:22 +01:00
8096166d57 rootfs/home/homedirs aktualisiert 2026-02-26 18:23:57 +01:00
c31d0316ed rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-26 18:20:14 +01:00
d5a64ae3a3 rootfs/usr/local/bin/git-sync.sh aktualisiert 2026-02-26 16:00:09 +01:00
db48915322 rootfs/home/andre/.bashrc aktualisiert 2026-02-26 12:49:57 +01:00
e77122f7c7 rootfs/home/homedirs aktualisiert 2026-02-26 12:47:35 +01:00
1c9a2ef0b9 rootfs/home/andre/.bashrc aktualisiert 2026-02-26 12:47:20 +01:00
8856de889c rootfs/home/andre/.bashrc aktualisiert 2026-02-25 12:55:28 +01:00
457bd31614 rootfs/home/andre/.bashrc aktualisiert 2026-02-24 16:01:25 +01:00
2059ae595e rootfs/home/andre/.bashrc aktualisiert 2026-02-23 12:57:42 +01:00
a3786b84da rootfs/home/andre/.bashrc aktualisiert 2026-02-20 14:49:11 +01:00
a46c01158d rootfs/home/homedirs aktualisiert 2026-02-18 10:59:57 +01:00
6953b4f80f rootfs/home/andre/.bashrc aktualisiert 2026-01-29 13:40:12 +01:00
2561a790ec rootfs/home/andre/.bashrc aktualisiert 2026-01-29 12:02:41 +01:00
1ec5e48223 rootfs/home/andre/.tmux.conf aktualisiert 2026-01-28 08:17:43 +01:00
1cd30dc830 rootfs/home/andre/.bashrc aktualisiert 2026-01-28 08:16:36 +01:00
f36acc7dfc rootfs/home/homedirs aktualisiert 2026-01-26 21:18:02 +01:00
35c35c10db rootfs/home/andre/.bashrc aktualisiert 2026-01-21 21:08:13 +01:00
826ef798e2 rootfs/etc/hosts aktualisiert 2026-01-21 09:14:44 +01:00
c4e41f4db0 rootfs/home/andre/.bashrc aktualisiert 2026-01-21 09:10:24 +01:00
bd61a52048 rootfs/home/andre/.bashrc aktualisiert 2026-01-21 09:08:17 +01:00
0376cc9f27 rootfs/etc/bash_completion.d/clogin-completion.bash aktualisiert 2026-01-21 08:58:24 +01:00
c362866a8e rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:56:38 +01:00
50ba92d00c rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:55:05 +01:00
0ddd3196fc rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:51:11 +01:00
fb6489c925 rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:50:25 +01:00
aeec088d14 rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:48:22 +01:00
5f82587196 rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:45:06 +01:00
1f023121da rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:42:01 +01:00
faf9f0a3c1 rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:35:43 +01:00
eaad5c3a0c rootfs/home/andre/.bashrc aktualisiert 2026-01-21 08:29:15 +01:00
0892da3971 rootfs/home/andre/.bashrc aktualisiert 2026-01-21 07:57:03 +01:00
6fd73cff74 rootfs/home/andre/.bashrc aktualisiert 2026-01-20 20:21:06 +01:00
841d229e26 rootfs/home/andre/.bashrc aktualisiert 2026-01-20 20:15:21 +01:00
02195dac92 rootfs/home/andre/.bashrc aktualisiert 2026-01-20 20:10:36 +01:00
f44e62dd62 rootfs/home/andre/.bashrc aktualisiert 2026-01-20 20:06:36 +01:00
a90b46fffb rootfs/home/andre/.bashrc aktualisiert 2026-01-20 18:09:11 +01:00
8fa7e501a8 rootfs/home/andre/.bashrc aktualisiert 2026-01-20 18:03:07 +01:00
059a33a988 rootfs/home/andre/.bashrc aktualisiert 2026-01-18 13:26:47 +01:00
8976ade8c2 rootfs/home/andre/git-sync-install.sh aktualisiert 2026-01-13 12:48:24 +01:00
b2528558cb rootfs/home/andre/.bashrc aktualisiert 2026-01-13 12:22:39 +01:00
31d4f0a7aa rootfs/home/andre/.ssh/config aktualisiert 2026-01-13 12:09:21 +01:00
20942d9cb1 rootfs/home/andre/.bashrc aktualisiert 2026-01-12 17:41:02 +01:00
667f331ce7 rootfs/home/andre/.bashrc aktualisiert 2026-01-11 12:19:11 +01:00
cf2aa8352d rootfs/home/andre/.bashrc aktualisiert 2026-01-11 12:13:00 +01:00
a7f64d366c rootfs/home/andre/.bashrc aktualisiert 2026-01-11 12:06:46 +01:00
e38d35266e rootfs/home/andre/.bashrc aktualisiert 2026-01-11 11:50:38 +01:00
9887ade30b rootfs/home/andre/.bashrc aktualisiert 2026-01-10 19:05:10 +01:00
9ebd76045b rootfs/home/andre/.bashrc aktualisiert 2026-01-10 19:02:29 +01:00
215781ab36 rootfs/home/andre/.bashrc aktualisiert 2026-01-10 18:59:25 +01:00
5008d3042c rootfs/home/andre/.bashrc aktualisiert 2026-01-10 18:55:29 +01:00
96e8a999dd rootfs/home/andre/.bashrc aktualisiert 2026-01-10 13:33:41 +01:00
557d6b8af5 rootfs/home/andre/.bashrc aktualisiert 2026-01-10 13:27:10 +01:00
cdcf538780 rootfs/home/andre/.bashrc aktualisiert 2026-01-10 13:25:30 +01:00
7c9bc71489 rootfs/home/andre/.bashrc aktualisiert 2026-01-10 13:21:45 +01:00
5ad1054825 rootfs/home/andre/.bashrc aktualisiert 2026-01-10 13:19:07 +01:00
660a84d7cd rootfs/home/andre/.ssh/config aktualisiert 2026-01-10 13:15:31 +01:00
24609df730 rootfs/home/andre/.bashrc aktualisiert 2026-01-10 13:14:43 +01:00
33fed6afac rootfs/home/andre/.ssh/config aktualisiert 2026-01-10 13:05:20 +01:00
6cad538832 rootfs/home/andre/.ssh/config aktualisiert 2026-01-10 13:04:19 +01:00
ccf0c11241 rootfs/home/andre/.ssh/config aktualisiert 2026-01-10 13:01:21 +01:00
522c04a70c rootfs/home/andre/.ssh/config aktualisiert 2026-01-10 12:50:28 +01:00
5c29e93a72 rootfs/home/andre/.ssh/config aktualisiert 2026-01-10 12:46:12 +01:00
fc32bf7138 rootfs/home/andre/.ssh/config aktualisiert 2026-01-09 14:44:00 +01:00
0a0e702a5e rootfs/home/andre/.ssh/config aktualisiert 2026-01-09 14:13:10 +01:00
10c7900722 rootfs/home/andre/.ssh/config aktualisiert 2026-01-09 14:02:27 +01:00
055f82f923 rootfs/home/andre/.ssh/config aktualisiert 2026-01-09 13:45:08 +01:00
08b020b345 rootfs/home/andre/.ssh/config aktualisiert 2026-01-09 12:31:00 +01:00
dc653b6093 rootfs/home/andre/.ssh/config aktualisiert 2026-01-09 12:22:59 +01:00
41776109fe rootfs/home/andre/.ssh/config aktualisiert 2026-01-09 12:14:15 +01:00
7f74549ff8 rootfs/home/andre/.ssh/config aktualisiert 2026-01-09 12:03:56 +01:00
1b2fad60ad rootfs/home/andre/.bashrc aktualisiert 2026-01-08 16:53:29 +01:00
754c0602f3 rootfs/home/andre/.ssh/config aktualisiert 2026-01-08 15:28:07 +01:00
cd397820ec rootfs/home/andre/.ssh/config aktualisiert 2026-01-08 15:16:23 +01:00
e6039bf42a rootfs/home/andre/.ssh/config aktualisiert 2026-01-08 15:09:25 +01:00
6605bf1e06 rootfs/home/andre/.ssh/config aktualisiert 2026-01-08 15:06:11 +01:00
36268721e1 rootfs/home/andre/.ssh/config aktualisiert 2026-01-08 15:02:14 +01:00
d4bb7dc700 rootfs/home/andre/.bashrc aktualisiert 2026-01-06 13:32:08 +01:00
2739529af3 rootfs/home/andre/.bashrc aktualisiert 2026-01-06 10:09:51 +01:00
044e59366e rootfs/home/andre/.bashrc aktualisiert 2025-12-30 11:52:01 +01:00
d012debb94 rootfs/home/andre/.bashrc aktualisiert 2025-12-30 11:41:30 +01:00
eda0139d82 rootfs/etc/bash_completion.d/clogin-completion.bash aktualisiert 2025-12-30 11:35:26 +01:00
65d946a039 rootfs/home/andre/.gitconfig-conet aktualisiert 2025-12-29 15:19:56 +01:00
3de950869a rootfs/home/andre/.ssh/config aktualisiert 2025-12-29 15:15:56 +01:00
4e5cfd8b2d rootfs/home/andre/.ssh/config aktualisiert 2025-12-29 15:04:04 +01:00
074db5f041 rootfs/home/andre/.ssh/config aktualisiert 2025-12-29 14:41:09 +01:00
34921bc200 rootfs/home/andre/.ssh/config aktualisiert 2025-12-29 14:36:45 +01:00
a909b0573e rootfs/home/homedirs aktualisiert 2025-12-22 07:59:03 +01:00
91473802c5 rootfs/etc/hosts aktualisiert 2025-12-19 22:38:53 +01:00
6b9f5b75b8 rootfs/home/homedirs aktualisiert 2025-12-19 22:22:10 +01:00
ca72e87b8b READ.ME aktualisiert 2025-12-19 22:12:24 +01:00
21 changed files with 523 additions and 297 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View 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

View File

@@ -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,96 +325,88 @@ BG_LIGHTCYAN="\e[48;5;14m"
BG_WHITE="\e[48;5;15m"
BG_NO="\e[0;00m"
AddTimeDateToPictures () {
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}')
# 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")
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}')
# 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;
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;
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
}
AddTimeDateToPicturesMenu () {
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
@@ -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
bash $i
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

View File

@@ -1,4 +1,4 @@
[includeIf "gitdir:/home/andre/gits/conet/"]
[includeIf "gitdir:/home/andre/git/conet/"]
path = ~/.gitconfig-conet
[user]
name = Andre Geißler

View File

@@ -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/

View File

@@ -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

View File

@@ -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
View 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>

View File

@@ -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")
}
arg_ssh_tools
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 "#############################################################################################################"

View File

@@ -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

View File

@@ -1,3 +0,0 @@
#!/bin/bash
echo "#22"

View File

@@ -0,0 +1,3 @@
tmux: Ctrl+b Shift+s toggled SYNC zwischen den Fenstern
vim: <F6> toggled Syntax-Check

View File

@@ -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
View 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
"

View File

@@ -0,0 +1,2 @@
Stand: 04.03.2026 20:52

View File

View File

@@ -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