syncnow 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/usr/bin/env bash
  2. #====================HEADER==========================================|
  3. #AUTHOR
  4. # Jefferson Rocha
  5. #
  6. #Descrição
  7. # Programa de sincronização das minhas máquinas para meu
  8. # servidor local, utilize as variáveis para alterar conforme
  9. # a sua necessidade
  10. # Se deseja adicione no cron para fazer isto 1 ou talvez 2 vezes ao
  11. # dia. Isto deve ser suficiente para ficar tudo sincronizado.
  12. #====================================================================|
  13. #===============CONFIGURAÇÃO
  14. user='slackjeff' # Usuario do servidor
  15. server='192.168.0.26' # Ip do Servidor, não use alias
  16. port='2606' # Porta do Servidor
  17. log='/tmp/backup-rsync.log' # Local para log
  18. # Se deseja ativar o envio de logs ao final
  19. # do rsync deixe com 1, caso deseje desligar
  20. # preencha com 0
  21. log_key='1'
  22. #==========================
  23. #============Testes
  24. # Sem conectividade, servidor off.
  25. ping -c 2 "$server" &>/dev/null || exit
  26. #============ATENÇÃO
  27. # Em ambas arrays utilize o diretório completo
  28. # para não ter futuros problemas. Utilize tambem
  29. # o número do indice na frente do caminho, ex:
  30. # [10]='/tmp/arquivostemp' para um visualização
  31. # melhor Origem ----> Destino
  32. # Diretórios de origem/Máquina Local.
  33. home='/home/slackjeff' # Seu home
  34. list_arch=(
  35. [0]='/tmp/*_SBo.t?z'
  36. [1]="${home}/cartao/"
  37. [2]="${home}/scripts/"
  38. [3]="${home}/public_html/"
  39. )
  40. # Diretórios de Destino/Servidor
  41. home_server='/home/media'
  42. list_dir=(
  43. [0]="${home_server}/pacotes_slackbuilds/"
  44. [1]="${home_server}/documentos/"
  45. [2]="${home_server}/scripts/"
  46. [3]="${home_server}/site_slackjeff/"
  47. )
  48. i='0' # Incremento
  49. until [[ $i -ge "${#list_arch[@]}" ]]; do
  50. rsync -avhz -e "ssh -p ${port}" \
  51. ${list_arch[$i]} ${user}@${server}:${list_dir[$i]} || exit 1
  52. let i++
  53. done
  54. # Enviando log para /var/log/
  55. # necessida de root para ter sucesso.
  56. if [ $log_key -eq '1' ]; then
  57. cat >> "$log" <<EOF
  58. Log realizado em: $(date "+%d/%h/%y %H:%M")
  59. +++++++++++++++++++++++++++++++++++++++
  60. EOF
  61. fi
  62. exit 0