Backup LINKAT.sh

De Wikijoan
Dreceres ràpides: navegació, cerca

Temes a solucionar:

falta:

No ha funcionat a la primera perquè tal com ho tinc en el Ubuntu no m'ha funcionat. En el Ubuntu tinc:

rsync -ae ssh --delete $path $USUARI@$IP_DESTI:/home/joan/disc_xarxa/"$NOM_BACKUP" 

i en el LINKAT per què funcioni fico:

rsync -a -e ssh --delete $path $USUARI@$IP_DESTI:/home/joan/disc_xarxa/"$NOM_BACKUP" 

(segurament si fico en el LIKAT el mateix que en el Ubuntu funcionarà, i així tindré les dues versions iguals)

Sempre puc ficar l'opció -v de verbose, però en el moment que ho redirigeixo a fitxer ja no funciona la -v (no es veu per pantalla).

Una altra cosa que he de mirar és provocar un error, i assegurar-me que queda reflexat en el log, perquè el canal d'error és diferent i ara no tinc clar si el log reflexarà un error.

#!/bin/bash
# backup_LINKAT.sh: LinuxServer de l'institut Backup Script, Joan Quintana
# aquest script s'executa des del LinuxServer (LINKAT), doncs el LinuxServer de l'institut pot accedir al UbuntuServer de Joan Blanques, però no al revés.
# els logs de backup es guarden a /home/joan/copia_seguretat/log
#recordem que per connectar-nos amb SSH sense password el servidor SSH ha de confiar en el client que es vol connectar.
#en el nostre cas el client SSH és el servidor LinuxServer i el servidor SSH és el Servidor Ubuntu de Joan Blanques
IP_DESTI="wikijoan.dyndns.org"
USUARI="joan"
NOM_BACKUP="LINKAT"
tdate=`date +%d%m%y`
backupdirs="/home/joan/.bashrc /home/joan/.htpasswd /home/joan/copia_seguretat/scripts /home/joan/copia_seguretat/copia_mysql /home/joan/copia_seguretat/copia_openbravo /root/.smbcredentials"

#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
rsync -av -e ssh --delete $path $USUARI@$IP_DESTI:/home/joan/disc_xarxa/"$NOM_BACKUP" >> /home/joan/copia_seguretat/log/"$NOM_BACKUP"_$tdate.log
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

#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

afegeixo la següent línia a /etc/crontab per tal d'automatitzar les còpies al disc de xarxa_extern (s'executa a les 00:15 dels divendres)

15 0 * * 5 root /home/joan/copia_seguretat/scripts/backup_LINKAT.sh

Compte perquè abans tenia

* * * * 5 root /home/joan/copia_seguretat/scripts/backup_LINKAT.sh

i això significa que s'executi els divendres cada hora i cada minut, i el servidor de correu no parava d'enviar-me mails!

No tinguem el servidor SSH sempre obert

Per motius de seguretat no tinc el SSH engegat. El SSH l'engegarà el mateix script, i un script que s'executarà una hora més tard tancarà el servidor SSH

15 0 * * 5 root /home/joan/copia_seguretat/scripts/backup_LINKAT.sh
15 1 * * 5 root /home/joan/copia_seguretat/scripts/tancar_SSH.sh

En el script backup_LINKAT.sh afegim la línia

#engeguem el servidor SSH en el servidor
wget http://webjoan.dyndns.org/prova_script.php

i en el script tancar_SSH.sh tenim només:

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

El script prova_script.php és el que conté la informació per arrencar el servidor SSH

<?php
exec("echo **** | /usr/bin/sudo -u root -s /etc/init.d/ssh start");
exec("sudo -K"); // !IMPORTANTE! Destruimos la sesion
echo "hola";
?>

Alhora, el script prova_script2.php inclou la següent instrucció:

    I A  prova_script.php (php)(Read only)  exec("echo **** | /usr/bin/sudo -u root -s /etc/init.d  Row 3    Col 1    4:44  Ctrl-K H for help
<?php
exec("echo **** | /usr/bin/sudo -u root -s /etc/init.d/ssh stop");
exec("sudo -K"); // !IMPORTANTE! Destruimos la sesion
echo "adéu";
?>

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