Kronos - Sincronização de arquivos remotos
Publicado por N 02/02/2006
[ Hits: 5.651 ]
Sistema de sincronização de arquivos remotos.
Nycholas de Oliveira e Oliveira - o_lalertom
# MAIN ======================================= #!/bin/bash # # Sistema de sincronização de arquivos. # Copyright (C) 2005 by Nycholas de Oliveira e Oliveira <nycholas@gmail.com> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # <Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os # termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; # tanto a versão 2 da Licença, como (a seu critério) qualquer versão posterior.> # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # <Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA # GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA # FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes.> # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # <Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este # programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 # Temple Street, Suite 330, Boston, MA 02111-1307 USA.> # ######################################################### # NOME : Nycholas de Oliveira e Oliveira # # E-MAIL : nycholas@gmail.com # # ICQ : 114965471 # # MSN : o_lalertom@hotmail.com # # JABBER : nycholas@jabber.org # # TALK : nycholas@gmail.com # # DESCRICAO : Sistema de sincronizacao de arquivos # # DESCRICAO : Script principal # # LOCALIZACAO : Uberlândia - MG # # LOCALIZACAO : Brasil # ######################################################### ####################################### # Constantes programas: WHICH="/usr/bin/which" CUT="/usr/bin/cut" PWD=`$WHICH pwd | $CUT -f 1` SLEEP=`$WHICH sleep | $CUT -f 1` ####################################### # Executaveis: PREFIX="/etc/cron.kronos" KRONOS="$PREFIX/kronos" MAIL="$PREFIX/mail" ####################################### # Dispositivos: NULL="/dev/null" ########################################################### ########################################################### ########################################################### $SYNC $KRONOS 2>&1&> $NULL if [ $? -ne 0 ]; then $MAIL exit 1 fi $SYNC # KRONOS ======================================= #!/bin/bash # # Sistema de sincronização de arquivos. # Copyright (C) 2005 by Nycholas de Oliveira e Oliveira <nycholas@gmail.com> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # <Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os # termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; # tanto a versão 2 da Licença, como (a seu critério) qualquer versão posterior.> # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # <Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA # GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA # FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes.> # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # <Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este # programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 # Temple Street, Suite 330, Boston, MA 02111-1307 USA.> # ######################################################### # NOME : Nycholas de Oliveira e Oliveira # # E-MAIL : nycholas@gmail.com # # ICQ : 114965471 # # MSN : o_lalertom@hotmail.com # # JABBER : nycholas@jabber.org # # TALK : nycholas@gmail.com # # DESCRICAO : Sistema de sincronizacao de arquivos # # LOCALIZACAO : Uberlândia - MG # # LOCALIZACAO : Brasil # ######################################################### ####################################### # Constantes programas: WHICH="/usr/bin/which" CUT="/usr/bin/cut" RSYNC=`$WHICH rsync | $CUT -f 1` ECHO=`$WHICH echo | $CUT -f 1` SYNC=`$WHICH sync | $CUT -f 1` TOUCH=`$WHICH touch | $CUT -f 1` MKDIR=`$WHICH mkdir | $CUT -f 1` CHMOD=`$WHICH chmod | $CUT -f 1` CHOWN=`$WHICH chown | $CUT -f 1` DATE=`$WHICH date | $CUT -f 1` ####################################### # Dispositivo: NULL="/dev/null" ####################################### # Constantes: DATA_HORA=$($DATE +%d.%m.%Y_%H.%M.%S) ####################################### # Log: PREFIX_LOG="/var/log/kronos" ARQUIVO_LOG="$PREFIX_LOG/kronos.log" ####################################### # Diretorios: HOME_KRONOS="/home/kronos" ####################################### # Sync: USER_SERVER="kronos" IP_SERVER="192.168.0.1" DIR_SERVER_SYNC="/home/kronos/sync" DIR_HOST_SYNC="/home/kronos/sync" OPTIONS="--checksum --archive --recursive --perms --owner --group --devices --delete-excluded --compress --progress --verbose --partial --update" ####################################### # Efeitos BASH: PRETO="\{FONTE}33[1;30m" VERMELHO="\{FONTE}33[1;31m" VERDE="\{FONTE}33[1;32m" AMARELO="\{FONTE}33[1;33m" AZUL="\{FONTE}33[1;34m" ROSA="\{FONTE}33[1;35m" CIANO="\{FONTE}33[1;36m" BRANCO="\{FONTE}33[1;30m" ALERTA="\{FONTE}33[5;31m" TAB="\{FONTE}33[70G" BEEP="\\a" FIM="\{FONTE}33[0m" ####################################### # Mensagens: OK="$TAB[$VERDE OK $FIM]\n" FALHOU="$TAB[$VERMELHO FALHOU $FIM]\n" EXE=" + + [$AMARELO EXECUTADO $FIM] + + \n" ########################################################### ########################################################### ########################################################### $SYNC 2>&1&> $NULL if [ ! -e $PREFIX_LOG ]; then $MKDIR -p $PREFIX_LOG 2>&1&> $NULL $TOUCH $ARQUIVO_LOG 2>&1&> $NULL $CHMOD 0700 -R $PREFIX_LOG 2>&1&> $NULL $CHOWN kronos:kronos -R $PREFIX_LOG 2>&1&> $NULL fi if [ $? -ne 0 ]; then $ECHO -en "$ALERTA !!! PERMISSAO NEGADA PARA CRIACAO DA HIERARQUIA DE LOG !!!$FIM\n" exit 1 fi $SYNC 2>&1&> $NULL $ECHO -en "$EXE" > $ARQUIVO_LOG $ECHO -en "::::::::::::::::::::::::::::::\n" >> $ARQUIVO_LOG $ECHO -en "$ROSA :: Inicializado - $FIM$AMARELO$DATA_HORA$FIM$ROSA ::$FIM\n" >> $ARQUIVO_LOG $ECHO -en "::::::::::::::::::::::::::::::\n" >> $ARQUIVO_LOG $SYNC 2>&1&> $NULL $CLEAR 2>&1&> $NULL $SYNC 2>&1&> $NULL $ECHO -en "$ROSA::$FIM$AMARELO Verificando diretorios$FIM $ROSA::$FIM\n" >> $ARQUIVO_LOG for I in $HOME_KRONOS $PREFIX_LOG ; do $ECHO -en "$ROSA->$FIM$AZUL Diretorio$FIM$CIANO $I$FIM$AZUL$FIM $ROSA<-$FIM" >> $ARQUIVO_LOG if [ -e $I ]; then $ECHO -en "$OK" >> $ARQUIVO_LOG else $ECHO -en "$FALHOU" >> $ARQUIVO_LOG $MKDIR -p $I 2>&1&> $NULL $CHMOD 0700 -R $I 2>&1&> $NULL $CHOWN kronos:kronos -R $I 2>&1&> $NULL fi $SYNC 2>&1&> $NULL done $SYNC 2>&1&> $NULL $ECHO -en "$ROSA::$FIM$AMARELO Sincronizando arquivos $FIM$ROSA::$FIM\n" >> $ARQUIVO_LOG $ECHO -en "$ROSA->$FIM$AZUL Sincronizando$FIM$CIANO $USER_SERVER@$IP_SERVER:$DIR_SERVER_SYNC $DIR_HOST_SYNC $FIM$ROSA<-$FIM\n" >> $ARQUIVO_LOG $ECHO -en "$VERMELHO" >> $ARQUIVO_LOG if $RSYNC $OPTIONS $USER_SERVER@$IP_SERVER:$DIR_SERVER_SYNC $DIR_HOST_SYNC >> $ARQUIVO_LOG 2> $NULL; then $ECHO -en "$FIM $BRANCO ++ Status ++ $FIM $OK" >> $ARQUIVO_LOG else $ECHO -en "$FIM $BRANCO ++ Status ++ $FIM $FALHOU" >> $ARQUIVO_LOG exit 1 fi $SYNC 2>&1&> $NULL $ECHO -en "::::::::::::::::::::::::::::::\n" >> $ARQUIVO_LOG $ECHO -en "$ROSA :: Terminado - $FIM$AMARELO$DATA_HORA$FIM$ROSA ::$FIM\n" >> $ARQUIVO_LOG $ECHO -en "::::::::::::::::::::::::::::::\n" >> $ARQUIVO_LOG $SYNC 2>&1&> $NULL # MAIL ======================================= #!/bin/bash # # Sistema de sincronização de arquivos. # Copyright (C) 2005 by Nycholas de Oliveira e Oliveira <nycholas@gmail.com> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # <Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os # termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; # tanto a versão 2 da Licença, como (a seu critério) qualquer versão posterior.> # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # <Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA # GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA # FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes.> # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # <Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este # programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 # Temple Street, Suite 330, Boston, MA 02111-1307 USA.> # ######################################################### # NOME : Nycholas de Oliveira e Oliveira # # E-MAIL : nycholas@gmail.com # # ICQ : 114965471 # # MSN : o_lalertom@hotmail.com # # JABBER : nycholas@jabber.org # # TALK : nycholas@gmail.com # # DESCRICAO : Sistema de sincronizacao de arquivos # # DESCRICAO : Sistema de e-mail # # LOCALIZACAO : Uberlândia - MG # # LOCALIZACAO : Brasil # ######################################################### ####################################### # Constantes programas: WHICH="/usr/bin/which" CUT="/usr/bin/cut" DATE=`$WHICH date | $CUT -f 1` CAT=`$WHICH cat | $CUT -f 1` SYNC=`$WHICH sync | $CUT -f 1` PWD=`$WHICH pwd | $CUT -f 1` ECHO=`$WHICH echo | $CUT -f 1` MAIL=`$WHICH mail | $CUT -f 1` SED=`$WHICH sed | $CUT -f 1` TEE=`$WHICH tee | $CUT -f 1` ####################################### # Dispositivo: NULL="/dev/null" ####################################### # Constantes: DATA_HORA=$($DATE +%d-%m-%Y_%H:%M:%S) DATA_HORA_=$($DATE +%d-%m-%Y_%H:%M:%S) ####################################### # Log: PREFIX_LOG="/var/log/kronos" ARQUIVO_LOG="$PREFIX_LOG/kronos.log" ARQUIVO_LOG_MAIL="$PREFIX_LOG/mail.log" ####################################### # Mail: TO_ADDR="nycholas@gmail.com" BCC_ADDR="nycholas_oliveira@yahoo.com.br nycholas@kamano.zzn.com" SUBJECT="SISTEMA_DE_SINCRONIZACAO_DE_ARQUIVOS_-RSYNC-_$DATA_HORA_" CAT_LOG=$($CAT $ARQUIVO_LOG_MAIL) MESSAGE="\nSenhores(as) Adimistradores(as),\n\n\tEssa e uma mensagem enviada automaticamente pelo o SISTEMA DE SINCRONIZACAO DE ARQUIVOS - RSYNC. Logo baixo esta o arquivo de LOG do SISTEMA DE SINCRONIZACAO DE ARQUIVOS - RSYNC, favor averiguar os demais erros e corrigi-los.\n\n\tDesde ja agradeco a colaboracao,\n\n\nNycholas de Oliveira e Oliveira - o_lalertom ($DATA_HORA).\n\n\n$CAT_LOG" ########################################################### ########################################################### ########################################################### $CAT -r $ARQUIVO_LOG | $SED 's/\^\[\[//g; s/70G1\;33m//g; s/0m//g; s/1\;35m//g; s/1\;33m//g; s/1\;34m//g; s/70G//g; s/1\;32m//g; s/1\;31m//g; s/1\;36m//g; s/1\;3//g; s/\\//g' | $TEE $ARQUIVO_LOG_MAIL 2>&1&> $NULL $ECHO -en "$MESSAGE" | $MAIL -s $SUBJECT -b $BCC_ADDR $TO_ADDR 2>&1&> $NULL
Inclusão/Exclusão de usuários no CVS.
Backup de N diretórios e arquivos
ShellBase - Templates Profissionais para o seu Shell Script
Shell Script básico para gerenciar usuários e bancos no MySQL ou MariaDB
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta