Backup UbuntuServer.sh

De Wikijoan
Dreceres ràpides: navegació, cerca
#!/bin/bash
# backup_DELL_UbuntuServer.sh: Servidor Ubuntu Backup Script, Joan Quintana
# els scripts de backup es guarden a /home/joan/copia_seguretat/scripts
# els logs de backup es guarden a /home/joan/copia_seguretat/log
#aquest scrit és una còpia local, perquè el disc de xarxa està muntat localment en el servidor a home/joan/disc_xarxa

NOM_BACKUP="UbuntuServer"
tdate=`date +%d%m%y`
backupdirs="/home/joan/cbn /home/joan/googling /home/joan/socrathos /home/joan/wiki /home/joan/blog/wp-content /home/joan/copia_seguretat/mysql_backup"

# comprovar que la IP 192.168.1.15 apunta a IOMEGAXARXA
findsmb >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
ping -c 2 192.168.1.15 >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log

#on es guarden tots els log
if ! [ -d /home/joan/copia_seguretat/log ] 
then
mkdir /home/joan/copia_seguretat/log
fi

echo "Còpia de seguretat de $NOM_BACKUP, $tdate" >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
echo "=========================================" >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
echo "" >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log

# còpies de seguretat ##############
for path in $backupdirs
do

if [ ${path: -4} = "wiki" ]; then
rsync -ae --delete $path /home/joan/disc_xarxa/"$NOM_BACKUP" --exclude='[l][a][n][g][u][a][g][e][s]' --exclude='[t][e][s][t][s]' --exclude='[m][a][i][n][t][e][n][a][n][c][e]' --log-file=/home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
else
rsync -ae --delete $path /home/joan/disc_xarxa/"$NOM_BACKUP" --log-file=/home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
fi

done

echo "" >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
echo "Informe del ús del disc de xarxa IOMEGA" >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
echo "=======================================" >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
echo "" >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log

#percentatge d'ús
du --max-depth=1 /home/joan/disc_xarxa >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log

#enviem un mail
cat /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log | mail -s "log backup $NOM_BACKUP" joan_quintana@yahoo.com

exit 0

Proves i errors

el problema de fer

rsync -ae --delete /home/joan/wiki /home/joan/disc_xarxa/UbuntuServer --log-file=/home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log

és que em copia tot el directori images, quan jo el que vull és copiar les imatges i els fitxers de configuració que he modificat. Si faig:

rsync -ae --delete /home/joan/images /home/joan/disc_xarxa/UbuntuServer --log-file=/home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log

se'm crea en el disc de xarxa la carpeta disc_xarxa/UbuntuServer/images, que no la relaciono amb el wiki.

Per solucionar-ho hi ha diferents possibilitats, però m'h he barallat molt.

--exclude="*.php"
--exclude='???' -> exclou bin
--exclude='[i]*' -> exclou tots els que comencen per i
--exclude='[i][m]*' -> exclou tots els que comencen per im
Ara bé, una expressió regular que sigui excloure totes les carpetes menys images, no ho he aconseguit. Si ho aconseguís, seria la solució més elegant.

Servidor SSH sempre tancat

Això està més ben explicat a backup_LINKAT

La idea és executar un script php per obrir el servidor SSH, i al cap d'una hora executar un altre script per tancar el servidor SSH.

En el meu script afegeixo la línia:

#engeguem el servidor SSH en el servidor
wget http://localhost/admin/prova_script.php

i al cap d'una hora s'executa el script tancar_SSH.sh que inclou la línia

wget http://webjoan.dyndns.org/admin/prova_script2.php



creat per Joan Quintana Compte, novembre 2008

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines