Backup LINKAT.sh
Temes a solucionar:
falta:
- enviar mail
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