manage-gw-config/copy_gateway-config.sh
2017-04-10 16:12:45 +02:00

298 lines
10 KiB
Bash
Executable File

#!/bin/bash
user=chris
function usage() {
if [ -n "$1" ];then
echo -e "\nError: $1"
fi
cat<<EOF
`basename $0` - Copies gateway configuration into ${user}'s homedirectory
Usage: `basename $0` <network-name>
network-name possible values are:
NONE-WF
NONE-CKUBU
123
AK
AKB
ANW-URB
ANW-KM
B3-Bornim
CKUBU
FLR-BRB
GA-AL
GA-Ersatz
GA-NH
GA-Schloss
JONAS
Kanzlei-Kiel
MBR
OOLM
OPP
ReachOut
SPR-BE
WF
EOF
exit
}
[ $# -ne "1" ] && usage "wrong number of arguments"
_realpath=`which realpath`
if [ -z "$_realpath" ]; then
usage "realpath is not installed but neeeded"
fi
filesystem_prefix=""
if [ -d "/ro" ]; then
filesystem_prefix="/ro"
fi
_network=$1
homedir_user=`eval realpath ~$user`
_dir=${_network}-config
# - Delete existing Backup directory, to avoid having old (unused) files from
# - earlier configurations
#
rm -rf ${homedir_user}/${_dir}
mkdir -p ${homedir_user}/${_dir}
# - Nameserver Bind
# - /etc/bind/*
# -
if [[ -d "/etc/bind" ]] &&[[ "$(ls -A /etc/bind)" ]] ; then
tar -czpf ${homedir_user}/${_dir}/bind_${_network}.tar.gz -C ${filesystem_prefix}/etc bind
chown ${user}:${user} ${homedir_user}/${_dir}/bind_${_network}.tar.gz
fi
# - OpenVPN:
# - /etc/openvpn/*
# -
# - /root/.openvpn
# -
if [[ -d "${filesystem_prefix}/etc/openvpn" ]]; then
tar -czpf ${homedir_user}/${_dir}/openvpn_${_network}.tar.gz -C ${filesystem_prefix}/etc openvpn
chown ${user}:${user} ${homedir_user}/${_dir}/openvpn_${_network}.tar.gz
fi
if [ -d "/root/.openvpn" ]; then
tar -czpf ${homedir_user}/${_dir}/root-dot-opennvpndir_${_network}.tar.gz -C /root .openvpn
chown ${user}:${user} ${homedir_user}/${_dir}/root-dot-opennvpndir_${_network}.tar.gz
fi
# - DynDNS
# -
if [ -f "${filesystem_prefix}/etc/ddclient.conf" ]; then
cp ${filesystem_prefix}/etc/ddclient.conf ${homedir_user}/${_dir}/ddclient.conf.${_network}
fi
# - DHCP Server
# -
# - /etc/dhcp/dhcpd.conf - /etc/dhcp3/dhcpd.conf
# - /etc/dhcp/dhcpd6.conf - /etc/dhcp3/dhcpd6.conf
# -
# - /etc/dhcp/hosts.lan.conf # dhcp failover kanzlei kiel
# - /etc/dhcp/hosts.w-lan.conf # dhcp failover kanzlei kiel
# -
# - /etc/init.d/isc-dhcp6-server
# -
if [ -f "${filesystem_prefix}/etc/dhcp/dhcpd.conf" ];then
cp ${filesystem_prefix}/etc/dhcp/dhcpd.conf ${homedir_user}/${_dir}/dhcpd.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/dhcp/dhcpd6.conf" ];then
cp ${filesystem_prefix}/etc/dhcp/dhcpd6.conf ${homedir_user}/${_dir}/dhcpd6.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/dhcp3/dhcpd.conf" ];then
cp ${filesystem_prefix}/etc/dhcp3/dhcpd.conf ${homedir_user}/${_dir}/dhcpd.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/dhcp3/dhcpd6.conf" ];then
cp ${filesystem_prefix}/etc/dhcp3/dhcpd6.conf ${homedir_user}/${_dir}/dhcpd.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/init.d/isc-dhcp6-server" ]; then
cp ${filesystem_prefix}/etc/init.d/isc-dhcp6-server ${homedir_user}/${_dir}/isc-dhcp6-server.${_network}
fi
if [ -f "${filesystem_prefix}/etc/dhcp/hosts.lan.conf" ]; then
cp ${filesystem_prefix}/etc/dhcp/hosts.lan.conf ${homedir_user}/${_dir}/hosts.lan.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/dhcp/hosts.w-lan.conf" ]; then
cp ${filesystem_prefix}/etc/dhcp/hosts.w-lan.conf ${homedir_user}/${_dir}/hosts.w-lan.conf.${_network}
fi
# - DSL PPP
# -
# - /etc/ppp/peers/*
# -
# - /etc/ppp/pap-secrets
# - /etc/ppp/chap-secrets
# -
# - /etc/ppp/ip-up.d/email_notice
# -
if [[ -d "/etc/ppp/peers" ]] && [[ "$(ls -A /etc/ppp/peers)" ]] ; then
tar -czpf ${homedir_user}/${_dir}/etc_ppp_peers_${_network}.tar.gz -C ${filesystem_prefix}/etc/ppp/ peers
chown ${user}:${user} ${homedir_user}/${_dir}/etc_ppp_peers_${_network}.tar.gz
fi
if [[ -f "${filesystem_prefix}/etc/ppp/pap-secrets" ]] ; then
cp ${filesystem_prefix}/etc/ppp/pap-secrets ${homedir_user}/${_dir}/pap-secrets.${_network}
fi
if [[ -f "${filesystem_prefix}/etc/ppp/chap-secrets" ]]; then
cp ${filesystem_prefix}/etc/ppp/chap-secrets ${homedir_user}/${_dir}/chap-secrets.${_network}
fi
if [ -f "${filesystem_prefix}/etc/ppp/ip-up.d/email_notice" ];then
cp ${filesystem_prefix}/etc/ppp/ip-up.d/email_notice ${homedir_user}/${_dir}/email_notice.${_network}
fi
# - Postfix SMTP
# - /etc/postfix/main.cf
# - /etc/mailname
# - /etc/postfix/generic
# - /etc/postfix/generic.db
cp ${filesystem_prefix}/etc/postfix/main.cf ${homedir_user}/${_dir}/main.cf.${_network}
if [ -f "${filesystem_prefix}/etc/postfix/generic" ];then
cp ${filesystem_prefix}/etc/postfix/generic ${homedir_user}/${_dir}/generic.${_network}
cp ${filesystem_prefix}/etc/postfix/generic.db ${homedir_user}/${_dir}/generic.db.${_network}
fi
if [ -f "${filesystem_prefix}/etc/postfix/sasl_passwd" ]; then
cp ${filesystem_prefix}/etc/postfix/sasl_passwd ${homedir_user}/${_dir}/sasl_passwd.${_network}
cp ${filesystem_prefix}/etc/postfix/sasl_passwd.db ${homedir_user}/${_dir}/sasl_passwd.db.${_network}
fi
cp ${filesystem_prefix}/etc/mailname ${homedir_user}/${_dir}/mailname.${_network}
# - Netzwerk:
# - /etc/network/interfaces
# - /etc/resolv.conf
# - /etc/hostname
# - /etc/hosts
cp ${filesystem_prefix}/etc/hostname ${homedir_user}/${_dir}/hostname.${_network}
cp ${filesystem_prefix}/etc/hosts ${homedir_user}/${_dir}/hosts.${_network}
cp ${filesystem_prefix}/etc/network/interfaces ${homedir_user}/${_dir}/interfaces.${_network}
cp ${filesystem_prefix}/etc/resolv.conf ${homedir_user}/${_dir}/resolv.conf.${_network}
# - /root/bin directory
# -
if [[ -d "/root/bin" ]] && [[ "$(ls -A /root/bin)" ]] ; then
tar -czpf ${homedir_user}/${_dir}/root_bin_${_network}.tar.gz -C ${filesystem_prefix}/root bin
chown ${user}:${user} ${homedir_user}/${_dir}/root_bin_${_network}.tar.gz
fi
# - /usr/local/src directory
# -
if [[ -d "/usr/local/src" ]] && [[ "$(ls -A /usr/local/src)" ]] ; then
tar -czpf ${homedir_user}/${_dir}/usr_local_src_${_network}.tar.gz -C ${filesystem_prefix}/usr/local src
chown ${user}:${user} ${homedir_user}/${_dir}/usr_local_src_${_network}.tar.gz
fi
# - /usr/local/sbin directory
# -
if [[ -d "/usr/local/sbin" ]] && [[ "$(ls -A /usr/local/sbin)" ]] ; then
tar -czpf ${homedir_user}/${_dir}/usr_local_sbin_${_network}.tar.gz -C ${filesystem_prefix}/usr/local sbin
chown ${user}:${user} ${homedir_user}/${_dir}/usr_local_sbin_${_network}.tar.gz
fi
# - Firewall
# -
# - /etc/systemd/system/ipt-firewall.service
# - /etc/systemd/system/ip6t-firewall.service
# -
# - /etc/init.d/ipt-firewall
# - /etc/init.d/ipt-firewall
# -
# - /etc/ipt-firewall/*
# -
if [[ -d "/etc/ipt-firewall" ]] && [[ "$(ls -A /etc/ipt-firewall)" ]] ; then
tar -czpf ${homedir_user}/${_dir}/etc_ipt-firewall_${_network}.tar.gz -C ${filesystem_prefix}/etc ipt-firewall
chown ${user}:${user} ${homedir_user}/${_dir}/etc_ipt-firewall_${_network}.tar.gz
fi
if [[ -f "${filesystem_prefix}/etc/systemd/system/ipt-firewall.service" ]]; then
cp ${filesystem_prefix}/etc/systemd/system/ipt-firewall.service ${homedir_user}/${_dir}/ipt-firewall.service.${_network}
fi
if [[ -f "${filesystem_prefix}/etc/systemd/system/ip6t-firewall.service" ]]; then
cp ${filesystem_prefix}/etc/systemd/system/ip6t-firewall.service ${homedir_user}/${_dir}/ip6t-firewall.service.${_network}
fi
if [ -f "${filesystem_prefix}/etc/init.d/ipt-firewall" ]; then
cp ${filesystem_prefix}/etc/init.d/ipt-firewall ${homedir_user}/${_dir}/ipt-firewall.${_network}
fi
if [ -f "${filesystem_prefix}/etc/init.d/ip6t-firewall" ]; then
cp ${filesystem_prefix}/etc/init.d/ip6t-firewall ${homedir_user}/${_dir}/ip6t-firewall.${_network}
fi
if [ -f "${filesystem_prefix}/etc/init.d/ipt-firewall-gateway" ]; then
cp ${filesystem_prefix}/etc/init.d/ipt-firewall-gateway ${homedir_user}/${_dir}/ipt-firewall-gateway.${_network}
fi
if [ -f "${filesystem_prefix}/etc/init.d/ip6t-firewall-gateway" ]; then
cp ${filesystem_prefix}/etc/init.d/ip6t-firewall-gateway ${homedir_user}/${_dir}/ip6t-firewall-gateway.${_network}
fi
# - Check Script Onlinestatus
# -
# - /etc/systemd/system/check_net.service
# -
# - /usr/local/sbin/check_net.sh
# - /usr/local/sbin/netconfig.sh
# -
# - /etc/check_net/*
# -
# - /etc/logrotate.d/check_net
# -
if [[ -d "/etc/check_net" ]] && [[ "$(ls -A /etc/check_net)" ]] ; then
tar -czpf ${homedir_user}/${_dir}/etc_check_net_${_network}.tar.gz -C ${filesystem_prefix}/etc check_net
chown ${user}:${user} ${homedir_user}/${_dir}/etc_check_net_${_network}.tar.gz
fi
if [[ -f "${filesystem_prefix}/etc/systemd/system/check_net.service" ]] ; then
cp ${filesystem_prefix}/etc/systemd/system/check_net.service ${homedir_user}/${_dir}/check_net.service.${_network}
fi
if [[ -f "${filesystem_prefix}/etc/logrotate.d/check_net" ]] ; then
cp ${filesystem_prefix}/etc/logrotate.d/check_net ${homedir_user}/${_dir}/check_net-logrotate.${_network}
fi
# - Other files
# -
# - /etc/rc.local
# - /var/spool/cron/crontabs/root
# - /usr/local/igmpproxy/etc/igmpproxy.conf
# - /etc/aiccu.conf
# - /etc/default/aiccu
# - /etc/radvd.conf
# - /etc/hostapd/hostapd.conf
# -
if [ -f "${filesystem_prefix}/etc/rc.local" ]; then
cp ${filesystem_prefix}/etc/rc.local ${homedir_user}/${_dir}/rc.local.${_network}
fi
if [ -f "${filesystem_prefix}/var/spool/cron/crontabs/root" ]; then
cp ${filesystem_prefix}/var/spool/cron/crontabs/root ${homedir_user}/${_dir}/cron_root.${_network}
fi
if [ -f "${filesystem_prefix}/usr/local/igmpproxy/etc/igmpproxy.conf" ]; then
cp ${filesystem_prefix}/usr/local/igmpproxy/etc/igmpproxy.conf ${homedir_user}/${_dir}/igmpproxy.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/aiccu.conf" ]; then
cp ${filesystem_prefix}/etc/aiccu.conf ${homedir_user}/${_dir}/aiccu.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/default/aiccu" ]; then
cp ${filesystem_prefix}/etc/default/aiccu ${homedir_user}/${_dir}/aiccu.${_network}
fi
if [ -f "${filesystem_prefix}/etc/radvd.conf" ]; then
cp ${filesystem_prefix}/etc/radvd.conf ${homedir_user}/${_dir}/radvd.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/hostapd/hostapd.conf" ]; then
cp ${filesystem_prefix}/etc/hostapd/hostapd.conf ${homedir_user}/${_dir}/hostapd.conf.${_network}
fi
chown ${user}:${user} ${homedir_user}/${_dir}
chown ${user}:${user} ${homedir_user}/${_dir}/*.${_network}