Menu

BackupPC – generowanie ShareName gdy nie znamy jej zawartości

18 listopada 2020 - IT, Linux
BackupPC – generowanie ShareName gdy nie znamy jej zawartości

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