1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

sincronizar data do servidor na internet [help] // ajuda em bash script[solved]

Discussão em 'Novidades GNU/Linux & *nix World' iniciada por zoidberg, 11 de Abril de 2007. (Respostas: 4; Visualizações: 976)

  1. zoidberg

    zoidberg Folding Member

    Boas , ando a construir um bash script para efectuar os backups a um forum. o código actual é:
    Código:
    #!/bin/sh
    # MYSQL Backup Script
    
    export d=$(date +%d-%m-%Y)
    export savepath=/share/incoming/Backups
    
    export usr=$(cut -d " " -f 1 /root/.mysqlpasswd)
    export pwd=$(cut -d " " -f 2 /root/.mysqlpasswd)
    
    echo starting mySQL Backup Script.
    echo start composing mail
    
    echo ---------------backup report log created in $d---------------  > /share/backup/.mailfile
    
    echo creating new directory in shared folder...
    mkdir -p $savepath/$d
    if [ "$?" = "0" ]; then export p1=OK 
    else export p1=FAILED
    fi
    
    echo Dumping database ***...
    mysqldump -u$usr -p$pwd --opt  --databases --add-drop-database *** > $savepath/$d/arvore_suporte.sql
    if [ "$?" = "0" ]; then export p2=OK
    else export p2=FAILED
    fi
    
    
    echo Dumping database ***...
    mysqldump -u$usr -p$pwd --opt  --databases --add-drop-database *** > $savepath/$d/daily.sql
    if [ "$?" = "0" ]; then export p3=OK
    else export p3=FAILED
    fi
    
    
    echo Dumping database ***...
    mysqldump -u$usr -p$pwd --opt  --databases --add-drop-database *** > $savepath/$d/equip_id.sql
    if [ "$?" = "0" ]; then export p4=OK
    else export p4=FAILED
    fi
    
    
    echo Dumping database ***...
    mysqldump -u$usr -p$pwd --opt  --databases --add-drop-database *** > $savepath/$d/gedas_forum.sql
    if [ "$?" = "0" ]; then export p5=OK
    else export p5=FAILED
    fi
    
    
    echo Dumping entire database...
    mysqldump -u$usr -p$pwd --opt  -A > $savepath/$d/All.sql
    if [ "$?" = "0" ]; then export p6=OK
    else export p6=FAILED
    fi
    
    
    echo copying files to shared folder...
    cp -r /var/www/ $savepath/$d/
    if [ "$?" = "0" ]; then export p7=OK
    else export p7=FAILED
    fi
    
    
    rm -r $savepath/$d/www/phpmyadmin
    if [ "$?" = "0" ]; then export p8=OK
    else export p8=FAILED
    fi
    
    
    chmod -R 777 $savepath/$d/
    if [ "$?" = "0" ]; then export p9=OK
    else export p9=FAILED
    fi
    
    
    
    echo mounting network share to copy files...
    mount -t smbfs -o credentials=/root/.smbpasswd,workgroup=*** //*** /mnt/backupdir/
    if [ "$?" = "0" ]; then export p10=OK
    else export p10=FAILED
    fi
    
    
    
    echo copying files to network place...
    cp -r $savepath/$d /mnt/backupdir/$d
    if [ "$?" = "0" ]; then export p11=OK
    else export p11=FAILED
    fi
    
    
    
    echo unmounting network share...
    umount /mnt/backupdir/
    if [ "$?" = "0" ]; then export p12=OK
    else export p12=FAILED
    fi
    
    
    cat >> /share/backup/.mailfile <<EOF
    
    Creating new directory in shared folder...     $p1                         
    Dumping database arvore_suporte...         $p2                                 
    Dumping database daily...             $p3                                    
    Dumping database equip_id...             $p4                               
    Dumping database gedas_forum...         $p5               
    Dumping entire database...             $p6                    
    Copying files to shared folder...         $p7             
    Removing phpmyadmin...                 $p8                        
    Chmoding 777 shared folder...             $p9                 
    Mounting network share to copy files...     $p10      
    Copying files to network place...         $p11            
    Unmounting network share...             $p12                  
    EOF
    
    
    echo e-mailing backup report...
    mail -s "Forum Backup Report" -t ***@***.*** < /share/backup/.mailfile
    if [ "$?" = "0" ]; then export p13=OK
    else export p13=FAILED
    fi
    
    echo e-mailing backup report...         $p13 >> /share/backup/.mailfile
    
    
    echo archiving log file...
    cp /share/backup/.mailfile /share/backup/$d.log
    
    
    echo done!
    
    Código final seguindo as dicas do r3pek ;) tks

    o que queria fazer era

    *Criar 1 ficheiro com a password do mysql ( /root/.mysqlpasswd ) e exportar as variaveis usr e
    pwd a partir de lá para nao as ter visiveis no script

    *enviar um e-mail no fim da operação com uma especie de log a dizer que correu tudo bem.
    basicamente já envia, mas queria formar um .mailfile com o log das operações ( devo ter de validar se está a correr tudo bem passo a passo e escrever para o mailfile ).

    muito obrigado r3pek, já funciona como quero :) agora é so por no crontab e já está :)

    prox problema : sincronizar a data / hora por detras de uma proxy :| alguem sabe como ?
     
    Última edição: 11 de Abril de 2007
  2. r3pek

    r3pek Power Member

    * Facil ;)
    ficheiro do tipo:
    Código:
    username passwd
    depois é só:
    export usr=$(cut -d " " -f 1 /root/.mysqlpasswd)
    export pwd=$(cut -d " " -f 2 /root/.mysqlpasswd)

    * Quanto ao segundo ponto....
    Podes ir fazendo "echo's" para um ficheiro temporario que apagas no fim do script para juntares toda a informação k keres saber.... depois no fim do script é só fazer algo do género:
    Código:
    sendmail [email protected] < /tmp/log
     
  3. zoidberg

    zoidberg Folding Member

    tks :) já bomba :D

    agora tenho outro problemazinho.. será que me podem ajudar? :P

    não consigo sincronizar a data do servidor pela internet pq estou por detras de uma proxy....
     
  4. r3pek

    r3pek Power Member

    a nao ser k o teu proxy suporte NTP, tas lixado :(
     
  5. zoidberg

    zoidberg Folding Member

    pois.. pode ser disso..
    alguma maneira rapida de testar?
     

Partilhar esta Página