89 lines
2.4 KiB
Bash
89 lines
2.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
|
||
|
set -e
|
||
|
|
||
|
{ # failed download protection
|
||
|
|
||
|
|
||
|
cat > /etc/apt/sources.list <<EOF
|
||
|
deb http://mirror.hetzner.de/debian/packages buster main contrib non-free
|
||
|
deb http://mirror.hetzner.de/debian/packages buster-updates main contrib non-free
|
||
|
deb http://mirror.hetzner.de/debian/packages buster-backports main contrib non-free
|
||
|
deb http://mirror.hetzner.de/debian/security buster/updates main contrib non-free
|
||
|
EOF
|
||
|
apt update
|
||
|
|
||
|
|
||
|
echo "Install important system tools."
|
||
|
apt install -y htop ne iotop curl wget zsh figlet iptraf borgbackup systemd-cron apticron logwatch unattended-upgrades
|
||
|
|
||
|
|
||
|
echo "Use zsh!"
|
||
|
wget -q -O /root/.zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
|
||
|
cat >>/root/.zshrc << EOF
|
||
|
export LS_COLORS="*=00;37:rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:"
|
||
|
RED="$(tput setaf 1)"
|
||
|
ORANGE="$(tput setaf 3)"
|
||
|
BLUE="$(tput setaf 4)"
|
||
|
BLACK="$(tput sgr0)"
|
||
|
colorls() {
|
||
|
/bin/ls -lh --color=yes $@ | sed -e "s/ \([0-9,.]\+K\) / ${BLUE}\1${BLACK} /g" -e "s/ \([0-9.,]\+G\) / ${RED}\1${BLACK} /g" -e "s/ \([0-9.,]\+M\) / ${ORANGE}\1${BLACK} /g"
|
||
|
}
|
||
|
alias ls='command ls -h --color=auto'
|
||
|
alias l='colorls'
|
||
|
alias ll='colorls -A'
|
||
|
EOF
|
||
|
chsh -s /bin/zsh
|
||
|
|
||
|
|
||
|
echo "Setup hostname."
|
||
|
( exec ne /etc/hostname /etc/hosts )
|
||
|
hostname -F /etc/hostname
|
||
|
|
||
|
|
||
|
echo "Nice motd."
|
||
|
figlet `hostname -f | sed 's/\./ \. /g'` > /etc/motd
|
||
|
|
||
|
apt install -y ssmtp
|
||
|
( exec ne /etc/ssmtp/* )
|
||
|
|
||
|
|
||
|
echo "Disable unneeded getty"
|
||
|
for i in {4..6}; do
|
||
|
systemctl stop getty@tty$i.service
|
||
|
systemctl disable getty@tty$i.service
|
||
|
done
|
||
|
|
||
|
echo "setup systembackup"
|
||
|
if [ ! -f /root/.ssh/id_rsa ]; then
|
||
|
ssh-keygen
|
||
|
fi
|
||
|
cat /root/.ssh/id_rsa.pub
|
||
|
read -n 1 -p "Create backup account now" unused
|
||
|
|
||
|
wget -q -O /usr/local/sbin/systembackup https://code.camijo.de/gmueller/server-scripts/raw/master/systembackup
|
||
|
chmod +x /usr/local/sbin/systembackup
|
||
|
if [ ! -f /etc/systembackup.conf ]; then
|
||
|
PASSWD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32}`
|
||
|
cat >>/etc/systembackup.conf <<EOF
|
||
|
REPOSITORY=ssh://borg-@backup.camijo.de/~/repo
|
||
|
PASSPHRASE=$PASSWD
|
||
|
MYSQL=no
|
||
|
EOF
|
||
|
fi
|
||
|
( exec ne /etc/systembackup.conf )
|
||
|
|
||
|
if [ ! -f /etc/cron.d/systembackup ]; then
|
||
|
cat >>/etc/cron.d/systembackup <<EOF
|
||
|
18 */4 * * * root /usr/local/sbin/systembackup
|
||
|
EOF
|
||
|
fi
|
||
|
( exec ne /etc/cron.d/systembackup )
|
||
|
|
||
|
source /etc/systembackup.conf
|
||
|
BORG_PASSPHRASE=$PASSPHRASE borg init $REPOSITORY
|
||
|
|
||
|
}
|
||
|
|