mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-05 00:00:45 -04:00
It seems that scp is sometimes very slow (unclear what causes it as it's not always the same). Packing up the files with tar performs a lot better in these situations. And copying the files to multiple hosts in parallel additionally helps to reduce the time required for these steps. Using --overwrite and -h preserves existing symlinks (e.g. for the users file in /etc/freeradius/3.0) and overwrites the target file instead. The -m option ignores timestamps when extracting the files as some target files will be newer than the source. Using -h when packing up files in load-testconfig allows using symlinks in the test config dirs to files on the host running the tests.
46 lines
1.5 KiB
Bash
Executable File
46 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Restore the default host configurations
|
|
#
|
|
# Copyright (C) 2004 Eric Marchionni, Patrik Rayo
|
|
# Zuercher Hochschule Winterthur
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by the
|
|
# Free Software Foundation; either version 2 of the License, or (at your
|
|
# option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
# for more details.
|
|
|
|
DIR=$(dirname `readlink -f $0`)
|
|
. $DIR/../testing.conf
|
|
. $DIR/function.sh
|
|
SSHCONF="-F $DIR/../ssh_config"
|
|
|
|
testname=$1
|
|
|
|
HOSTCONFIGDIR=$DIR/../hosts
|
|
TESTSDIR=$BUILDDIR/tests
|
|
|
|
[ -d $TESTSDIR ] || die "Directory '$TESTSDIR' not found"
|
|
[ -d $TESTSDIR/$testname ] || die "Test '$testname' not found"
|
|
[ -f $TESTSDIR/$testname/test.conf ] || die "File 'test.conf' is missing"
|
|
|
|
. $TESTSDIR/$testname/test.conf
|
|
|
|
# load files in parallel
|
|
WAIT_FOR=()
|
|
|
|
if [ -d $TESTSDIR/${testname}/hosts ]
|
|
then
|
|
for host in `ls $TESTSDIR/${testname}/hosts`
|
|
do
|
|
eval HOSTLOGIN="root@`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $1 }' | awk '{ print $1 }'`"
|
|
tar -cf - -C $HOSTCONFIGDIR/default etc -C ../${host} etc | ssh $SSHCONF $HOSTLOGIN 'tar --overwrite -xhmf - -C /' &
|
|
WAIT_FOR+=($!)
|
|
done
|
|
wait ${WAIT_FOR[@]}
|
|
fi
|