Zdravím všechny udělal jsem si simple script který kontroluje instalované aplikace a v případě že je nainstalová zálohuje jejich CFG. Případně app s více soubory např apache2 kopíruje celou složku.
Když spustím script ručně tak je vše ok ale když ho umístím do cronu tak se hlavně zálohy kde kopíruji složky (SQUID, APACHE...) neprovedou. V cronu jsem zkoušel dát před script /bin/bash bez uspechu.
Pro přehled přikládám zmíněný script
Díky moc za případnou pomoc... v shellu jsem začátečník samouk :-)
#!/bin/bash
#Definice adresaru pro zalohy
HOST=${HOSTNAME}
BACKUP_DIR="/home/daniel/CFG_BACKUP";
BACKUP_DAY="`date +%d_%m_%y`";
ARCHIVE="ARCHIVE";
MNT="/mnt/SFTP";
#Aplikace pro test
SQUID="squid";
SQUID3="squid3";
OPENVPN="openvpn";
SARG="sarg";
APACHE="apache2";
DHCP="dhcpd";
#Adresaře s instalacnimi soubory
DIR_SQUID="/etc/squid/squid.conf";
DIR_SQUID3="/etc/squid3/squid.conf";
DIR_OPENVPN="/etc/openvpn/";
DIR_SARG="/etc/sarg";
DIR_APACHE2="/etc/apache2";
DIR_DHCP="/etc/dhcp";
#Definice systémových souborů
FILE_RC="/etc/rc.local"
FILE_NETWORK="/etc/network/interfaces"
CONFIGY="/home/daniel/*.sh"
#Kontrola a vztvoreni adresarove struktury pro zalohy
if [ ! -d "$BACKUP_DIR/$BACKUP_DAY" ];
then
echo "$BACKUP_DIR/$BACKUP_DAY neexistuje vytvářím"
mkdir -p "$BACKUP_DIR/$BACKUP_DAY"
fi
#kontrola zda jsou app nainstalovane, v pripade ze ano.. backup CFG
if type $SQUID >/dev/null 2>&1 ;
then
cp -p $DIR_SQUID $BACKUP_DIR/$BACKUP_DAY/
fi
if type $SQUID3 >/dev/null 2>&1 ;
then
cp -p $DIR_SQUID3 $BACKUP_DIR/$BACKUP_DAY/
fi
if type $OPENVPN >/dev/null 2>&1 ;
then
cp -p -R $DIR_OPENVPN $BACKUP_DIR/$BACKUP_DAY/
fi
if type $SARG >/dev/null 2>&1 ;
then
cp -p -R $DIR_SARG $BACKUP_DIR/$BACKUP_DAY/
fi
if type $APACHE >/dev/null 2>&1 ;
then
cp -p -R $DIR_APACHE2 $BACKUP_DIR/$BACKUP_DAY/
fi
if type $DHCP >/dev/null 2>&1 ;
then
cp -R $DIR_DHCP $BACKUP_DIR/$BACKUP_DAY/
fi
#Zaloha systemovych souboru
cp -p $FILE_RC $BACKUP_DIR/$BACKUP_DAY/
cp -p $FILE_NETWORK $BACKUP_DIR/$BACKUP_DAY/
cp $CONFIGY $BACKUP_DIR/$BACKUP_DAY/
if [ ! -d "$BACKUP_DIR/$ARCHIVE" ];
then
echo "$BACKUP_DIR/$ARCHIVE neexistuje vytvářím"
mkdir -p "$BACKUP_DIR/$ARCHIVE"
fi
chown daniel:root -R $BACKUP_DIR/$BACKUP_DAY
#Smazani zaloch v archivu starsich nez 30 dni
find $BACKUP_DIR -iname "*.tgz" -mtime +30 -type f -exec rm -rf {} \;
#Presun predchozi zalohy do archivu
mv $BACKUP_DIR/*.tgz $BACKUP_DIR/$ARCHIVE
#Zabaleni a smazani docasne slozky
tar cpzf $BACKUP_DIR/"$HOST"_"$BACKUP_DAY".tgz $BACKUP_DIR/$BACKUP_DAY
#rm -r $BACKUP_DIR/$BACKUP_DAY