
Czasem zachodzi potrzeba rozbicia zadań wykonywanych przez BackupPC na mniejsze, problem pojawia się, gdy nie znamy dokładnej zawartości lokalizacji backupowanej, poniższy skrypt generuje konfigurację łącząc się do zdalnego hosta, dla TarShareName:
– /etc
– /opt
– /var/vmail/*
– /var/www/* z wykluczeniem /var/www/clients
– /var/www/clients/*/*
Pewnie można by go ładniej napisać, ale miało być przejrzyście dla mnie
#!/bin/bash
SRC=/etc/BackupPC/pc/moj.host.tld.pl
DST=/var/tmp/moj.host.tld.pl
TMPDST=/var/tmp/temp1
REMLOC=/var/tmp/temp2
HOST=moj.host.tld
KEY="/var/lib/BackupPC/.ssh/id_rsa"
/usr/bin/cp $SRC $DST
/usr/bin/sed -r '/^\$Conf\{TarShareName\}\s=\s\[/{:1; /\$Conf\{TarShareName\}(\s.*)\];$/!{N; b1;}; d;};' $DST > $TMPDST
/usr/bin/ssh -i $KEY root@$HOST "find /var/vmail/ -maxdepth 1 -mindepth 1 -type d| sort" > $REMLOC
/usr/bin/ssh -i $KEY root@$HOST "find /var/www -maxdepth 1 -mindepth 1 -type d ! -name "clients"| sort" >> $REMLOC
/usr/bin/ssh -i $KEY root@$HOST "find /var/www/clients -maxdepth 2 -mindepth 2 -type d| sort" >> $REMLOC
echo -e "\$Conf{TarShareName} = [\n\t'/etc',">$DST
while read line
do
echo -e "\t'$line',">>$DST
done<$REMLOC
echo -e "\t'/opt'\n];">>$DST
/usr/bin/cat $TMPDST $DST > $REMLOC
/usr/bin/cp -f $REMLOC $SRC