Allora, dunque, con sitecopy non ne venivo a capo allora mi sono buttato su rsync, dato che me lo consigli e che mi sembra il tool migliore.
Ho seguito questa guida, creata apposta per il mio hosting, Media Temple, e la mia tipologia di server, il Grid server:
http://www.gosammy.com/2007/12/23/autom ... id-server/
Fondamentalmente basterebbe questo comando:
Codice: Seleziona tutto
#!/bin/bash
rsync -aze ssh serveradmin%domain.com@s99999.gridserver.com:/home/99999/ [insert destination path]
a cui bisogna ovviamente sostituire dei parametri:
* Replace the domain.com with your primary grid-server domain
* Replace the two instances of 99999 with your gridserver account number
* Insert a destination path in place of [insert destination path]. An example of a destination path is:
/Volumes/Macintosh\ HD/Users/samlu/Backups/new
Io pero' ho voluto esagerare ed ho modificato gli script di backup che uso per i files del pc, scopiazzati dai tuoi Conraid, e ne ho creato uno per il sito:
Codice: Seleziona tutto
#!/bin/sh
# sberla54 - punk4free.org backup script - 08.12.2008
# based on a script by conraid - found on www.slacky.eu
#
SOURCE="serveradmin@punk4free.org@s46870.gridserver.com:/home/46870/"
DEST="/home/sberla54/punk4free.backup/punk4free_synch/"
OPTIONS="-azv --delete -e ssh"
#EXCLUDE="--exclude=arch"
LOG="/var/log/p4fbackup"
# You can read exclude and include list from files
#EXCLUDE="--exclude-from=backupexclude.txt"
#INCLUDE="--include-from=backupinclude.txt"
case "$1" in
"-c" )
echo "Checking..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE --dry-run $SOURCE $DEST
;;
"-b" )
echo "Copying..."
echo "Backup started at `date`" > $LOG 2>&1
rsync $OPTIONS $EXCLUDE $SOURCE $DEST >> $LOG 2>&1
;;
"-bv" )
echo "Copying..."
echo "Backup started at `date`"
rsync $OPTIONS $EXCLUDE $SOURCE $DEST
;;
*)
echo "Usage: `basename $0` {-c|-b}"
echo "-c : Check for backup"
echo "-b : Backup"
echo "-bv : Backup (verbose mode, no logs)"
exit
;;
esac
Sembra funzionare, senza bisogno di mettere mano a Fuse.
Ho solo un paio di problemi:
1)
Non cancella i file in locale. Ovvero, non cancella da locale quei files che sono stati cancellati da remoto, o almeno cosi' mi sembra.
Ho appena disinstallato un paio di componenti in remoto, ho controllato che (sempre in remoto) le loro directory non ci siano piu', ho avviato lo script ed ho notato che queste directory sono ancora presenti nel backup locale.
In pratica fa il lavoro a meta'.
Questo e' il log che viene creato avviando lo script con p4fbackup -b:
Codice: Seleziona tutto
Backup started at sab gen 3 23:22:10 CET 2009
receiving file list ... rsync: opendir "/home/46870/users/giarca" failed: Permission denied (13)
rsync: opendir "/home/46870/users/joel%punk4free.org" failed: Permission denied (13)
rsync: opendir "/home/46870/users/thepunkshow%punk4free.org" failed: Permission denied (13)
done
IO error encountered -- skipping file deletion
domains/punk4free.org/html/cache/_system/
domains/punk4free.org/html/cache/_system/539a1c4bbc772fddad7279089684b384.php
domains/punk4free.org/html/cache/_system/539a1c4bbc772fddad7279089684b384.php_expire
domains/punk4free.org/html/cache/aliroAuthoriser/
domains/punk4free.org/html/cache/aliroAuthoriser/00a3cb86b32a5054750fe9e28848b0b4.php
domains/punk4free.org/html/cache/aliroAuthoriser/00a3cb86b32a5054750fe9e28848b0b4.php_expire
domains/punk4free.org/html/cache/com_content/
domains/punk4free.org/html/cache/com_content/0fce1d4c4baf1c08081cfa0379f4ef96.php
domains/punk4free.org/html/cache/com_content/0fce1d4c4baf1c08081cfa0379f4ef96.php_expire
domains/punk4free.org/html/cache/com_content/2f9c87b586a22013e59fc13bd2031f53.php
domains/punk4free.org/html/cache/com_content/2f9c87b586a22013e59fc13bd2031f53.php_expire
domains/punk4free.org/html/cache/com_content/6e0137da40ec7811f6bd4313d3266c13.php
domains/punk4free.org/html/cache/com_content/6e0137da40ec7811f6bd4313d3266c13.php_expire
domains/punk4free.org/html/cache/com_content/8a107274736bb2b2f2e4eda6752feb5d.php
domains/punk4free.org/html/cache/com_content/8a107274736bb2b2f2e4eda6752feb5d.php_expire
domains/punk4free.org/html/cache/com_content/cd5a79e1400b73243f8c06ebe118fb51.php
domains/punk4free.org/html/cache/com_content/cd5a79e1400b73243f8c06ebe118fb51.php_expire
domains/punk4free.org/html/cache/mod_search/
domains/punk4free.org/html/cache/mod_search/07a61c56d4932efcd9f794ec0f84958d.php
domains/punk4free.org/html/cache/mod_search/07a61c56d4932efcd9f794ec0f84958d.php_expire
logs/error_log
rsync: send_files failed to open "/home/46870/stats/urchin/lock.udb": Permission denied (13)
sent 29888 bytes received 335104 bytes 8794.99 bytes/sec
total size is 8654064691 speedup is 23710.29
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1506) [generator=3.0.4]
Se non erro questa riga:
IO error encountered -- skipping file deletion
significa proprio che salta la cancellazione dei files in locale?
Idee per risolvere?
2)
Non riesco ad automatizzare il login tramite le chiavi ssh pubbliche e private.
Ora come ora, ogni volta che avvio lo script, mi chiede la password dell'utente ftp (serveradmin).
Sto seguendo questa guida:
http://linux.html.it/articoli/leggi/170 ... -con-le-c/ (con un occhi anche a questa:
http://alex.amiran.it/20080123/rsync-via-ssh/ )
Ho creato le chiavi con ssh-keygen, ho inserito una passphrase per la generazione delle stesse, ho copiato /home/sberla54/.ssh/id_rsa.pub in /users/.home/.ssh/authorized_keys (file che prima non esisteva), ma ad ogni modo non riesco ad effettuare il login automatico.
Nei primi tentativi mi chiedeva la passphrase di generazione delle chiavi invece della password ftp...ora e' tornato a chiedermi la pass ftp.
Che sia perche' l'utente locale e quello remoto si chiamano diversamente?
O magari ho sbagliato la home remota in cui inserire i files? (Pero' l'utente serveradmin non ha una sua home diversa da quella....soltanto gli utenti con accesso ftp creati successivamente ce l'hanno).
Insomma, pensavo di aver risolto ma sono ancora incasinato; mi basterebbe risolvere il punto 1, per l'utilita' immediata, ed al 2 posso andarci dietro con calma.